gmaps4rails和自动完成谷歌API不兼容
我在gmaps4rails gem和google place API之间存在兼容性问题
基本上,如果我在我看来这样的gmpas4rails:
然后这个脚本不再工作了(它正常激活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调用脚本并更改脚本中的var名称…
任何的想法?
我猜你第二次打电话给google api搞砸了。
两个解决方案:
1)不包括部分的js:
<%= gmaps({your_hash}, true, false) %>
并手动包含所有js文件,但一定要写:
这是原始的部分,所以你不要忘记任何文件。
2)在git上抓取当前版本并直接添加places
:
<%= gmaps({ "map_options" => { "libraries" => ["places"] } }) %>
我稍后会更新gem,所以高于0.10.2
版本将包括这个。
实际上2)应该是
<%= gmaps({:map_options => {:libraries => ["places"]}}) %>
因为在gmaps4rails的源代码中使用符号而不是字符串。
要使它与字符串一起使用,您必须使用HashWithIndifferentAccess:
<%= gmaps(HashWithIndifferentAccess.new("map_options" => {"libraries" => ['places']}))%>