2011-08-24 71 views
0

我有問題,谷歌地方搜索。如果我選擇類型:['geocode'],不管搜索詞是什麼,我都不會得到結果(ZERO_RESULTS)。我究竟做錯了什麼?這裏是我的代碼片段:谷歌JavaScript API V3地方搜索類型= ['geocode']返回ZERO_RESULTS

 ... 
     var params = { 
      name: searchTerm, //search Term is for example 'lon' 
      bounds: map.getBounds(), 
      types: ['geocode'] 
     } 

     var service = new google.maps.places.PlacesService(map); 
     service.search(params, function (results, status) { 
       alert(status); - gives ZERO_RESULTS 
     } 
     ... 

更新:

我希望它有同樣的表現,如JavaScript AOI地方自動填充。爲了得到同樣的結果。我以爲他們正在查詢相同的數據?

var input = document.getElementById('location'); 
var options = { 
    bounds: map.getBounds(), 
    types: ['geocode'] 

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

google.maps.event.addListener(autocomplete, 'place_changed', function() { 

.... 這一次給了我很大的成績。 (原因是我沒有使用自動完成方法而不是第一個解決方案,因爲我無法自動選擇自動完成列表中的第一項,一旦輸入(在搜索字段中)被擊中 - 如果你知道答案請幫助:)

回答

0

至少在這個時候,最好不要假設Google地方信息的位置數據很多,或者數據分類很精確。 Google Places很可能沒有或很少有類型爲geocode的地方供您查找。

由於types是可選的,請將其刪除,您可能會收到結果。

更新:關於已添加到問題的自動完成與地點搜索的東西:我沒有使用自動完成,但我認爲它不應該給你相同的結果。 「地方搜索」試圖找到與搜索字詞XXXXX匹配的內容。自動完成功能正試圖預測給定的子字符串XXXXXX您可能會嘗試鍵入的內容。所以它可能會返回更多(並且在許多情況下不相關)結果。所以你所看到的(使用自動完成的更多結果)並不會使我感到異常。

+0

請看看我的編輯職位。它不應該給出與JavaScript API地方自動完成庫相同的結果嗎? – problem

+0

我會認爲它不應該給你相同的結果。 「地方搜索」試圖找到與搜索字詞XXXXX匹配的內容。自動完成功能正試圖預測給定的子字符串XXXXXX您可能會嘗試鍵入的內容。所以它可能會返回更多(並且在許多情況下不相關)結果。 – Trott

0

我發現通過刪除「類型」參數我得到更多的地方。我使用的地方自動完成,它肯定給了我更多的選擇,沒有類型。

我只是捕捉輸入鍵並停止它,以防止用戶意外提交表單。不完全是你想要的,但它適用於我。

 $("#LatLongSearch").keypress(function (event) { 
      if (event.which == 13) { // make enter key just search map and stop it from submitting form 
       event.preventDefault(); 
      } 
     }) 
0

試試這個

$('#searchform').keypress(function(e) { 
       if (e.which == 13) { 
       e.preventDefault(); 
       google.maps.event.addListener(autocomplete, 'place_changed', function() { 
       fillInAddress(); 
       $('#yourform').submit(); 
     }); } }); 

它爲我工作