如果我对地区和/或地址进行地理编码,则Google Maps api返回不合逻辑的地理结果。有时返回一个城市作为行政区域,有时返回同一城市作为一个地区。为什么?我只是不明白逻辑。
例如,如果我对“ Neerijnen,Nederland”(https://maps.googleapis.com/maps/api/geocode/xml?address=Neerijnen,Nederland)进行地理编码,则会得到以下结果:
如果我对同一城市的地址和地址进行地理编码,则google会将其返回为所在地。如果我对“ Van Pallandtweg 11,4182 CA Neerijnen,Nederland”进行地理编码,则会得到以下结果:
有人可以解释逻辑吗?
答案 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
我希望这会有所帮助!