google-maps - 层次结构不清晰 Google Maps API
问题描述
如果我对区域和/或地址进行地理编码,则谷歌地图 api 会返回不合逻辑的地理结果。有时一个城市作为一个行政区域返回,有时同一个城市作为一个地方返回。为什么?我只是不明白逻辑。
例如,如果我对“Neerijnen, Nederland”(https://maps.googleapis.com/maps/api/geocode/xml?address=Neerijnen,Nederland)进行地理编码,我会得到以下结果:
- 国家:荷兰
- 行政区域一级:海尔德兰
- 行政区域级别 2 : Neerijnen
如果我在同一个城市进行地理编码和地址,谷歌将其作为地区返回。如果我对“Van Pallandtweg 11, 4182 CA Neerijnen, Nederland”进行地理编码,我会得到以下结果:
- 国家:荷兰
- 行政区域一级:海尔德兰
- 地点: Neerijnen
- 街道:范帕兰德韦格
- 等等
有人能解释一下逻辑吗?
解决方案
地理编码 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
我希望这有帮助!
推荐阅读
- python - 如何根据列表重新排序数据框?熊猫
- java - 如何在java中使用一个httpURLConnection浏览多个url
- angularjs - AngularJS ng-options 由 id 选择的 ng-model 选项
- java - 一行上的多个输入,具有多个变量和两位数(微分计算器)
- python-3.x - 在 Python 中对数字使用 de startswith 函数
- azure - Azure 自动缩放:在实例上的进程结束后按比例缩小
- android - Mapbox LocationLayerPlugin 'Cannot reslove symbol'
- php - 试图返回每月注册的用户,但在 CakePHP 3 中没有得到正确的计数?
- ios - 如何使用 UIGestureRecognizers 相对于触摸位置在 UIScrollView 内旋转 UIImageView
- python - 如何在 Django 中使用类别名称作为 url 后缀