【问题标题】:How to get address in a well-organized format如何以组织良好的格式获取地址
【发布时间】:2015-08-28 00:54:13
【问题描述】:

首先,我熟悉 Geocoder 和 Places API。出于这个原因,我不问如何通过使用这些来获取原始格式的整个地址。我正在寻找某个地方的正式地址。由于没有组织可以使用 Geocoder API 获取的地点,因此我无法通过调用同一个地点单位到达两个不同 LatLng 值的省份。举例来说,我可以通过调用 .adminArea() 来获取与我当前位置相对应的城市,但我朋友的位置可能会从 .adminArea() 作为他的引擎盖返回。因此,尽管该对象的地址包含城市名称,但我无法从 Geocoder 对象中获取城市字符串。

如果我调用相关方法,是否有其他 API 可以为我提供正确的街道/地区/城市?或者有没有办法解析 Geocoder 对象的地址,以便我可以获得最干净的地址组件?

【问题讨论】:

    标签: android google-geocoder street-address


    【解决方案1】:

    你可以试试Bing Maps API。它本身不是 Android API,但您可以向 RESTful API 发出请求并获得非常标准化的结果。

    这是一个示例结果 JSON(下面只显示了它的主要部分):

    "address":{
        "addressLine":"1 Microsoft Way",
        "adminDistrict":"WA",
        "adminDistrict2":"King Co.",
        "countryRegion":"United States",
        "formattedAddress":"1 Microsoft Way, Redmond, WA 98052",
        "locality":"Redmond",
        "postalCode":"98052"
    }
    

    Locality 始终是城市,而AdminDistrict 始终是州。

    PS:我在我的一个项目中使用它,他们的配额非常公平。

    【讨论】:

    • 不幸的是,我的项目将是一个配额怪物。因此,尽管它似乎是一个不错的选择,但我不能依赖 Bing Maps API 的请求限制。我应该继续使用谷歌并找到一种以适当方式获取地址的方法。但你的答案仍然有效。谢谢。
    • 好的。每天有多少请求?因为 AFAIK Bing 的配额与 Google 的一样高,10k 请求/月。看到这个:azure.microsoft.com/en-us/marketplace/partners/bingmaps/mapapis。此外,Google 将每秒请求数限制为 5,而 Bing 则没有。
    • Google 的限制是每个 IP 每天 2500 个请求。
    【解决方案2】:

    有许多 API 用于验证地址并将其解析为它们的组成部分。不要试图自己解决这个问题(“举手离开那些正则表达式!”)我偏爱 smartystreets.com 及其服务,但那是因为(披露)我是那里的开发人员并帮助构建大多数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-16
      • 2023-03-10
      • 1970-01-01
      • 2013-11-10
      • 2022-10-02
      • 2010-12-04
      • 1970-01-01
      • 2013-10-26
      相关资源
      最近更新 更多