gmaps4rails и автозаполнение Google Place API несовместимость - PullRequest
2 голосов
/ 06 августа 2011

У меня проблема совместимости между gmaps4rails gem и API Google Place *

В основном, если я добавлю в свой вид gmpas4rails, как это:

<%=gmaps%>

, тогда этот скрипт больше не работает(Обычно это активирует автозаполнение в поле user_address:

 $(document).ready(initialize_gmaps_autocomplete_user_address());

function initialize_gmaps_autocomplete_user_address() {
var input = document.getElementById('user_address');
var defaultBounds = new google.maps.LatLngBounds(new google.maps.LatLng(42.71422,-4.222666), new google.maps.LatLng(51.179343,8.47412));
var autocomplete = new google.maps.places.Autocomplete(input);
autocomplete.setBounds(defaultBounds);
autocomplete.setTypes(['geocode']);
}

Я пытался вызвать скрипт с помощью gmaps4rails.call_back и изменить имена переменных в моих скриптах ...

Anyидея?

Ответы [ 2 ]

4 голосов
/ 06 августа 2011

Полагаю, вы делаете второй вызов в API Google, чтобы все испортить.

Два решения здесь:

1) не включают js из партиала:

<%= gmaps({your_hash}, true, false) %>

И включите все файлы js вручную, но обязательно напишите:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&amp;libraries=geometry,places"></script>

Вот исходный частичный , поэтому вы не забудете ни одного файла.

2) Возьмите текущую версию в git и добавьте places напрямую:

<%= gmaps({ "map_options" => { "libraries" => ["places"] } }) %>

Я обновлю гем позже, так что в версии выше 0.10.2 это будет включено.

1 голос
/ 25 октября 2011

На самом деле 2) должно быть

<%= gmaps({:map_options => {:libraries => ["places"]}}) %>

, потому что в исходном коде gmaps4rails вместо строк используются символы.

Чтобы заставить его работать со строками, вы должны использовать HashWithIndifferentAccess:

<%= gmaps(HashWithIndifferentAccess.new("map_options" => {"libraries" => ['places']}))%>
...