2011-11-09 41 views
1

我想在我的網站上有一個輸入字段,並在某個國家/地區的地方自動填充。例如,在下面的代碼中,我希望獲得國家/地區「荷蘭」內的地點作爲自動填充中的建議。某個國家/地區的地理自動完成功能

在下面的代碼中,我得到了所有國家/地區的地方建議,而不是針對某個國家/地區。

<!DOCTYPE html> 
<html> 

    <head> 
<title>Google Maps JavaScript API v3 Example: Places Autocomplete</title> 
<script src="http://maps.googleapis.com/maps/api/js?sensor=false&libraries=places" 
    type="text/javascript"></script> 

<style type="text/css"> 
    body { 
    font-family: sans-serif; 
    font-size: 14px; 
    } 
    #map_canvas { 
    height: 400px; 
    width: 600px; 
    margin-top: 0.6em; 
    } 
</style> 

<script type="text/javascript"> 
    function initialize() { 

    var input = document.getElementById('searchTextField'); 
    var autocomplete = new google.maps.places.Autocomplete(input, {country: 'NL'}); 

    autocomplete.bindTo('bounds', map); 

    var infowindow = new google.maps.InfoWindow(); 
    var marker = new google.maps.Marker({ 
     map: map 
    }); 

    google.maps.event.addListener(autocomplete, 'place_changed', function() { 
     infowindow.close(); 
     var place = autocomplete.getPlace(); 
     if (place.geometry.viewport) { 
     map.fitBounds(place.geometry.viewport); 
     } else { 
     map.setCenter(place.geometry.location); 
     map.setZoom(17); // Why 17? Because it looks good. 
     } 

    }); 

    setupClickListener('changetype-all', []); 

    } 
    google.maps.event.addDomListener(window, 'load', initialize); 
</script> 

</head> 
<body> 
<div> 
    <input id="searchTextField" type="text" size="50"> 
    <label for="changetype-all"></label> 
</div> 
</body> 
</html> 

回答

2

你可以設置一個偏置(你已經有了),但實際上不檢查與其他代碼自動完成每一個結果,你可以自動完成列表不侷限於某一個國家或地區,據我所知。

這是對谷歌的自動完成一些更多的信息:http://code.google.com/apis/maps/documentation/places/autocomplete.html#place_autocomplete_requests

啊,如果你想使用地理自動完成插件,再看看這個例子:

視圖出處:http:/ /geo-autocomplete.googlecode.com/svn/trunk/demo/ui.demo.html

這是他們的榜樣:

$('#demo3_location').geo_autocomplete({ 
    geocoder_region: 'Africa', 
    geocoder_types: 'country', 
    mapheight: 100, mapwidth: 200, maptype: 'hybrid' 
}); 
+0

在這個鏈接:http://code.google.com/p/geo-autocomplete/它說:geocoder_region ==>過濾建議位置到特定區域,例如, '歐洲'這就是爲什麼我認爲它應該是可能的..我也嘗試過geocoder_region – BastiaanWW

+0

geo-autocomplete需要額外的插件。我已經使用geocoder_region爲您提供了一個更絕對的過濾器的演示程序。 – Derek

+0

這個例子是不工作(FF和IE)我也試過你的代碼與ID:「searchTextField」,但也不工作.. – BastiaanWW

2

無需改變任何東西 - 你只需要創建一個全局變量選項,而不是 {country: 'NL'}options放在那裏。 現在在使用前聲明選項。

options = {types: ['(cities)'],componentRestrictions: { country: 'US' }}; 

現在你的行會:

var autocomplete = new google.maps.places.Autocomplete(input, options); 

希望爲你工作 - ! 謝謝, Kavi(印度)

相關問題