Lübeck
(Lübeck)
October 31, 2012, 9:51am
#1
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
135
Pilkington Avenue
Wylde Green
Sutton Coldfield
City of Birmingham
West Midlands (county)
B72
United Kingdom
gb
Kann mir einer sage wie ich an die Daten komme ?
Gruß Jan
http://wiki.openstreetmap.org/wiki/DE:Nominatim
wambacher
(Walter Nordmann)
October 31, 2012, 10:09am
#2
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!
Lübeck
(Lübeck)
October 31, 2012, 10:24am
#3
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
wambacher
(Walter Nordmann)
October 31, 2012, 10:32am
#4
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
Gruss
walter
wambacher
(Walter Nordmann)
October 31, 2012, 10:54am
#6
Lübeck:
was heißt
sorry jan, aber das muss (bei dir) wohl sein: http://lmgtfy.com/?q=rtfm
http://lmgtfy.com/?q=rtfm
EDIT: Verdammt - 50 Sekunden zu langsam…
okilimu
October 31, 2012, 11:06am
#8
Lübeck:
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) {
...
Kann mir einer sage wie ich an die Daten komme ?
Gruß Jan
http://wiki.openstreetmap.org/wiki/DE:Nominatim
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
Lübeck
(Lübeck)
October 31, 2012, 2:02pm
#9
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