在Google Maps api中使用邻域类型获取formatted_address - 反向地理编码

时间:2015-01-29 19:27:34

标签: javascript android json google-maps google-maps-api-3

如何在邻居类型的Google Maps API中获取formatted_address?我使用Google地图进行反向地理编码,但不幸的是,我所在位置的最近地址是带有neighborhood类型的formatted_address。我很难解析JSON数组,因为它有很多内容。

以下是我从Google地图获取的示例JSON。 https://gist.github.com/anonymous/8d5250cfc37a8cef9ab2

当我尝试使用它时:

var geocoder = new google.maps.Geocoder();  

              var point = new google.maps.LatLng(localStorage.latitude, localStorage.longitude);
              geocoder.geocode({ 'latLng': point }, function (results, status) {
                if (status !== google.maps.GeocoderStatus.OK) {
                  alert(JSON.stringify(status));
                }
                // This is checking to see if the Geoeode Status is OK before proceeding
                if (status == google.maps.GeocoderStatus.OK) {
                  console.log(results);
                  var address = (results[0].formatted_address);
                  alert(JSON.stringify(address));
                }
              });

它没有给我最近的地址。注意:该要点上的数据因纬度/经度而异,但当我检查其他地址时,只有类型为formatted_address的{​​{1}}才能获得距离Lat和Lang最近的地址。

1 个答案:

答案 0 :(得分:3)

我的Javascript很啰嗦,但我想我会这样做:

function getAddress(results) {
    if(results && results.length) {
        for (var i=0; i<results.length; i++) {
            if (results[i].types.indexOf('neighborhood') != -1) {
                return results[i].formatted_address;
            }
        }
        return results[0].formatted_address;
    }
    return '';
}