地理编码器类解释

时间:2013-06-28 23:07:42

标签: android reverse-geocoding

任何人都可以告诉我反向地理编码器的工作原理。我有使用getFromlocation和getLastKnownLocation来查找地址的代码。问题是我不知道如何使用OnLocationChanged以及如何在我不需要时禁用侦听器。过去两天我完全糊涂了。如果任何人可以通过完整的示例或链接为我提供一些好的资源,那就太棒了。

                Geocoder geocoder = new Geocoder(
                    TrackLogic.this.getApplicationContext(),
                    Locale.getDefault());
            Location locationGPS = locationManager
                    .getLastKnownLocation(LocationManager.GPS_PROVIDER);
            Location locationNetwork = locationManager
                    .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
            Log.d(TAG, "geocoder works");

1 个答案:

答案 0 :(得分:0)

首先,您需要获取LocationManager实例以及要用于执行位置查找的提供程序的名称。例如:

String provider = LocationManager.NETWORK_PROVIDER;
LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

接下来,您可以像这样调用requestLocationUpdates(...):

locationManager.requestLocationUpdates(provider, 1000, 0, this);

这可以在主线程上调用,因为(我认为)系统将使用后台线程上的指定提供程序进行位置查找。找到位置后,Android系统将调用onLocationChanged(...)回调,您需要覆盖该回调。由于您正在尝试进行地址查找,因此请输入:

Geocoder geocoder = new Geocoder(this);
geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 10)

哪个可以帮到你找到你想要的东西。

使用位置服务后,您可以致电

locationManager.removeUpdates(this)