Lübeck
(Lübeck)
September 12, 2017, 8:30am
#1
Moin!
in https://forum.openstreetmap.org/viewtopic.php?id=59679 habe ich eine Overpass-Turbo Karte vorgestellt.
http://overpass-turbo.eu/s/rCT
Dabei wird ein spezielles Icon für Denkmäler verwendet.
Nun hat ein Mapper angemerkt von einem der Objekte (Wasserturm) die Angabe zum Denkmal in der übergeordneten Relation (http://www.openstreetmap.org/relation/4196136#map=18/51.91757/14.12824&layers=N ) hinterlegt ist und bei meiner Abfrage nicht berücksichtigt wird.
Geht das überhaupt und wenn wie ?
Über eine entsprechende Rückmeldung würde ich mich freuen.
Gruß Jan
MKnight
September 12, 2017, 8:17pm
#2
Wenn ich Deine Frage richtig verstehe, musst Du die Abfrage einfach um Relationen ergänzen. Das is mit c+p+edit ne Sache von Sekunden…
N’Abend,
hier ein Lösungsansatz ohne Styling.
Und ich habe auf die Schnelle nur einen Testkanditaten mit man_made=tower (.mmt;) (=Schloß Hartenfels in Torgau) gefunden.
Ob es solche mit
überhaupt in der OSM-DB gibt, müsstest Du selber suchen. Dazu die "//" in Zeile 9 oder/und 10 entfernen.
Grüße
Rainer
Lübeck
(Lübeck)
September 13, 2017, 7:34am
#4
Moin!
Danke erst einmal für die Info’s, aber wenn ich das Beispiel von Rainer mir ansehe
[out:json][timeout:100];
relation["heritage"="yes"]({{bbox}});
out meta;
way(r)["man_made"="tower"] -> .mmt;
// way(r)["man_made"="water_tower"] -> .mmwt;
// way(r)["disused:railway"="water_tower"] -> .drwt;
(
.mmt;
// .mmwt
// .drwt;
);
(._;>;);
out;
dann ist das für lokale Abfrage geeignet - aber was mache ich bei Auswertungen über Deutschland ?
Das ist sehr rechenintensiv und ob das überhaupt klappt wage ich zu bezweifeln.
Oder liege ich falsch mit meinen Gedanken?
Gruß Jan
Hi,
für ganz Deutschland dann eben etwas erweitert …
Antwortzeit der overpass-API: ca. 75 Sekunden; da passiert also ‘schon was’ im Hintergrund …
Grüße
Rainer
…ach da isser ja… (http://www.openstreetmap.org/changeset/52017079 )
http://overpass-turbo.eu/s/rHe
Ich hatte zwar das Tagging etwas nachjustiert, war aber nicht nötig… eine Anpassung der Abfrage reichte:
[out:json][timeout:100];
area
["boundary"="administrative"]
["admin_level"="2"]
["name"="Deutschland"] -> .germany;
relation(area.germany)["heritage"~"."];
out meta;
way(r)[~"."~"tower"] -> .mmt;
// way(r)["man_made"="water_tower"] -> .mmwt;
// way(r)["disused:railway"="water_tower"] -> .drwt;
(
.mmt;
// .mmwt
// .drwt;
);
(._;>;);
out;
Das “heritage”~“.” bewirkt, das alles gefunden wird, was heritage hat, da sehr oft auch eine Zahl da drin feht (vgl. Tag heritage: https://wiki.openstreetmap.org/wiki/Key:heritage )
Der Abfrageteil ~“.”~“tower” bewirkt, daß alles was im Value-Teil die Zeichenkette “tower” enthält, gefunden wird, egal was im key-Teil steht.
Sven
Lübeck
(Lübeck)
September 14, 2017, 8:17am
#7
Moin!
mit den Ways hat das schon ganz gut geklappt. Einmal muss ich jetzt nochmal nachhaken.
Der vorangegangene Code ist für ways - ich wollte das mal für nodes ausprobieren. Mit
hat es leider nicht funktioniert.
Zwei Fragen nun:
Kann man mir nochmal helfen?
Gruß Jan
Ich muß mich da auch rantasten.
der Koverter (http://overpass-api.de/query_form.html ) (aus overpassQL → xml)
<osm-script output="json" output-config="" timeout="100">
<query into="germany" type="area">
<has-kv k="boundary" modv="" v="administrative"/>
<has-kv k="admin_level" modv="" v="2"/>
<has-kv k="name" modv="" v="Deutschland"/>
</query>
<query into="_" type="relation">
<area-query from="germany" into="_" ref=""/>
<has-kv k="heritage" modv="" regv="."/>
</query>
<print e="" from="_" geometry="skeleton" limit="" mode="meta" n="" order="id" s="" w=""/>
<query into="mmt" type="way">
<recurse from="_" into="_" type="relation-way"/>
<has-kv modv="" regk="." regv="tower"/>
</query>
<union into="_">
<item set="mmt"/>
</union>
<union into="_">
<item set="_"/>
<recurse from="_" into="_" type="down"/>
</union>
<print e="" from="_" geometry="skeleton" limit="" mode="body" n="" order="id" s="" w=""/>
</osm-script>
Um ways und nodes zu integrieren, wäre noch ein union nötig, an welcher Stelle? hm…
Sven
N’Abend,
die Einbindung von nodes geht genauso , nur sind die Treffer sehr rar - genau einer, und der will halt “gefunden werden” … (clickst Du die Lupe=“auf die Daten zoomen”)
Die Kombi von nodes und ways wäre dann das hier ; die style-Definition habe ich hier gleich mit reinkopiert. Nicht wundern über die wenigen Symbole; die haben eben nur die towers, die in einer relation mit heritage=* stecken …
Grüße
Rainer