Breiten- und Längengrad zu einer Adresse mit PHP ermitteln

Google Maps Logo

Ich musste aus einer CSV-Datei mit Adressen die Koordinaten bestimmen und in ein CMS einpflegen. Dank dem Google Geocoding API ist es auch super einfach. Dazu wird einfach eine Anfrage an Google, mit der Adresse als Parameter, gesendet und man erhält alles was man braucht. Als Ergebnis kann man dabei XML oder JSON anfordern.

Folgende Parameter können übergeben werden:

  • address: Die Adresse zu der die Koordinaten ermittelt werden sollen
  • region: Der dazugehörige Ländercode (zweistelliger ccTLD-Wert)
  • language: Spreache der Ergebnisse
  • sensor: Angabe, ob die Geocodierungsanfrage von einem Gerät mit einem Standortsensor kommt

Jetzt können wir unsere Anfrage mit curl() oder file_get_contents() stellen und bekommen die gewünschten Daten. Als Parameter für die Funktion verwenden wir das folgende URL:

http://maps.google.com/maps/api/geocode/format?parameter

In der Variablen

$address

steht unsere Adresse. Diese kann natürlich aus der Datenbank oder einer Benutzereingabe kommen. Dann fordern wir die Daten von Google, in JSON, an. Und dekodieren diese anschließend.

1
2
3
4
$address = 'Schanzenstr. 70, 22357 Hamburg, Deutschland';
$path = 'http://maps.google.com/maps/api/geocode/json?address='.urlencode($address).'&sensor=false';
$geocode = file_get_contents($path);
$output = json_decode($geocode);

Um den Code etwas zu vereinfachen, habe ich diesen in viele Zwischenschritte unterteilt und die Funktion file_get_contents() verwendet.

In

$output

haben wir jetzt ein Objekt mit den gesuchten Werten:

5
6
$latitude  = $output->results[0]->geometry->location->lat;
$longitude = $output->results[0]->geometry->location->lng;

Weitere Informationen könnt ihr in der offiziellen Dokumentation von Google nachlesen: Das Google Geocoding API

ALL-INKL.COM

2 Kommentars zu dem Artikel “Breiten- und Längengrad zu einer Adresse mit PHP ermitteln”

  1. Avatar von Martin
    Martin

    Danke.

  2. Avatar von Hermann Bachmaier
    Hermann Bachmaier

    Das ist genau das, was ich brauche. Aus einer Adresse Länge und Breite erzeugen.
    Ich habe allerdings Schwierigkeiten mit dem Code-Beispiel. Könnte mir jemand einen Lauffähigen PHP Beispielcode geben??

    vielen Dank
    Hermann