Geo-informatie opvragen met de Google Geocoding API

Elk fysiek adres op aarde en dus ook elke (woon)plaats heeft een lengte- en een breedtegraad. Geocoding is het systeem waarbij een adres wordt omgezet in de bijbehorende geografische gegevens. Deze gegevens worden dan weer geïmplementeerd in navigatietoepassingen. Het omgekeerde bestaat ook. Dan worden de geografische gegevens geconverteerd in een fysiek adres. Dat is dan ‘Reverse Geocoding’. Voor beide toepassingen kun je rechtstreeks hulp vragen aan Google via Google Maps aan hun geocoder.

Bron : Geo-informatie - Wikipedia

define('BROWSER', "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.2) Gecko/20070319 Firefox/2.0.0.3");

function geocoding($formatted_address)
{
    $url = 'http://maps.google.com/maps/api/geocode/xml?address='.urlencode($formatted_address).'&sensor=false';

    $ch = curl_init();

    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 15);
    curl_setopt ($ch, CURLOPT_USERAGENT, BROWSER);

    $url_string = curl_exec($ch);

    curl_close($ch);

    return simplexml_load_string($url_string);
}

$zipcode = '3067MB';

$formatted_address = $zipcode . ',' . ' ' . 'The Netherlands';

$xml = geocoding($formatted_address);

if ($xml->status == 'OK');
{
    echo $xml->result->geometry->location->lat; // latitude
    echo '
'; echo $xml->result->geometry->location->lng; // longitude }

Resultaat:

51.9448047
4.5562889

Opmerking : Er is per "IP-Adres" een limiet van 2,500 request per dag.

Meer informatie : The Google Geocoding API