【发布时间】:2016-11-11 10:55:58
【问题描述】:
我正在过滤国家代码 LU 的结果。仍在为美国取得成果
https://maps.googleapis.com/maps/api/geocode/json?address=4321%2CLU&components=country%3ALU
我在这里做错了吗?
【问题讨论】:
标签: google-maps google-maps-api-3 geocoding google-geocoder geocode
我正在过滤国家代码 LU 的结果。仍在为美国取得成果
https://maps.googleapis.com/maps/api/geocode/json?address=4321%2CLU&components=country%3ALU
我在这里做错了吗?
【问题讨论】:
标签: google-maps google-maps-api-3 geocoding google-geocoder geocode
文档说您不能在地址和组件过滤器中使用国家。这样做会导致不可预知的行为。
https://developers.google.com/maps/documentation/geocoding/intro#ComponentFiltering
注意:每个地址组件只能在地址参数中指定或作为组件过滤器指定,但不能同时指定。这样做可能会导致零结果。
所以,你的查询应该是
不确定 4321 是什么意思。如果这是邮政编码,我认为 Google 数据库中缺少它,因为
返回 ZERO_RESULTS。
【讨论】:
不,你没有犯任何大错误;您的 API 调用应该可以正常工作。我相信这是谷歌 API 中的一个错误,但现在似乎已修复。 (当我转到the url you asked about 时,我得到一个正确的 JSON 响应,其中没有提及美国。)(如果您报告了错误,也许您应该得到修复它的功劳!:)
最初出现问题的原因是 Google 不是地址验证或标准化服务。解析很困难的原因有很多:例如,可能存在奇怪的拼写或标点符号。 Google 非常擅长解析搜索字词。
但是,还有一个额外的问题:我们如何知道哪些部分与城市或州相匹配? “乔治亚”是美国的一个州,一个国家。 “12 34 St Helena WA 85102”应该匹配“34 street”还是名为“St Helena”的道路?
地址验证是指根据权威数据库(例如邮局数据和国家记录)检查地址,从而与真实地点匹配。地址标准化意味着以邮政服务标准化的方式格式化地址。
因此,您将来很可能会遇到更多此类问题,尤其是在您使用不明确的地址时。您可能想尝试地址验证服务,尤其是在您使用邮寄和运输的情况下。
公平披露:我是地址验证公司SmartyStreets 的员工。
【讨论】: