如何从android中的当前位置获取邮政编码

时间:2011-07-09 05:42:33

标签: android mobile

  

可能重复:
  ZipCode from location

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

2 个答案:

答案 0 :(得分:3)

您可以使用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解析器解析XML(或者只使用JSON):

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?

答案 1 :(得分:1)

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

或者

请检查此link