Как найти местоположение, используя почтовый индекс на карте Google - PullRequest
2 голосов
/ 13 января 2012

Hei

iam, работая с картой Google, выполнил поиск части и получил результаты при поиске по названию города. Теперь мне нужно расширить функциональность, например, если я дам почтовый номер, а затем придется искать в 2 км или10 км. Как я могу это сделать?
см. Один пример здесь http://www.hm.com/no/store-locator

Ответы [ 2 ]

2 голосов
/ 27 февраля 2013

Попробуйте этот код ...

который получает широта и долгота от Почтовый индекс ...

public void locationFromPostCode(String postCode){

    geocoder1 = new Geocoder(this);
    try {
          List<Address> addresses1 = geocoder1.getFromLocationName(postCode, 1);
          if (addresses1 != null && !addresses1.isEmpty()) {
            Address address1 = addresses1.get(0);
            // Use the address as needed
            latitude_start = address1.getLatitude();
            longitude_start = address1.getLongitude();
            String message = "Latitude: "+address1.getLatitude()+", Longitude: "+address1.getLongitude();
            Toast.makeText(this, message, Toast.LENGTH_LONG).show();
          } else {
            // Display appropriate message when Geocoder services are not available
            Toast.makeText(this, "Unable to geocode zipcode", Toast.LENGTH_LONG).show(); 
          }
        } catch (IOException e) {
          // handle exception
        }
    }

Для этого кода вам требуется после ...

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>

Вы получаете из этого кода широта и долгота из Почтовый индекс От широта и долгота вы можете получить Местоположение ...

0 голосов
/ 13 января 2012
function geocode_yahoo($code){  
    $app_id = ''; 
    $code = str_replace(" ","+",$code); 

    $url ="http://local.yahooapis.com/MapsService/V1/geocode?appid=$app_id&zip=$code"; 
    $xml=@file_get_contents($url); 
    preg_match('/<Latitude>(.*?)<\/Latitude>/',$xml,$matches); 
    $ll['lat']=$matches[1]; 
    preg_match('/<Longitude>(.*?)<\/Longitude>/',$xml,$matches); 
    $ll['lng']=$matches[1]; 
    return $ll; 
} 

вот функция, которая будет возвращать lat и long, я думаю, что вы будете работать над этим. Зарегистрируйтесь на Yahoo для получения ключа API. и используйте эту функцию. использовал его в течение нескольких месяцев.

Есть странные случаи, когда геокодировки неверны, но это лишь случайный и самый простой способ выяснить, что они обычно за сотню миль (таким образом, длинные лат совершенно разные)

Мы также используем базу данных почтовых индексов AFD (введите почтовый индекс - получите все данные об адресе), в которой есть значения long, но только до 4 десятичных знаков (не очень точно)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...