2014-02-13 2 views
1

Мне нужно для моего приложения Android название города, где находится мой автомобиль в данный момент.Java Geocoding - преобразование широты и долготы в адрес

У меня есть широта и долгота и вы хотите конвертировать это с геокодером по адресу и хотите получить город.

Я прочитал несколько блоков, но поскольку я новичок в этом, я не понимаю.

Может ли кто-нибудь помочь мне, как это сделать?

EDIT:

Я не использую это геокодирование в моем приложении. Я хочу использовать его в своем веб-сервисе Java, и я думаю, что мне нужно это с помощью HTTPRequest, не так ли? и с URL-адресом google.

+0

Вы пробовали посмотреть на этот API: https://developers.google.com/maps/documentation/geocoding/. И посмотрите на обратную секцию геокодирования. –

ответ

0

То, что вы ищете, это Reverse Geocoding.

Geocoder класс должен помочь вам сделать то, что вам нужно (из here):

public static void getAddressFromLocation(
     final Location location, final Context context, final Handler handler) { 
    Thread thread = new Thread() { 
     @Override public void run() { 
      Geocoder geocoder = new Geocoder(context, Locale.getDefault()); 
      String result = null; 
      try { 
       List<Address> list = geocoder.getFromLocation(
         location.getLatitude(), location.getLongitude(), 1); 
       if (list != null && list.size() > 0) { 
        Address address = list.get(0); 
        // sending back first address line and locality 
        result = address.getAddressLine(0) + ", " + address.getLocality(); 
       } 
      } catch (IOException e) { 
       Log.e(TAG, "Impossible to connect to Geocoder", e); 
      } finally { 
       Message msg = Message.obtain(); 
       msg.setTarget(handler); 
       if (result != null) { 
        msg.what = 1; 
        Bundle bundle = new Bundle(); 
        bundle.putString("address", result); 
        msg.setData(bundle); 
       } else 
        msg.what = 0; 
       msg.sendToTarget(); 
      } 
     } 
    }; 
    thread.start(); 
} 

EDIT: В соответствии с Вашим комментарием, то нет, вы не можете использовать Geocoder класс на обычном Java веб оказание услуг. При этом есть альтернативы. Google Geocoding API обычно является хорошим местом для начала, что, как говорится, они, похоже, имеют limits.

Кроме того, вы можете взглянуть на Nominatim, который представляет собой сервис обратного геокодирования с открытым исходным кодом, хотя он, по-видимому, немного ограничен по сравнению с сервисами Google.

+0

Извините, что забыл сказать. Я не использую это геокодирование в своем приложении. У меня есть веб-сервис java, и я не могу использовать «Geocoder», не так ли? Я должен запросить более httprequest и google api, я думаю. –

+0

@aut_silvia: Я обновил свой ответ. Надеюсь, это облегчит вам ситуацию. – npinti

+0

Мне интересно ... Какова причина, по которой вы создаете темы? –

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

  • Нет связанных вопросов^_^