Android 如何以组织良好的格式获取地址

Android 如何以组织良好的格式获取地址,android,google-geocoder,street-address,Android,Google Geocoder,Street Address,首先,我熟悉Geocoder和PlacesAPI。出于这个原因,我不想问如何使用这些文件以原始格式获取整个地址。我在找某个地方的正式地址。由于使用Geocoder API可以获取的地方没有组织,因此我无法通过调用同一个地方单位来达到两个不同LatLng值的省份。举个例子,我可以通过调用.adminArea()获得与我当前位置相对应的城市,但我朋友的位置可能会从.adminArea()返回。因此,我无法从Geocoder对象获取城市字符串,尽管该对象的地址包含城市名称 如果我调用relavent方

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

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

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

这是一个示例结果JSON(仅其主要部分如下所示):

地区
始终是城市,
行政区
始终是州


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

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

  • (免费试用)

不幸的是,我的项目将是一个配额怪物。因此,尽管这似乎是一个不错的选择,但我不能依赖Bing Maps API的请求限制。我应该继续谷歌,并找到一种方法,以适当的方式获得地址。但你的答案仍然有效。谢谢,好的。每天的请求量是多少?因为AFAIK Bing的配额和谷歌的一样高,每月10000个请求。请参见:。此外,谷歌将每秒的请求限制为5次,而Bing则没有。谷歌的限制是每天和每IP 2500次请求。
"address":{
    "addressLine":"1 Microsoft Way",
    "adminDistrict":"WA",
    "adminDistrict2":"King Co.",
    "countryRegion":"United States",
    "formattedAddress":"1 Microsoft Way, Redmond, WA 98052",
    "locality":"Redmond",
    "postalCode":"98052"
}