Hallo!
Ich versuche gerade ein Script zu schreiben, das die vollständigen Adressdaten (Ort,PLZ etc.) anhand einer eingegeben Staße und Hausnummer ermittelt. Dazu verwende ich den Geocode-Service von Google (Google Maps API).
Folgende Funktion soll diese Adressdaten ermitteln:
In der Globalen $key steht der Key, der benötigt wird, um die Google-Maps-Api verwenden zu können. In $googleurl steht 'http://maps.google.com/maps/geo', in $str die zu suchende Straße und in $hnr die entsprechende Hausnummer.
Das funktioniert auch schon ganz wunderbar. Nur eben leider nicht bei allen Adressen. Setze ich beispielsweise $str='Wilhemsruher Damm' und $hnr=168 so wird alles richtig zurück gegeben. Nehme ich $str='Olwenstraße' und $hnr=2 so funktioniert es nicht. Lasse ich mir aber für diesen Fall die Variable $url vor dem Aufruf mit @file_get_contents() ausgeben, kopiere die in meinen Browser und drücke Enter, so erscheint das gewünschte Ergebnis. Lasse ich mir die Rückgabe von @file_get_contents() in diesem Beispiel ausgeben, so erkenne ich, dass Google die Adresse offensichtlich nicht findet (code=602).
Ich bin echt am Verzweifeln, weil ich keine Ahnung mehr habe, woran das liegen könnte und würd mich daher echt über nen Tipp freuen!
Gruß
Mathis
Ich versuche gerade ein Script zu schreiben, das die vollständigen Adressdaten (Ort,PLZ etc.) anhand einer eingegeben Staße und Hausnummer ermittelt. Dazu verwende ich den Geocode-Service von Google (Google Maps API).
Folgende Funktion soll diese Adressdaten ermitteln:
PHP-Code:
function DoGoogleRequest ()
{
global $key, $googleurl, $str, $hnr;
$url = $googleurl . '?output=xml&key=' . $key . '&q=';
if (!empty($str)) {
$url .= urlencode($str) . '+';
}
if (!empty($hnr)) {
$url .= urlencode($hnr);
}
$page = @file_get_contents($url);
try {
$xml = @new SimpleXMLElement ($page);
}
catch (Exception $e) {
return false;
}
if (get_class($xml)=='SimpleXMLElement') {
return $xml;
}
else {
return false;
}
}
Das funktioniert auch schon ganz wunderbar. Nur eben leider nicht bei allen Adressen. Setze ich beispielsweise $str='Wilhemsruher Damm' und $hnr=168 so wird alles richtig zurück gegeben. Nehme ich $str='Olwenstraße' und $hnr=2 so funktioniert es nicht. Lasse ich mir aber für diesen Fall die Variable $url vor dem Aufruf mit @file_get_contents() ausgeben, kopiere die in meinen Browser und drücke Enter, so erscheint das gewünschte Ergebnis. Lasse ich mir die Rückgabe von @file_get_contents() in diesem Beispiel ausgeben, so erkenne ich, dass Google die Adresse offensichtlich nicht findet (code=602).
Ich bin echt am Verzweifeln, weil ich keine Ahnung mehr habe, woran das liegen könnte und würd mich daher echt über nen Tipp freuen!
Gruß
Mathis
Kommentar