2013-06-28 2 views
1

Может ли кто-нибудь сказать мне, как работает обратный геокодер. У меня есть код, который использует getFromlocation и getLastKnownLocation, чтобы узнать адрес. Дело в том, что я не знаю, как использовать OnLocationChanged на нем и как отключить прослушиватель, когда он мне не нужен. Я совершенно смущен в течение последних двух дней. Если какой-либо один может дать мне некоторые хорошие ресурсы с полными примерами или связать это было бы здорово ..Geocoder Класс Пояснение

   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"); 

ответ

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) 
+0

что произойдет, если я использую locationManager.getLastKnownLocation вместе с geocoder.getFromLocation? – user2511882

+0

Не знаю. Я использовал метод getFromLocation(). Я думаю, что результаты getFromLocation() будут переопределять все, что есть getLastKnownLocation(). Для чего вы используете этот API? –

+0

Я пытаюсь получить местоположение пользователя, когда он нажимает кнопку. Но я продолжаю получать странный ответ. Иногда он возвращает null и прочее. – user2511882

Смежные вопросы