# Google Maps API - Entfernung zwischen 2 Adressen ausgeben



## dwex (26. Februar 2009)

Hallo Leute,

ich setze mich jetzt schon seit geraumer Zeit mit der Frage auseinander wie ich es schaffen könnte mit PHP aus Google Maps die Entfernung (Straßenkilometer) von 2 Adressen herauszufinden.
Es geht mir nur um die Gesamtkilometer - ich muss keine Karte zeichnen und auch keine Route ausgeben.

Leider finde ich nicht das passende für PHP in der API.

Kann mir jemand bitte auf die Sprünge helfen?
Vielen Dank im voraus!


----------



## Sven Mintel (26. Februar 2009)

Moin, 

dass es da nichts Passendes für PHP in der API gibt, liegt daran, dass es überhaupt nichts für PHP in der API gibt

Da Google auch sonst keinen Service bereitstellt, der solche Informationen liefert, lässt sich da also nichts machen...das Anzapfen der Informationen von anderen Quellen(bspw. der JS/JSON-Dateien, welche diese Informationen ja enthalten), wäre laut der Google-AGB nicht rechtens.


----------



## Anime-Otaku (26. Februar 2009)

Desweiteren ist es in der Geographie Welt nicht sooo einfach aus Koordinaten Meterangaben zu bestimmen, da die Erde keine Scheibe sondern eine Kugel ist.

http://de.wikipedia.org/wiki/Geodätisches_Datum

Beim Routing weiß das System ja wie lange die Straßen sind.


----------



## Michael Engel (27. Februar 2009)

Die Google Maps API bietet dir die Funktion Routen berechnen zu lassen und dann die entfernung zu bestimmen.
http://code.google.com/intl/de/apis/maps/documentation/reference.html#GRoute

Allerdings ist die Menge dieser Abfragen begrenzt. Wenn eine Luftlinienbestimmung dir recht, gibt es erheblich schnellere Wege um Distanzen zu bestimmen.


----------



## Sven Mintel (27. Februar 2009)

Es geht ihm ja darum, diese Entfernung mit PHP abzufragen, die API ist aber für Javascript


----------



## dwex (27. Februar 2009)

@Anime-Otaku
Entfernungsberechnung auf unserer "abgeplatteten" Erde mit den Koordinaten habe ich schon vor Jahren berechnet  - das ist eigentlich eine ganz einfache mathematische Formel, welche auch mit PHP "Bordmitteln" recht leicht umzusetzen ist.
Das einzige Problem dabei ist eben die Abplattung der Erde demanch muss man für jeden Breitenkreis einen Korrekturfaktor einbauen da die Längenkreise ja Großkreise sind und je weiter man nach Norden kommt diese Kreisabstände immer enger werden. Der Abstand eines Breitenkreises zum anderen hat immer 111,3 km oder eben 60 Nautische Meilen. Der Abstand zu den Längenkreisen ist eben nur am Equator = 111,3 km. Das haben Großkreise leider so ansich. Einen Korrekturfaktor zu berechnen ist aber auch kein Problem.

@Michael Engel
Mit Luftlinienberechnung "arbeite" ich ja (wie oben beschrieben) schon seit längerem - jedoch möchte ich jetzt ein bischen genauer werden. Da ich festgestellt habe das die Luftlinieberechnung teilweise nichts mit der "realen" Entfernung zu tun hat.

@Sven Mintel
Ja wieder typisch Google - für uns PHPler stellen Sie wieder nichts zur Verfügung  und mit JS möchte ich mich ja bekanntlich nicht unbedingt auseinandersetzen.


----------



## Sven Mintel (27. Februar 2009)

dwex hat gesagt.:


> @Sven Mintel
> Ja wieder typisch Google - für uns PHPler stellen Sie wieder nichts zur Verfügung  und mit JS möchte ich mich ja bekanntlich nicht unbedingt auseinandersetzen.


Naja...Google ist nicht die Heilsarmee, auch wenn die Nutzung der Maps nichts kostet, hätten sie gerne ihren Obulus, sprich: Userdaten...und da fällt die Mahlzeit mit JS halt am Üppigsten aus.

Dürfte auch zu Tun haben mit der Authentifizierung, denn wenn das alles per PHP(oder anders serverseitig) abfragbar wäre, könnten sie sich das alles Sparen, weil man dann den REFERER fälschen und einen fremden Key nutzen könnte.


----------



## Michael Engel (27. Februar 2009)

Nochmal auf die Google API geschaut.. kA wie zuverlässig es ist.. aber hier eine distazbestimmung anhand der Straßenkarte und google maps sagen das er es als XML File zurückliefern solle:


```
echo file_get_contents('http://maps.google.com/maps?f=d&hl=en&geocode=&saddr=Wesseling&daddr=bonn&sll=50.835525,7.02969&sspn=0.339547,0.617981&ie=UTF8&z=10&om=1&output=kml&key=APIKEY--APIKEY--APIKEY--APIKEY--APIKEY');
```

Das Ganze noch durch einen XML Parser jagen und man bekommt im Document/Placemark:last/description die Entfernung...


Wofür die Koordinaten sind, die man bei der bestimmung angeben muss (sonst lieferte er grad nix zurück?!) Weis ich nicht, scheint aber die Berechnung an sich nicht direkt zu betreffen.


----------



## kuddeldaddeldu (27. Februar 2009)

Hi,

ich fürchte nur, dass genau das unter Anzapfen fällt, wie Sven schon sagte. 

LG


----------



## Patrick Hennig (20. April 2010)

Gibt es eine Möglichkeit, bei dieser Abfrage auch Postleitzahlen zu verwenden, anstatt der Name der Stadt?


----------



## Sven Mintel (21. April 2010)

Es gibt keine Maps-API für PHP, folglich gibt es auch keine "Abfrage", ob nun nach PLZ oder sonstetwas.

Das einzigste, was serverseitig erlaubtermaßen geht, ist Geokodierung, darüber sind aber keine Entfernungen ermittelbar.


----------



## Matthias Reitinger (21. April 2010)

Hallo,

Bing Maps (das Microsoft-Pendant zu Google Maps) bietet allerdings Webservices an, auch zur Routenberechnung. Da es sich um SOAP-Webservices handelt, sollte man diese auch mit PHP ansprechen können.

Grüße,
Matthias


----------

