可能重复:
ZipCode from location
我需要找到当前位置的邮政编码。这可能吗?
答案 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。