2014-02-17 2 views
2

Я знаю, как получить почтовый индекс из координат долготы и широты, но я не знаю, как получить обратное (долгота и широта от почтового индекса). Как мне это сделать?Android, Какой самый быстрый и эффективный способ преобразования почтового индекса в долготу и широту в Java?

В Android

Код для получения почтового индекса от долготы и широты координаты:

Geocoder geoCoder = new Geocoder(getApplicationContext(), Locale.getDefault()); 
List<Address> address = null; 

if (geoCoder != null){ 
    try { 
     address= geoCoder.getFromLocation(latPoint, lngPoint, 1); 
     } catch (IOException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
     } 
     if (address.size()> 0){ 
     String postCode = address.get(0).getPostalCode(); 
     } 

ответ

2

Вы в значительной степени ответили на свой вопрос. Класс Geocoder для Android можно использовать как для геокодирования, так и для обратного геокодирования. Преобразование адресов в латлон называется геокодированием; преобразование latlon-to-address (как в вашем примере) называется обратным геокодированием. Я изменил ваш пример, чтобы показать пример геокодирования, используя почтовый индекс Великобритании:

Geocoder geoCoder = new Geocoder(getActivity(), Locale.getDefault()); 
    List<Address> address = null; 

    if (geoCoder != null) { 
     try { 
      address = geoCoder.getFromLocationName("KT48LY", 10); 
     } catch (IOException e1) { 
      e1.printStackTrace(); 
     } 
     if (address.size() > 0) { 
      Address first = address.get(0); 
      double lat = first.getLatitude(); 
      double lon = first.getLongitude(); 
     } 
    } 
0

К сожалению Geocoder только фасад. Реализация зависит от устройства и не является обязательной. Если собственная служба Geocoder Google является бэкенд, метод getFromLocationName может работать достаточно надежно, при задании в виде строки запроса сочетание почтового индекса и страны, такие как:

10007, USA 

Если это не работает для вас надежно вы можете используйте базу данных геоданных от GeoNames.org. Я просто попробовал запрос на основе почтового индекса и названия страны и получил от них правильный результат.

GeoNames имеет API веб-службы с поддержкой данных JSON и XML, а также предоставляет ссылки для загрузки различных клиентских библиотек для разных языков программирования.

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