【问题标题】:How to get ZIP Code from current location in android [duplicate]如何从android中的当前位置获取邮政编码[重复]
【发布时间】:2011-07-09 17:04:08
【问题描述】:

可能重复:
ZipCode from location

我需要查找当前位置的邮政编码。这可能吗?

【问题讨论】:

    标签: android mobile


    【解决方案1】:

    您可以使用Google's Geocoding API 完成此操作。您实际上正在寻找的是反向地理编码,但它也支持。您可以让它返回 XML,然后将其解析为邮政编码(a.k.a zipcode)。其实应该很简单。

    要使用 API,只需使用正确的经纬度通过 HTTP 访问它:

    https://maps.googleapis.com/maps/api/geocode/xml?latlng=37.775,-122.4183333&sensor=true

    然后使用 XPath 或您最喜欢的 XML 解析器(或仅使用 JSON)解析 XML:

    XPath xpath = XPathFactory.newInstance().newXPath();
    String expression = "//GeocodeResponse/result/address_component[type=\"postal_code\"]/long_name/text()";
    InputSource inputSource = new InputSource("https://maps.googleapis.com/maps/api/geocode/xml?latlng=37.775,-122.4183333&sensor=true");
    String zipcode = (String) xpath.evaluate(expression, inputSource, XPathConstants.STRING);
    

    我还没有实际测试过这段代码(它显然需要异常处理),但我相信你可以从这里开始工作。

    至于获取位置本身,前面的问题总结得很好:

    How do I get the current GPS location programmatically in Android?

    【讨论】:

    • 我已经在模拟器上测试过了,但它不起作用。如何从城市名称和国家名称中找到邮政编码??
    • 要使用地址代替 latlang,只需将 latlang 替换为 URL 中的地址即可。至于“不工作”,您必须更加具体。至少是一条错误消息或其他东西......
    【解决方案2】:

    没有“简单的方法”来获取用户的实际邮政编码。你 可以使用反向地理编码器功能来做到这一点,但它没有 总是返回邮政编码,也不是总是准确的。无论哪种方式, 您必须启用定位服务和互联网访问 下令去做。

    请查看link

    【讨论】:

    • 我的设备中有网络。那我如何从用户当前位置找到邮政编码??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多