【问题标题】:Geocoding reverts to US地理编码恢复为美国
【发布时间】:2011-06-01 12:00:41
【问题描述】:

使用 google geocoding api v3 时,我有一些完整且有效的地址,其中包含美国州名作为房屋名称或街道名称的一部分。尽管包含国家/地区的完整地址,Google 仍将其解释为在美国。

eg(这是一个虚构的地址,因为我无法发布真实的客户详细信息,但原理是一样的)。 纽约农场 主要街道 圣赫利尔 JE1 1AA 球衣

http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&address=New%20York%20Farm%2cMain%20Street%2cSt%20Hellier+%2c%2cJE1+1AA%2cJERSEY

如果我错过了“New York Farm”行,或者在末尾添加了“UK”,则会返回正确的地理编码。但显然这很难自动完成(特别是因为泽西岛不在英国),而且我有很多地址可能还有其他类似的案例。 如果我传入一个区域参数,它仍然有同样的问题。

有没有办法“强迫”这个国家?

【问题讨论】:

    标签: google-maps google-maps-api-3 geocoding google-geocoder


    【解决方案1】:

    您可以使用“region biasing”或“viewport biasing” - 两者都应该为您提供与指定区域更相关的结果。你可能想要区域偏差——他们甚至给出了这个例子:

    您可以使用 region 参数设置 Geocoding API 以返回偏向特定区域的结果。此参数采用指定区域偏差的 ccTLD(国家代码顶级域)参数。大多数 ccTLD 代码与 ISO 3166-1 代码相同,但有一些明显的例外。例如,英国的 ccTLD 是“uk” (.co.uk),而其 ISO 3166-1 代码是“gb”(技术上是“大不列颠及北爱尔兰联合王国”的实体)。

    确实,将&region=uk 添加到您的查询中会使其变为return the appropriate place

    【讨论】:

    • 谢谢。但是泽西岛(海峡群岛)不在英国,所以当我自动执行此操作并根据用户选择的国家/地区下拉列表添加 ISO 3166 代码时,我添加了“&region=JE”——这仍然给了我一个美国位置。 maps.googleapis.com/maps/api/geocode/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多