3

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

然而,在法国,一些邮政地址的格式是小村庄或小村庄和城市(这些是正确的地址),而不是经典的“数字、街道和城市”。

这种地址的地理编码响应是:

  • 部分匹配 =empty
  • 位置类型 =GEOMETRIC_CENTERRANGE_INTERPOLATED
  • 类型 =route

但这与没有街道编号的街道名称相同

有什么方法可以区分“hamlets”和“street without number”之间的 API 响应吗?
感谢您的任何见解。


[编辑]这是我的问题的一个例子:

两者都返回相同的location_type

  • "location_type" : "GEOMETRIC_CENTER"
4

1 回答 1

1

简短的回答 - 你的哈姆雷特示例实际上是在解决一条街道:地图链接

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

  1. 邻里
  2. 次地方性

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

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

API 文档

"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更频繁地看到道路neighborhood并且sublocalityRANGE_INTERPOLATED频繁地看到道路 - 但这是一个猜测,我认为这更多地取决于他们在位置上拥有多少数据以及算法最终如何计算​​点。

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

这也许说明了小村庄概念作为一种邮政/行政概念,它根本不转化为地图数据?我试图在这里找到 La Croix,但没有成功区分:http ://www.laposte.com/find_a_post_code/find

还有一点需要注意:如果地理编码 API 已经解析了哈姆雷特以及街道,您应该有多个结果可供选择,例如Yarmouth请注意,如果您有多个结果,最后的类型列表也会告诉您返回的结果类型:"types" : [ "locality", "political" ]

更新

我需要更多示例,并决定寻找对您的问题也有帮助的示例。我找到了这个法国哈姆雷特列表。尝试了一些我得到了这些结果:

  1. Blessey:次区域性
  2. 布雷蒂尼:次区域性
  3. Hautacam:要么完全找不到,要么是一个公园并显示为一个地方
  4. La Monie:次区域性
  5. 火腿/神职人员:地方所以看起来可能有一些地方出现 - 也许是一个规模阈值 - 许多子地方都非常小。

我认为您可以放心地假设,如果将某些东西评估为路线,那么您的结果是针对街道而不是 hameaux <--(并且认为我在加拿大的法语沉浸式中表现不佳)。此外,如果您在结果中获得路线和次区域性,则可以确定是哪一个。

最后,如果您知道您拥有的地址部分是子地区而不是街道,并且希望在地址中指定这一点,我认为 Google 的 API 不允许这样做。还有其他服务,比如 ESRI。我没有使用过它们,也不知道许可是如何工作的,但它似乎有免费和订阅服务,就像谷歌一样。

只是为了完整性-我想我在该列表的条目中使用 ESRI 站点找到了 La Croix-"address": "La Croix, L'Île-d'Yeu"缺点是它不识别Fay-de-Bretagne并给出一个单一的答案。

于 2013-09-04T15:48:29.370 回答