Android 来自位置的ZipCode
是否有任何方法可以从location、lat或long获取当前用户位置的邮政编码。Android 来自位置的ZipCode,android,location,zipcode,Android,Location,Zipcode,是否有任何方法可以从location、lat或long获取当前用户位置的邮政编码。 如果是,怎么做?是的,您可以……您只需提取 纬度、经度 或者试试这个解决方案。我可以给你一个想法 你可以拥有一座城市,对吗?有了这个json数据,如果您有一个zipcode的数据库(在maxmind.com上)使用这种格式 CountryCode | City | ZipCode 宿务6000 现在查询您的数据库,该数据库与Google返回的countrycode相关 更新 地理编码API v2已于2013年
如果是,怎么做?是的,您可以……您只需提取 纬度、经度
或者试试这个解决方案。我可以给你一个想法 你可以拥有一座城市,对吗?有了这个json数据,如果您有一个zipcode的数据库(在maxmind.com上)使用这种格式 CountryCode | City | ZipCode
宿务6000 现在查询您的数据库,该数据库与Google返回的countrycode相关 更新 地理编码API v2已于2013年9月9日被拒绝。 下面是API服务的新URL 使用Android
getFromLocation(double,double,int)是您所需要的一切。基于地理编码器的实现:
private String getZipCodeFromLocation(Location location) {
Address addr = getAddressFromLocation(location);
return addr.getPostalCode() == null ? "" : addr.getPostalCode();
}
private Address getAddressFromLocation(Location location) {
Geocoder geocoder = new Geocoder(this);
Address address = new Address(Locale.getDefault());
try {
List<Address> addr = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
if (addr.size() > 0) {
address = addr.get(0);
}
} catch (IOException e) {
e.printStackTrace();
}
return address;
}
私有字符串getZipCodeFromLocation(位置){
地址addr=getAddressFromLocation(位置);
返回addr.getPostalCode()==null?”:addr.getPostalCode();
}
专用地址getAddressFromLocation(位置){
Geocoder Geocoder=新的Geocoder(本);
地址=新地址(Locale.getDefault());
试一试{
List addr=geocoder.getFromLocation(location.getLatitude(),location.getLatitude(),1);
如果(地址大小()>0){
地址=地址获取(0);
}
}捕获(IOE异常){
e、 printStackTrace();
}
回信地址;
}
您还可以从地址获取其他信息,例如城市名称。@Udaykiran您需要另一个包含zipcode记录的数据库。这是该数据库的示例。如果您还想下载另一个zipcode数据库,请单击此处“>ZipCode数据库谢谢你救了我一天!!!!还有@Udaykiran尝试给美国的lat long,它会给你邮政编码,我不知道印度有什么问题!!!!这个答案不再有效,因为谷歌已经拒绝了地理编码API v2。Android地理编码API是一个更好的解决方案。我已经更新了我的答案。
private String getZipCodeFromLocation(Location location) {
Address addr = getAddressFromLocation(location);
return addr.getPostalCode() == null ? "" : addr.getPostalCode();
}
private Address getAddressFromLocation(Location location) {
Geocoder geocoder = new Geocoder(this);
Address address = new Address(Locale.getDefault());
try {
List<Address> addr = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
if (addr.size() > 0) {
address = addr.get(0);
}
} catch (IOException e) {
e.printStackTrace();
}
return address;
}