Hilfe beim Zugriff auf Nominatim mit Javascript

HI !

auch wenn dieses kein Javascript-Forum ist - aber vielleicht kann einer beim Zugriff auf das Abfrage-Ergebnis von Nominatim [1] kurz weiterhelfen.

Es geht darum das ich nicht auf displayname zugreifen will - sondern die anderen Variablen ().

Bisheriger Code für die Abfrage ist:

            var searchUrl = 'http://nominatim.openstreetmap.org/search?format=json';
            searchUrl += '&q=' + $('#query')[0].value;
			console.log(searchUrl);
            $.getJSON(searchUrl, function(data) {
                //$.each(data.geonames, function() {
                $.each(data, function() {
                    var place = this;
                    $('<li>')
                        .hide()
                        .append($('<p2 />', {
                            text: place.display_name
                        }))
    ....

Erst hatte ich mir gedacht das es ausreicht die Zeile mit dem text: in


text: place.village+","+place.town+","+place.postcode+" "+place.city+" ("+place.country_code+")"

zu ändern. Dann habe ich aber gesehe das der Aufbau der Rückgabe etwas anders aussieht und* town, city etc.* nicht in place enthalten sind.

Der Aufbau lt. Wiki ist ja

Kann mir einer sage wie ich an die Daten komme ?

Gruß Jan :slight_smile:

http://wiki.openstreetmap.org/wiki/DE:Nominatim

hi jan, nur so aus dem hohlen Bauch:

display_name ist ein Attribut von place, da dort ja <place … display_name=xyz … > steht. der Rest ist aber separat zu sehen.
versuche es mal mit
text: place.village+“,”+town+“,”+postcode+" “+.city+” (“+country_code+”)"

gruss
walter

p.s. wirklich nur geraten und nicht getestet!

hi !

danke erst einmal auch wenn mit einem Schreibfehler. Richtig:

Aber leider hat es nicht zu dem gewünschten Ergebnis geführt.

Vielleicht kann noch jemand anderes weiterhelfen ?

Gruß Jan :slight_smile:

naja , war ja auch nur geraten.
ich bin ein wenig raus aus dem xml-thema. Die Daten, an die du dran willst, sind “eine Ebene tiefer” als place. ist genau so wie bei den tags von osm-objekten.
letzter Vorschlag: “place/town” usw.
Ansonsten: rtfm von xml :wink:

Gruss
walter

hi !

was heißt

Gruß Jan :slight_smile:

sorry jan, aber das muss (bei dir) wohl sein: http://lmgtfy.com/?q=rtfm :frowning:

http://lmgtfy.com/?q=rtfm :smiley:

EDIT: Verdammt - 50 Sekunden zu langsam…

Hallo Jan,

auf der Nominatim-Seite steht die Lösung

 addressdetails=[0|1]
   Include a breakdown of the address into elements

also z.B.


http://nominatim.openstreetmap.org/search?format=json&addressdetails=1&q=Kohlmarkt 2, Lübeck

dann kommt das raus

[{"place_id":"45497121","licence":"Data \u00a9 OpenStreetMap contributors, ODbL 1.0. http:\/\/www.openstreetmap.org\/copyright","osm_type":"way","osm_id":"38539856","boundingbox":["53.8661270141602","53.8663711547852","10.6844253540039","10.6850414276123"],"lat":"53.8662515715691","lon":"10.6847364522675","display_name":"2-8, Kohlmarkt, Innenstadt, L\u00fcbeck, Schleswig-Holstein, 23552, Deutschland","class":"place","type":"house","address":{"house_number":"2-8","road":"Kohlmarkt","suburb":"Innenstadt","city_district":"Innenstadt","city":"L\u00fcbeck","county":"L\u00fcbeck","state":"Schleswig-Holstein","postcode":"23552","country":"Deutschland","country_code":"de"}}]

Viele Grüße Dietmar

hi !

ich habe das einmal ausprobiert und wie folgt müßte das aussehen:


...
            var searchUrl = 'http://nominatim.openstreetmap.org/search?format=json';
			searchUrl +='&addressdetails=1';
            searchUrl += '&q=' + $('#query')[0].value;
			console.log(searchUrl);
            $.getJSON(searchUrl, function(data) {
                //$.each(data.geonames, function() {
                $.each(data, function() {
                    var place = this;
                    $('<li>')
                        .hide()
                        .append($('<p2 />', {
							text: place.address.city_district+", "+place.address.city+", "+place.address.postcode+" "+place.address.city+" ("+place.address.country_code+")"
                        }))

...

Jetzt muss nur noch abgefangen werden das bei undefinierten Werten diese nicht angezeigt werden.

Gruß Jan :slight_smile: