2017-04-22 133 views
0

即時通訊使用谷歌地圖地理位置API來檢索給定座標的城市名稱(這稱爲反向地理定位)。文檔是可用的here谷歌地圖(反向)地理編碼API應該只顯示城市名稱

我發送一個jQuery發佈請求,並得到一個JSON格式的對象在我的腳本它的這個數組:locationName[]

某些座標我有成功顯示使用城市名稱:

locationName[0].address_components[0].long_name; 

但對於一些協調城市名稱是

locationName[0].address_components[1].long_name; 

甚至在

locationName[0].address_components[3].long_name; 

另外我想顯示城市區(如果它可用於給定的座標,如果不是th我只想顯示城市名稱)

如何確定數組中的哪個字段是城市名稱以及如何確定城市地區是否可用,以及如果是這樣,在哪個字段中?

回答

2

這個問題基本上是關於檢查數組屬性中特定值的對象,並在數組中找到該值時返回該對象。這裏是你可以做這件事 -

var desiredLocationDescription; 
var addressComponentArray = []; 
var typeName = "locality"; 


for (var i = 0; i < locationName[0].address_components.length; i++){ 
    addressComponentArray.push(locationName[0].address_components[i]) 
} 

for (var i = 0; i < addressComponentArray.length; i++){ 
    if (addressComponentArray[i].types.includes(typeName)){ 
     desiredLocationDescription = addressComponentArray[i]; 
     break; 
    } 
} 

console.log(desiredLocationDescription.long_name) 

由於城市的名字被存儲在對象與type: ["locality", "political"],期待通過對象的數組,直到找到一個在其類型的「地方」。

+0

不錯這隻給出城市名稱:) – chwzr

+0

至於得到的地區,你可以使用相同的策略。您需要知道API的類型名稱,但是您可以檢查它是否存在,如果是,則相應地設置變量。 – skwidbreth

+0

我將仔細查看文檔以獲取城市地區類型的名稱。非常感謝這個快速解決方案! – chwzr

相關問題