Overpass-Turbo - Berücksichtigung eines Tags in einer Relation

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

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

  • man_made=water_tower (mmwt;)

  • disused:railway=water_tower (.drwt;)

überhaupt in der OSM-DB gibt, müsstest Du selber suchen. Dazu die "//" in Zeile 9 oder/und 10 entfernen.

Grüße
Rainer

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

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:

  • wie kann man das für ways und nodes kombinieren

  • das Ergebnis würde ich mit http://overpass-turbo.eu/s/rHJ kombinieren. Irgendwie sieht die Syntax unterschiedlich aus.

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