Dienstag, 24. Juli 2012

Geocoding selber schreiben in PHP mit Google API

Wenn man den geocode von einer Adresse, zum Beispiel "Bahnhofplatz 1 München" haben will gibt es einen ganz einfachen Weg: http://maps.google.com/maps/geo?q=Bahnhofstr.+1+München&output=json&sensor=false

hinter dem Parameter "q" einfach die beliebige Adresse einsetzen und schon bekommt man viele schöne Daten zurück wie die Postleitzahl oder das Bundesland oder das Land usw. und für uns ganz wichtig: die Koordinaten.

Anbei jetzt ein kleines PHP Skriptlein wo man die Adresse direkt eingeben kann und dann die Koordinaten raus bekommt:

<?php

 $adresse = $_POST['Adresse'];

 $html = "<html>
           <head>
            <title>Finde die Koordinaten</title>
           </head>
           <body>
            <form action=\"" . $_SERVER['SCRIPT_NAME'] . "\" method=\"post\">
             Adresse:
             <input type=\"text\" size=\"50\" name=\"Adresse\" value=\"$adresse\">
             <input type=\"submit\" value=\"Hole die Geodaten\">
            </form>
           ";

 if($adresse) {
  $key ="EUER_GOOGLE_API_KEY_WENN_IHR_EINEN_HABT";
  $url = 'http://maps.google.com/maps/geo?q='.urlencode($adresse).'&output=json&sensor=false&key='.$key;
  $data = file_get_contents($url);
  $loc = json_decode($data);
  $lat = $loc->Placemark[0]->Point->coordinates[1];
  $lng = $loc->Placemark[0]->Point->coordinates[0];

  $html .= "Google-URL = $url <br><br> lat = $lat <br> lng = $lng";
 } else {
  $html .= "Bitte eine Adresse eingeben!";
 }

$html .= " </body>
          </html>
         ";

echo $html;
?>


VORSICHT bei den Limits! Solltet ihr keinen gültigen Google-API-Key haben dürfen maximal 2.500 Anfragen über die Google-API laufen. Mit Google-API-Key (siehe hier) können immerhin bis zu 25.000 Anfragen abgeschickt werden, ohne das google die IP für weitere API Zugriffe sperrt (und dann teilweise sogar für einen größeren Zeitraum).

Keine Kommentare:

Kommentar veröffentlichen