【发布时间】:2016-09-11 17:03:03
【问题描述】:
我在使用 Google Geocoding API 时遇到了一个奇怪的问题。我目前正在使用它来查找卢森堡地址的纬度和经度。我无意中发现,即使我在 API 请求中输入了错误的邮政编码和国家/地区,我仍然会返回正确的位置和格式化的地址。
例如
https://maps.googleapis.com/maps/api/geocode/json?address=1+route+d%27Arlon%2C8399+Windhof%2CLuxembourg&key={Your-API-Key}&language=fr
这是正确的发现命中,正如预期的那样。不过,
https://maps.googleapis.com/maps/api/geocode/json?address=1+route+d%27Arlon%2C83992+Windhof%2CGermany&key={Your-API-Key}&language=fr
也找到了命中,尽管返回了 partial_match = true。
无需滚动和阅读代码即可了解问题 - 即使您提供了错误的国家/地区、邮政编码等详细信息,API 也会返回“正确”地址。
这怎么可能不是我无法想象的错误。但是,最初,我只是假设如果发现partial_match 存在,我会通过要求用户检查提供的地址来检查此类问题。
但是,仅检查这一点会引发误报。取网址
https://maps.googleapis.com/maps/api/geocode/json?address=2+route+d%27Arlon%2C8552+Oberpallen%2CLuxembourg&key={Your-API-Key}&language=fr
返回 2 Route d'Arlon, 8552 Oberpallen, Luxembourg,据我所知,这与我提供的地址完全相同,但地理编码 API STILL 返回 partial_match。
很明显,partial_match 的意义远不止眼前所见。我当然可以开始对返回的结果进行更严格的检查,而不是简单地依赖partial_match。但是,我希望这里的某个人能够在这里阐明两个问题
- 为什么我上面的第三个示例返回
partial_match,而一切似乎都正常? - 当我故意提供错误的国家和邮政编码时,为什么 API 返回的不是错误状态?
【问题讨论】: