我正在尝试开发一个可以根据经/纬度完成任务的android应用程序。这就像如果我在某个郊区(假设我在澳大利亚ACT的Belconnen,我想自动获取该地点的详细信息)-如果我移出Belconnen的边界,则必须显示其他一些详细信息。
如果您查看此google maps链接:http://goo.gl/4mItcF,您会看到红色边框仅是belconnen郊区。
我的问题是如何在我的应用程序中赋予边界(意思是如何告诉我我现在在ACT处于Belconnen的应用程序?是通过沿边界纬度/经度将其存储在DB中并检查我是否在边界内?纬度/经度,如果是这样的话,ACT仅对Belconnen来说DB会有大量数据,对吗?
还是有更简单的方法获得边界?
让我知道!
谢谢!
最佳答案
有一种方法,称为反向地理编码。您可以通过两种方式使用它:
1.使用Android的Geocoder
类-
Geocoder gcd = new Geocoder(context, Locale.getDefault());
List<Address> addresses = gcd.getFromLocation(lat, lng, 1);
if (addresses.size() > 0)
System.out.println(addresses.get(0).getLocality());
在这里,您将
lat = -35.2374551
和lng = 149.0672515
用于ACT澳大利亚的Belconnen。查看功能getFromLocation以获得更多信息。2.使用Google REST Web服务:
https://maps.googleapis.com/maps/api/geocode/json?latlng=-35.2374551,149.0672515(JSON)
https://maps.googleapis.com/maps/api/geocode/xml?latlng=-35.2374551,149.0672515(XML)
通过逗号分隔纬度和经度,您将得到最准确的位置作为响应。在此处查找更多信息Reverse Geocoding google API
一旦您离开ACT澳大利亚的Belconnen,返回的地址将不再包含此地址,您可以添加一些逻辑以实现自己想要的行为。