Android 从谷歌API获取单独的地址字段?

Android 从谷歌API获取单独的地址字段?,android,google-maps-api-3,google-places-api,google-places,Android,Google Maps Api 3,Google Places Api,Google Places,Google Places API可以返回特定地点的详细信息(给定其ID): Places.GeoDataApi.getPlaceById(mGoogleApiClient, placeId) 回调中返回的数据实现了Place接口,使用以下方法以逗号分隔的字符串形式提供对地址的访问: Place.getAddress() 将此字符串解析为街道、郊区、省、镇等字段不可靠,因为字符串格式不一致: 南非开普敦拉涅拉路(街道、郊区、乡村) 南非开普敦凯尼尔沃思第一大道,7708(街道、郊区、城镇

Google Places API可以返回特定地点的详细信息(给定其ID):

Places.GeoDataApi.getPlaceById(mGoogleApiClient, placeId)
回调中返回的数据实现了
Place
接口,使用以下方法以逗号分隔的字符串形式提供对地址的访问:

Place.getAddress()

将此字符串解析为街道、郊区、省、镇等字段不可靠,因为字符串格式不一致:

  • 南非开普敦拉涅拉路(街道、郊区、乡村)
  • 南非开普敦凯尼尔沃思第一大道,7708(街道、郊区、城镇、邮政编码、国家)
  • 美国佛罗里达州珊瑚角西南23台,邮编33991(街道、城镇、邮政编码、国家)


有可靠的方法从谷歌获取解析的地址信息吗?

我认为因为有不同的地点类型,所以地点格式不同,不同国家的地点格式也略有不同。或者您可以使用该类,它有
getCountryName()
getPostalCode()
方法等@ztan知道如何通过对lat/lng对进行反向地理编码来填充
Address
?我看你有相当多的谷歌地图经验。你可以先通过执行
Geocoder-Geocoder=new-Geocoder(这个,Locale.getDefault())来创建
Geocoder
对象,然后调用
地址=geocoder.getFromLocation(location.getLatitude(),location.getLatitude(),1)
您将
1
放在这里,这样它只会返回1个结果,您可以查看更多详细信息。@RichardLeMesurier您找到解决方案了吗?@selva_pollachi我们找到的最好的方法是编写一个服务器API,调用cloud rest函数并解析字段。因此,移动设备不会直接呼叫谷歌,而是通过我们的服务器。这样的体验实际上更好,因为我们可以使用特定于应用程序的信息来增强结果。