如果我对区域和/或地址进行地理编码,谷歌地图 api 会返回不合逻辑的地理结果。有时将城市返回为行政区域,有时将同一城市返回为一个地方。为什么?我只是不明白逻辑。
例如,如果我对"Neerijnen, Nederland" (https://maps.googleapis.com/maps/api/geocode/xml?address=Neerijnen,Nederland( 进行地理编码,则得到以下结果:
- 国家: 荷兰
- 行政区域一级:海尔德兰
- 行政区域2级:Neerijnen
如果我在同一城市进行地理编码和地址,谷歌会将其作为地点返回。如果我对"Van Pallandtweg 11, 4182 CA Neerijnen, Nederland"进行地理编码,我会得到以下结果:
- 国家: 荷兰
- 行政区域一级:海尔德兰
- 位置:内里嫩
- 街道: 范帕兰特韦格
- 等。
有人可以解释一下逻辑吗?
地理编码 API 旨在将地址字符串解析为坐标,反之亦然。为了获得更好的结果,您应该以国家邮政服务支持的格式提供完整的地址。当您提供类似Neerijnen, Nederland
的字符串时,这不被视为完整的街道地址,而是不完整或不明确的查询。事实上,Neerijnen是荷兰的一个直辖市和城镇,因此Google数据库中有同名的行政区域和地方。地理编码 API,旨在返回正向地理编码的最佳匹配项(通常只有一个结果(。如果像您的示例那样存在歧义,Google 将根据内部标准选择得分(突出度(较高的结果。我不能说为什么管理区域 2 的分数更高,因为我不是来自谷歌。
您可以查看行政区域边界
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
我希望这有帮助!