-1

如何使用Google反向地理编码正确,清晰地标识地址(例如法国巴黎)的坐标?某处的地点标有“地方”类型,某处是“administrative_area_level_2”,某处是“administrative_area_level_3”等。是否有任何方法可以清楚地确定城镇或村庄,或者该人是否在建成区之外?Google反向地理编码问题

例子: 我们发送的请求: 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”等

+0

林不知道我理解你的问题。对于地理定位,我已经使用[Geocoder gem](https://github.com/alexreisner/geocoder)取得了成功,我会推荐。 – srm

回答

0

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

This Type list来自Google Maps API的位置参考文档清楚地说明了在searchResult中构成GeocoderAddressComponent对象的每种类型的用法。