【问题标题】:Google Map Geocoding - no street number?谷歌地图地理编码 - 没有街道号码?
【发布时间】:2012-01-06 19:58:38
【问题描述】:

这会产生一个 JSON 字符串,其中包含 street_number - http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false

"long_name" : "1600",
"short_name" : "1600",
"types" : [ "street_number" ]

但是,这不会生成包含 street_number - http://maps.googleapis.com/maps/api/geocode/json?address=26th+St+2nd+Ave+New+York,+NY+10019&sensor=false 的 JSON 字符串。 26th St 部分似乎消失了。知道为什么吗?

【问题讨论】:

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


    【解决方案1】:

    一般来说,地理编码是不确定的。虽然不常见,但根据地理编码过程内部实现的变化,同一个查询可能返回不同精度的结果。

    另一个问题是某些地方可能没有街道地址,或者算法无法近似。

    您应该了解这些因素并处理所有这些不同的情况。我想您无能为力以确保来自 google 服务器的一致回复。

    【讨论】:

    • 我并没有要求 Google 估算街道地址。我已经提供了。
    • 对不起,我刚刚注意到...但同样的想法也适用。不幸的是,您对此无能为力,只需要处理不一致的地方。您可以查找 street_address 或 route 组件,如果两者均未找到,则假设您未成功找到街道号码。
    【解决方案2】:

    显然是因为 26th St 部分不是 street_number。 26th St2nd Ave 都是街道名称,因此它只是丢弃 26th St 查询的一部分。而在第一个查询中,1600 实际上是一个 street_number。

    【讨论】:

      【解决方案3】:

      有时会丢弃街道号码的另一种情况是当它具有方向前缀时,例如315 West 44th Street。在这种情况下,如果前缀被缩写,结果会更准确,例如315 W 44th Street。虽然我没有看到这个记录,但我看到的每个谷歌地图都以这种方式缩写方向,所以地址可能是在内部以这种方式存储的,并且通过在地理编码之前缩写来提高获得良好结果的机会。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-20
        • 1970-01-01
        • 1970-01-01
        • 2013-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多