2013-08-29 59 views
1

我一直在使用Google Places API作爲Nearby Search Requests。我注意到一件特別的事情。以下是一個示例輸出的塊。Google地方附近搜索請求會間歇性返回不同的值

geometry: Object 
location: P 
ob: 28.579 
pb: 77.36831899999993 

你注意到參數obpb。我注意到他們經常改變。 幾周前,他們分別是jbkb。然後他們變成了lbmb。現在當我試用它們時,它們是obpb

雖然我已經找到了解決的方式使用這些值,他們沒有鑰匙提到他們,但我仍然好奇,這些按鍵的名稱是否持有任何意義,他們爲什麼變化如此頻繁?

回答

2

他們是一個縮小的過程(這需要變量,函數和屬性名,爲了減少腳本的大小始終替換它們)的結果。無論何時在縮小過程中發生變化(縮小器代碼更改,javascript代碼更改等),有可能某個屬性的替換名稱與之前不同。

+0

我不明白。腳本的大小?但是這是我調用這個方法後得到的迴應:'service.nearbySearch(request,callback);' –

+0

我認爲Javascript中的所有或大部分代碼都是通過Google Closure編譯器運行的,其中包括做縮小。這意味着爲響應提供服務的代碼很有可能被縮小,並且響應的兩個屬性在某種程度上被編譯器重命名。 – Tibos

+0

有道理。我會等待任何其他可能有更好解釋的答案,否則我會接受。謝謝。 –

2

至於谷歌地圖API一般規則,訪問數據(如座標,例如)不這樣做訪問的JavaScript對象直接,但查詢的響應。 這是谷歌在附近搜索例如: https://developers.google.com/maps/documentation/javascript/examples/place-search 您應該檢查它是如何在這個片段中訪問:

function createMarker(place) { 
    var placeLoc = place.geometry.location; 
    var marker = new google.maps.Marker({ 
    map: map, 
    position: place.geometry.location 
    }); 
} 
1

我試圖從地方自動提示下拉解析JSON結果時,也有類似的問題。

爲了避免這個問題,您可以撥打的對象的緯度和經度的方法,而不是試圖通過名字來使用的字段。

喜歡的東西:

var longitude = place.geometry.location.lng(); 
var latitude = place.geometry.location.lat(); 

雖然值得分享。

相關問題