Ich würde PHP nehmen, weil ich mir nicht mit zu helfen wüsste mit den ganzen Fehlermeldungen, die da zurückkommen. Irgendwie will man ja eine Liste ausgeben, und die auch noch schön formatieren, wenn 10 Ergebnisse zurückkommen.
Ausserdem läuft man mit JS in die “same origin”-Falle. Wenn Du Nominatim in Javascript mit XMLHttpRequest abfragst, geht die Abfrage an einen anderen Server als der wo das JS herkommt. Sowas verbieten brave Browser ihren Usern. Abhilfe wäre vielleicht ein anderes Ausgabeformat von Nominatim, ich hab dieses JSON noch nie ausprobiert…
Alternativ baut man kleinen “Nominatim-Proxy” auf seiner Seite ein, ein kleines PHP-Programm, das der Browser per Javascript abfragt und das Koordinaten zurückliefert. Also sowas wie mein Script da oben, nur ohne Tabelle, Eingabeformular und das ganze Zeug. Dieser Proxy könnte dann z.B. nur die Koordinaten des ersten Fundstücks zurückliefern und darauf könnte man die Karte dann zentrieren:
<?php
$query=urlencode($_GET["q"]);
$crl = curl_init();
$url="http://nominatim.openstreetmap.org/search?q=".$query."&format=xml&polygon=0&addressdetails=1&limit=1";
curl_setopt ($crl, CURLOPT_URL,$url);
curl_setopt ($crl, CURLOPT_RETURNTRANSFER, 1);
$ret = curl_exec($crl);
curl_close($crl);
$xml_parser = xml_parser_create();
xml_parse_into_struct($xml_parser, $ret, $vals, $index);
xml_parser_free($xml_parser);
foreach($vals as $element){
if($element['tag']=="PLACE"){
print $element['attributes']['LON']." ";
print $element['attributes']['LAT']." ";
}
}
?>
Damit könnte man dann SunCobalts Wunsch erfüllen, und den ersten Fundort anspringen (habs nur mal mit “Hamburg” “London” “Paris” “Lisboa” getestet, keine Ahnung, was er mit komplizierteren Fragen macht)
edit: Dank Verwurstelung im JavaScript gehn damit sogar Umlaute, “Freischützstraße 116 München”, allerdings merkt man da auch schnell, wie ungeschickt es ist, einfach den ersten Treffer zu nehmen. “Berliner Straße München” ist ein Glückspiel an dem die Berliner Str. in München und ein paar andere Berliner Straßen im Landkreis München teilnehmen.
Grüße,
Max
PS: Eigentlich wollt ich zeigen, wie schwer Nominatim-Beispiele sind. Alles was ich hier zeig ist wirklich einige Wochenenden vom präsentablen Produkt entfernt…