区分没有数字的小村庄和街道之间的API响应

时间:2013-08-29 13:26:21

标签: api google-maps google-maps-api-3 google-geocoder

我们打算在我们的网站上使用 Google Maps Geocoding API 。我们想要使用Google Places Autocomplete API并将地址转换为{X,Y)坐标与Geocoder API

然而,在法国,一些邮政地址的格式是 hamlet 或一个小村庄和城市(这些都是正确的地址),而不是传统的“数字,街道和城市”。 / p>

此类地址的地理编码响应是:

  • partial_match = empty
  • 位置类型= GEOMETRIC_CENTERRANGE_INTERPOLATED
  • type = route

但这是与没有街道号码的街道名称相同的响应

有没有办法区分“小村庄”和“没有号码的街道”之间的API响应
感谢您的任何见解。


[编辑]以下是我的问题示例:

两者都返回相同的location_type

  • "location_type" : "GEOMETRIC_CENTER"

1 个答案:

答案 0 :(得分:1)

简短回答 - 您的哈姆雷特示例实际上正在解析街道:Map Link

回答您的一般性问题(猜测您是否在其他地方发生了这种情况,而不是街道),这是如何判断地理编码API如何确定部分匹配。如果你得到一条路线,它应该意味着你已经返回一条街道(有或没有号码)。哈姆雷特应该显示为sublocalityneighborhood,如果不是它自己的地方(在加拿大这是我所看到的):

  1. neighborhood
  2. sublocality
  3. *请注意,这些是加拿大的有效邮寄地址,这使我的示例与您指定的标准略有不同。

    要知道路线是完全匹配还是猜测是状态代码的来源:

    来自API Doc's

    "ROOFTOP" indicates that the returned result is a precise geocode for which we have location information accurate down to street address precision.
    "RANGE_INTERPOLATED" indicates that the returned result reflects an approximation (usually on a road) interpolated between two precise points (such as intersections). Interpolated results are generally returned when rooftop geocodes are unavailable for a street address.
    "GEOMETRIC_CENTER" indicates that the returned result is the geometric center of a result such as a polyline (for example, a street) or polygon (region).
    "APPROXIMATE" indicates that the returned result is approximate.
    

    我希望你会更频繁地看到GEOMETRIC_CENTER以及neighborhoodsublocality更频繁的道路 - 但这是猜测,我认为更多地依赖于它们在位置上有多少数据以及算法如何最终计算该点。

    当你确实将哈姆雷特作为RANGE_INTERPOLATED返回时,我不相信有任何方法可以告诉Geocoding API返回的数据,这就是发生的事情。我能想到的唯一解决方案是根据已知问题列表在应用程序中的代码中处理这些情况 - 但我可以看到这是非常有问题和劳动密集型的。

    这或许可以说是一个邮政/行政概念的小村庄概念,它根本不转化为映射数据?我试图在这里找到La Croix并且没有运气区别:http://www.laposte.com/find_a_post_code/find

    还有一点需要注意:如果地理编码API解决了哈姆雷特以及街道,你应该有多个结果可供选择,例如: Yarmouth请注意,如果您有多个结果,则最后的类型列表会告诉您返回的结果类型:route

    <强>更新

    我需要一些更多的例子,并决定寻找那些也有益于你的问题的例子。我找到了French Hamlets的这个列表。尝试了几个我得到了这些结果:

    1. Blessey:sublocality
    2. Brétigny:sublocality
    3. Hautacam:要么完全找不到,要么是公园,并显示为locality
    4. La Mongie:sublocality
    5. Ham / Clergy:locality所以看起来可能会有一些地方出现 - 也许是一个规模门槛 - 许多子地区都非常小。
    6. 我认为你可以放心地假设,如果某事评估为一条路线,你的结果是街道而不是hameaux&lt; - (并认为我在加拿大的法语沉浸中表现不佳)。此外,如果你在结果中得到一个路线和一个sublocality,那么这是一个安全的赌注。

      最后,如果你知道你所拥有的地址部分是一个子地区,并且一条街道,并希望在地址中指明这一点,我不相信谷歌的API允许这样做。还有其他services that do, like ESRI。我没有使用它们,也没有详细了解许可的工作原理,但它似乎有免费和订阅服务,就像Google一样。

      仅仅为了完整性 - 我认为我在该列表的"types" : [ "locality", "political" ]条目中使用ESRI网站找到La Croix - 缺点是它无法识别 Fay-de-Bretagne < / em>并给出一个答案。