Google Geocode Service in PHP nutzen
Google bietet die Möglichkeit Positionsdaten von Adresse, Städten, Straßen mittels Geocoding zu ermitteln. Dies kann Clientseitig mittels JS passieren oder aber auch Serverseitig durch den Aufruf einer URL. Dabei liefert Google ein XML-Dokument zurück, dass mittels PHP leicht geparst werden kann.
URL-Syntax
http://maps.google.com/maps/geo?q=[]&output=[]&key=[]
- q
Suchanfrage
mehrere Worte mit + verbinden - output
Typ der Ausgabe: xml oder html
Standard ist xml - key
ein gültiger Google-API-Key
http://maps.google.com/maps/geo?q=1200+wien&output=xml&key=ABQIAAAAs-81XuoxqzyG-Ie2CT72UhTfU3gdmQ-RPKoFZ_gIMx2_IU9bDxSUIz5Wk18sfrWsnp26WYx3VDsLSg
PHP-Code
function getCoordinates($address,$api_key) {
$result = false;
$url = 'http://maps.google.com/maps/geo';
$url .= '&q=' . rawurlencode($address);
$url .= '&key=' . $api_key;
$url .= '?output=xml';
$coords = array();
if ($_result = file_get_contents($_url)) {
if (preg_match('/<coordinates>(-?\d+\.\d+),(-?\d+\.\d+),(-?\d+\.?\d*)<\/coordinates>/', $result, $match)) {
$coords['lon'] = $match[1];
$coords['lat'] = $match[2];
$result = true;
}
}
if ($result) {
return $coords;
}
return $result;
}