Google Reverse地理编码问题

时间:2015-10-19 16:43:25

标签: javascript google-maps google-maps-api-3 geolocation reverse-geocoding

如何使用Google Reverse地理编码正确,清晰地识别坐标的地址(例如Paris。France)?某处的位置标有“locality”类型,某处“administrative_area_level_2”,某处“administrative_area_level_3”等。是否有任何方法可以清楚地确定城镇或村庄,或者该人是否在建筑物区域外?

实施例: 我们发送请求: https://maps.googleapis.com/maps/api/geocode/json?sensor=true&language=en&latlng=55.6844952,37.6118719 寻找城市,在大多数情况下得到以下内容:

"address_components" : [
       {
          "long_name" : "Moscow",
          "short_name" : "Moscow",
          "types" : [ "locality", "political" ]
       },
…
},
    "place_id" : "...",
    "types" : [ "locality" ]
},

但有时候 我们发送请求: https://maps.googleapis.com/maps/api/geocode/json?sensor=true&language=en&latlng=60.123062,64.78818 寻找城市并获得:

"address_components" : [
       {
          "long_name" : " gorod Uray",
          "short_name" : "g. Uray",
          "types" : [ "administrative_area_level_2", "political" ]
       },
...
},
    "place_id" : "...",
    "types" : [ "administrative_area_level_2" ]
},

应用如何确定在一种情况下,城市是“地点”,而在其他情况下,城市是“ administrative_area_level_2 ”等。

1 个答案:

答案 0 :(得分:0)

在你的例子中,莫斯科是一个资本和政治中心,这就是为什么它被标记为政治; Gorod Uray不是一个城市,而是一个较大的次要行政区域,所以它被标记为行政区域。

来自Google Maps API Places的参考文档

This Type list清楚地记录了它,以便在searchResult中使用组成GeocoderAddressComponent对象的每种类型。