2012-01-13 5 views
2

HeiКак найти местоположение с помощью почтового индекса на карте Google

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

ответ

0
function geocode_yahoo($code){ 
    $app_id = ''; 
    $code = str_replace(" ","+",$code); 

    $url ="http://local.yahooapis.com/MapsService/V1/geocode?appid=$app_id&zip=$code"; 
    [email protected]_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; 
} 

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

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

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

2

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

что становится широты & longit удэ из Почтового индекса ...

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"/> 

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

+1

Благодарим вас за ответ. Однако не вежливо - и неприемлемо - просить голоса/принимает. Если OP хочет проголосовать или принять, они будут. Я удаляю этот текст из вашего вопроса. Пожалуйста, не делайте этого в будущем. :) –

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