不清楚的层次结构Google Maps API

时间:2018-09-13 08:08:20

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

如果我对地区和/或地址进行地理编码,则Google Maps api返回不合逻辑的地理结果。有时返回一个城市作为行政区域,有时返回同一城市作为一个地区。为什么?我只是不明白逻辑。

例如,如果我对“ Neerijnen,Nederland”(https://maps.googleapis.com/maps/api/geocode/xml?address=Neerijnen,Nederland)进行地理编码,则会得到以下结果:

  • 国家:Nederland
  • 行政区域1级:海尔德兰岛
  • 第2级行政区域:Neerijnen

如果我对同一城市的地址和地址进行地理编码,则google会将其返回为所在地。如果我对“ Van Pallandtweg 11,4182 CA Neerijnen,Nederland”进行地理编码,则会得到以下结果:

  • 国家:Nederland
  • 行政区域1级:海尔德兰岛
  • 地区:Neerijnen
  • 街道:Van Pallandtweg

有人可以解释逻辑吗?

1 个答案:

答案 0 :(得分:2)

Geocoding API旨在将地址字符串解析为坐标,反之亦然。为了获得更好的结果,您应该以国家邮政局支持的格式提供完整的地址。当您提供Neerijnen, Nederland之类的字符串时,这不被视为完整的街道地址,而是不完整或模棱两可的查询。实际上,Neerijnen是荷兰的一个直辖市和一个城镇,因此Google数据库中有同名的行政区和地方。地理编码API旨在返回最匹配的正向地理编码(通常只有一个结果)。如果出现歧义,例如您的示例,Google会根据内部标准选择得分(突出)更高的结果。我不能说为什么管理区2的得分更高,因为我不是Google的员工。

您可以看到行政区域边界

https://maps.google.com/?q=Neerijnen,+Netherlands&ftid=0x47c6f414182c45d5:0xb34aa41b420fdfa4

和地区边界

https://maps.google.com/?q=4182+Neerijnen,+Netherlands&ftid=0x47c6f4192fae3201:0x9c3d72f48c595a87

有一篇有关地理编码API最佳做法的文章,其中还涵盖了不完整和模棱两可的查询的情况:

https://developers.google.com/maps/documentation/geocoding/best-practices

我希望这会有所帮助!