首页 > 解决方案 > 层次结构不清晰 Google Maps API

问题描述

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

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

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

有人能解释一下逻辑吗?

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

解决方案


地理编码 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

有一篇关于 Geocoding API 最佳实践的文章也涵盖了不完整和不明确查询的情况:

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

我希望这有帮助!


推荐阅读