2011-10-16 51 views
5

我一直在使用下面的代碼,這個代碼在一個星期左右的時間裏工作正常,我已經回過頭來進一步研究它,它似乎不再有效。我只想向當地人展示。看一下Google的文檔「locality」是正確的選擇。我在想,也許谷歌改變了API或什麼。只要我切換到地理編碼它的作品,但顯示所有的街道和地方,這不是我想要的。我也試過[「地方」,「政治」],也沒有運氣。我在這裏做錯了什麼?谷歌地方的v3 API自動完成 - 不能讓地方工作?

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

    var input = document.getElementById('searchTextField'); 

    var Newoptions = { 
     types: ["locality"] 
    }; 

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

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

<input id="searchTextField" name="member_location" value="" type="text" > 

回答

1

地點並不總是在結果提供的,所以你必須提供一個備用的,如果你在沒有地方,像administrative_area_level_3面積是,雖然只有一個,你總是會得到國家是,所以你最好讓它回落到那裏。

+0

但是它爲什麼如此呢?是因爲Google Maps API不知道/定義該地理區域的地點像新加坡的國家? – ericn

0

在代碼中,你已經使用

var Newoptions = { 
     types: ["locality"] //This is not proper types. 
    }; 

使用類型: '(地區)'] 相反。然後檢索當地的表格。示例代碼是波紋管,它工作正常。

autocomplete = new google.maps.places.Autocomplete(
    (document.getElementById('YOURsearchBOXID')), 
     { types: ['(regions)']}); 

     google.maps.event.addListener(autocomplete, 'place_changed', function() { 
     var place = autocomplete.getPlace(); 

     for (var i = 0; i < place.address_components.length; i++) { 
      if(place.address_components[i].types[0] == "locality") 
      { 
       console.log(place['address_components'][i]['long_name']); 
      break; 
      } 
     } 

    }); 
相關問題