我正在使用Geocoder查找邮政编码。
我的代码:
Geocoder geocoder = new Geocoder(this, Locale.ENGLISH);
try {
List<Address> addresses = geocoder.getFromLocation(LATITUDE, LONGITUDE, 1);
if(addresses != null) {
Address returnedAddress = addresses.get(0);
StringBuilder strReturnedAddress = new StringBuilder("Address:\n");
for(int i=0; i<returnedAddress.getMaxAddressLineIndex(); i++) {
strReturnedAddress.append(returnedAddress.getAddressLine(i)).append("\n");
strReturnedAddress.append(returnedAddress.getPostalCode()).append("\n");
}
myAddress.setText(strReturnedAddress.toString());
}
else{
myAddress.setText("No Address returned!");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
myAddress.setText("Canont get Address!");
}
我的问题是邮政编码返回null。
此代码在Android 4.2或以下版本中无效。
如果有在线api通过给予lat long来提供邮政编码。那么请告诉我。
请帮我解决这个问题。
提前致谢。
答案 0 :(得分:1)
Geocoder geocoder;
List<Address> addresses;
geocoder = new Geocoder(this, Locale.getDefault());
addresses = geocoder.getFromLocation(latitude, longitude, 1);
String address = addresses.get(0).getAddressLine(0);
String city = addresses.get(0).getAddressLine(1);
String country = addresses.get(0).getAddressLine(2);
邮政编码(美国的邮政编码),如果有的话,是:
final String postalCode = addresses.get(0).getPostalCode();
答案 1 :(得分:0)
根据Android API和getPostalCode()
的文档:
返回地址的邮政编码,例如“94110”或null 如果不知道。
简单而悲伤的答案是,没有给定地址的邮政编码数据。很难推荐除Geocoder
以外的任何其他选择,Google Geocoder API
可能是Android中Geocoder
的来源,我认为没有更好的选择(对于世界而言)广泛的目的)。如果搜索仅限于特定国家/地区,则可能存在其他解决方案,例如英国的uk-postcodes API
。
答案 2 :(得分:0)
从谷歌地理编码器API的json中找到postal_code和formatted_address标签。我希望有帮助......