首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自位置的ZipCode

来自位置的ZipCode
EN

Stack Overflow用户
提问于 2011-05-02 18:04:56
回答 3查看 8.4K关注 0票数 5

有没有办法从location或lat或long获取当前用户位置的邮政编码?如果是这样的话,是怎么做的?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-02 18:07:41

是的,你can...All你需要做的就是提取

http://maps.google.com/maps/geo?ll=latitude,经度

代码语言:javascript
复制
http://maps.google.com/maps/geo?ll=10.345561,123.896932

或者尝试这个解决方案。我可以给你一个想法。

你可以拥有一座城市,对吧?WIth这个json数据,如果您有一个采用这种格式的zipcode的数据库(在maxmind.com)。

CountryCode |城市| ZipCode

代码语言:javascript
复制
  PH       |Cebu  |6000

现在查询与googles返回的国家代码相关的数据库。

更新

地理编码接口v2已于2013年9月9日关闭。

下面是API服务的新URL

http://maps.googleapis.com/maps/api/geocode/json?latlng=your_latitude,your_longitude

http://maps.googleapis.com/maps/api/geocode/json?latlng=10.32,123.90&sensor=true

票数 5
EN

Stack Overflow用户

发布于 2011-11-25 14:28:50

使用安卓Geocoder API

getFromLocation(double,double,int)就是您所需要的。

票数 8
EN

Stack Overflow用户

发布于 2014-06-17 14:46:09

基于地理编码器的实现:

代码语言:javascript
复制
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;
}

您还可以从地址中获取其他信息,例如城市名称。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5855843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档