【发布时间】:2011-07-09 17:04:08
【问题描述】:
【问题讨论】:
【问题讨论】:
您可以使用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?
【讨论】:
没有“简单的方法”来获取用户的实际邮政编码。你 可以使用反向地理编码器功能来做到这一点,但它没有 总是返回邮政编码,也不是总是准确的。无论哪种方式, 您必须启用定位服务和互联网访问 下令去做。
请查看link。
【讨论】: