如何以组织良好的格式获取地址
How to get address in a well-organized format
首先,我熟悉 Geocoder 和 Places API。出于这个原因,我不问如何通过使用这些来获得原始格式的整个地址。我正在寻找某个地方的正式地址。由于可以使用 Geocoder API 获取的地点没有组织,因此我无法通过调用同一个地点单元到达两个不同 LatLng 值的省份。例如,我可以通过调用 .adminArea() 获取与我当前位置相对应的城市,但我朋友的位置可能会作为他的引擎盖从 .adminArea() 返回。因此,尽管此对象的地址包含城市名称,但我无法从 Geocoder 对象中获取城市字符串。
如果我调用相关方法,是否还有另一个 API 可以给我正确的 street/locality/city?或者有没有办法解析 Geocoder 对象的地址,以便我可以获得最干净的地址组件?
你可以试试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:我在我的一个项目中使用它,他们的配额非常公平。
有很多 API 可用于验证地址并将其解析为其组成部分。不要试图自己解决这个问题 ("step away from those regexes with your hands up!") 我偏爱 smartystreets.com 和他们的服务,但那是因为(披露)我是那里的开发人员并帮助构建了其中的大部分。
首先,我熟悉 Geocoder 和 Places API。出于这个原因,我不问如何通过使用这些来获得原始格式的整个地址。我正在寻找某个地方的正式地址。由于可以使用 Geocoder API 获取的地点没有组织,因此我无法通过调用同一个地点单元到达两个不同 LatLng 值的省份。例如,我可以通过调用 .adminArea() 获取与我当前位置相对应的城市,但我朋友的位置可能会作为他的引擎盖从 .adminArea() 返回。因此,尽管此对象的地址包含城市名称,但我无法从 Geocoder 对象中获取城市字符串。
如果我调用相关方法,是否还有另一个 API 可以给我正确的 street/locality/city?或者有没有办法解析 Geocoder 对象的地址,以便我可以获得最干净的地址组件?
你可以试试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:我在我的一个项目中使用它,他们的配额非常公平。
有很多 API 可用于验证地址并将其解析为其组成部分。不要试图自己解决这个问题 ("step away from those regexes with your hands up!") 我偏爱 smartystreets.com 和他们的服务,但那是因为(披露)我是那里的开发人员并帮助构建了其中的大部分。