2012-05-23 2 views
1

Я применил обратное геокодирование в своем приложении, и оно работает, но иногда это происходит очень странно.Проблема обратного геокодирования

Код, который

  List<Address> addresses = geo.getFromLocation(
        obj.getLatitude(), obj.getLongitude(), 1); 


      List<Address> address = geo.getFromLocationName(addresses.get(0).getLocality().getBytes() , 1); 


      Address location = address.get(0); 

В первой части я получаю адрес объекта место, в котором я нахожусь. Чем я хочу восстановить общие координаты города, где я, потому что я не хочу хранить координаты моей точной позиции.

Это работает, но я сталкиваюсь с очень странной проблемой! Попробовав приложение с помощью приложения fakegps, я установил свою позицию в «Суньоа», и первый адрес был найден правильно, но когда я пытаюсь получить общие координаты, я получаю «Нуноа», которого нет в Чили, но в Перу! ! Это не имеет смысла! почему это?

Спасибо, что помогли мне

+0

Я решил это! Когда вы используете андроид api, и вы ставите только название города, Google извлекает первый город с таким именем, указанным в результатах! Я решил создать цепочку, являющуюся конкатенацией obj.getLocality() + "," + obj.getAdminArea(). – michoprogrammer

+0

может отправить свой полный код? – swathi

ответ

0

Sure Swathi.

List<Address> addresses = geo.getFromLocation(msg_r.getLatitude(), 
       msg_r.getLongitude(), 1); 
     String geoL = addresses.get(0).getLocality() + ", " + addresses.get(0).getAdminArea() + ", " + addresses.get(0).getCountryCode(); 

       // reverse-reverseGeocoding 
       List<Address> address = geo.getFromLocationName(geoL, 1); 

       System.out.println("Where I am? " + geoL); 
       Address location = address.get(0); 

       // generic coordinate for the locality/city/town 
       location.getLatitude(); 
       location.getLongitude();