1

谁能告诉我反向地理编码器是如何工作的。我有使用 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");
4

1 回答 1

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)
于 2013-06-28T23:26:15.840 回答