【问题标题】:Google geo code API not filtering results for Luxembourg谷歌地理编码 API 未过滤卢森堡的结果
【发布时间】: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


    【解决方案1】:

    文档说您不能在地址和组件过滤器中使用国家。这样做会导致不可预知的行为。

    https://developers.google.com/maps/documentation/geocoding/intro#ComponentFiltering

    注意:每个地址组件只能在地址参数中指定或作为组件过滤器指定,但不能同时指定。这样做可能会导致零结果。

    所以,你的查询应该是

    https://maps.googleapis.com/maps/api/geocode/json?address=4321&components=country%3ALU&key=YOUR_API_KEY

    不确定 4321 是什么意思。如果这是邮政编码,我认为 Google 数据库中缺少它,因为

    https://maps.googleapis.com/maps/api/geocode/json?components=postal_code%3A4321%7Ccountry%3ALU&key=YOUR_API_KEY

    返回 ZERO_RESULTS。

    【讨论】:

    • 4321 是卢森堡的有效邮政编码,我不知道为什么 google 无法识别它。这是他们方面的问题吗?
    • 您可以使用“报告问题”链接提出数据问题。 support.google.com/maps/answer/162873希望对您有所帮助!
    【解决方案2】:

    不,你没有犯任何大错误;您的 API 调用应该可以正常工作。我相信这是谷歌 API 中的一个错误,但现在似乎已修复。 (当我转到the url you asked about 时,我得到一个正确的 JSON 响应,其中没有提及美国。)(如果您报告了错误,也许您应该得到修复它的功劳!:)

    最初出现问题的原因是 Google 不是地址验证或标准化服务。解析很困难的原因有很多:例如,可能存在奇怪的拼写或标点符号。 Google 非常擅长解析搜索字词。

    但是,还有一个额外的问题:我们如何知道哪些部分与城市或州相匹配? “乔治亚”是美国的一个州,一个国家。 “12 34 St Helena WA 85102”应该匹配“34 street”还是名为“St Helena”的道路?

    地址验证是指根据权威数据库(例如邮局数据和国家记录)检查地址,从而与真实地点匹配。地址标准化意味着以邮政服务标准化的方式格式化地址。

    因此,您将来很可能会遇到更多此类问题,尤其是在您使用不明确的地址时。您可能想尝试地址验证服务,尤其是在您使用邮寄和运输的情况下。

    公平披露:我是地址验证公司SmartyStreets 的员工。

    【讨论】:

      猜你喜欢
      • 2017-03-24
      • 1970-01-01
      • 2017-06-22
      • 2012-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多