[英]How do I resolve this issue in Google Maps Autocomplete in my Rails app?
我正在為出租車預訂平台創建Rails應用程序,該應用程序需要輸入接機點和下車點。 為此,我已在header.tag中的application.html.erb中包含以下腳本:
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true&libraries=places"></script>
<script type="text/javascript">
var placeSearch,autocomplete;
function initialize() {
autocomplete = new google.maps.places.Autocomplete(document.getElementById('autocomplete'), { types: [ 'geocode' ] });
google.maps.event.addListener(autocomplete, 'place_changed', function() {
fillInAddress();
});
autocomplete2 = new google.maps.places.Autocomplete(document.getElementById('autocomplete2'), { types: [ 'geocode' ] });
google.maps.event.addListener(autocomplete2, 'place_changed', function() {
fillInAddress();
});
}
function fillInAddress() {
var place = autocomplete.getPlace();
for (var component in component_form) {
document.getElementById(component).value = "";
document.getElementById(component).disabled = false;
}
for (var j = 0; j < place.address_components.length; j++) {
var att = place.address_components[j].types[0];
if (component_form[att]) {
var val = place.address_components[j][component_form[att]];
document.getElementById(att).value = val;
}
}
}
</script>
然后,我在標簽中使用了以下js:
<div class="field">
<%= label_tag ("Pickup Location: ") %><br>
<%= text_field_tag :pickup_loc, nil, :id => "autocomplete", :placeholder => "Enter your pickup location" %>
</div>
<div class="field">
<%= label_tag ("Drop Location: ") %><br>
<%= text_field_tag :drop_loc, nil, :id => "autocomplete2", :placeholder => "Enter your dropoff location" %>
</div>
盡管自動完成功能似乎可以正常工作,但自動完成功能的結果似乎只是Google Maps提供的結果的一部分。 例如,當我在應用程序中輸入“ Asian GPR ...”作為搜索查詢時,它沒有顯示Asian GPR Multiplex作為選項:
但是,當我在Google Maps中使用相同的查詢字符串時,會得到所需的結果:
我已經嘗試了很多搜索,但是找不到解決方案。 我要去哪里錯了?
類型數組指定顯式類型或類型集合,如下面支持的類型中所列。 如果未指定任何內容,則返回所有類型。 通常,只允許使用一種類型。 唯一的例外是您可以安全地混合地理編碼和營業地點類型,但是請注意,這與不指定任何類型的效果相同。
所以我想您只需要刪除type選項,如下所示:
function initialize() {
autocomplete = new google.maps.places.Autocomplete(document.getElementById('autocomplete'));
google.maps.event.addListener(autocomplete, 'place_changed', function() {
fillInAddress();
});
autocomplete2 = new google.maps.places.Autocomplete(document.getElementById('autocomplete2'));
google.maps.event.addListener(autocomplete2, 'place_changed', function() {
fillInAddress();
});
或者您可以添加場所類型:
function initialize() {
autocomplete = new google.maps.places.Autocomplete(document.getElementById('autocomplete'), { types: [ 'geocode', 'establishment' ] });
google.maps.event.addListener(autocomplete, 'place_changed', function() {
fillInAddress();
});
autocomplete2 = new google.maps.places.Autocomplete(document.getElementById('autocomplete2'), { types: [ 'geocode', 'establishment' ] });
google.maps.event.addListener(autocomplete2, 'place_changed', function() {
fillInAddress();
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.