我正在尝试开发一个可以根据经/纬度完成任务的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.2374551lng = 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,返回的地址将不再包含此地址,您可以添加一些逻辑以实现自己想要的行为。

10-05 21:54