route-Relation

naja, OSM-Wiki ist schon mal anderes. Also jetzt “nur noch” 3-fache Datenhaltung :frowning:

  • in OSM highways mit ref-Tags
  • in OSM Sammelrelationen mit den Straßenstücken
  • im OSM-Wiki händisch gepflegte Listen

Werdet glücklich damit.

Mein Vorschlag: Sammelrelationen löschen und einige vernünftige Reports (Postgresql oder Overpass), die man dann als Dokumentation des Ist-Standes im OSM-Wiki ablegen könnte. Ab und zu einen neuen Report fahren, den mit dem alten vergleichen und Fehler ausbessern.

Gruss
walter

Damit beantwortest du gleich eine Frage die ich noch stellen wollte. Ich bin auf eine Sammelrelation “Landesstraßen Brandenburgs” gestoßen, die ich weiter befüllt hatte. Ich wollte Fragen üb das bei Straßen üblich ist. Glücklich war ich damit nicht… Ich schaue mal, wie da mit der Overpass im Wiki geht *)… dann fliegt das Sammel-Ding raus.

Ich vermute auch, daß diese Sammelrelation eh keiner nutzt.

Dann bleibt nur noch doppelte Buchführung übrig…

*) da war doch mal was im Forum?

Danke.

Sven

Hallo,

Ich hab da mal herumexperimentiert.

als Relation erfasste Landesstraßen Brandenburgs:

<osm-script output="json">
      <query type="relation">
      <has-kv k="type" v="route"/>
      <has-kv k="route" v="road"/>
      <has-kv k="operator" regv="Land Brandenburg"/>
        <has-kv k="operator" regv="Brandenburg"/>  
      <bbox-query e="15.0" n="53.5" s="51.7" w="11.2"/>
</query>
  <print mode="body"/>
  <recurse type="down"/>
  <print mode="skeleton"/>
</osm-script>

Es müssten eigentlich beide Operator-Versionen abgefragt werden, oder? Fürs Tagging wäre als operator “Land Brandenburg” besser, um Verwechslungen mit der Stadt Brandenburg vorzubeugen. die bbox-Angabe müsste die gesammte Landesfläche abdecken. (Nett wäre es, anstatt dessen die Grenz-Relation des Landes zu verwenden).

Landesstraßen Brandenburgs

Als Relationen erfasste Kreisstraßen des Landkreises Dahme-Spreewald:

<osm-script output="json">
      <query type="relation">
      <has-kv k="type" v="route"/>
      <has-kv k="route" v="road"/>
      <has-kv k="operator" regv="Landkreis Dahme-Spreewald"/>
      <bbox-query e="15.0" n="53.5" s="51.7" w="11.2"/>
</query>
  <print mode="body"/>
  <recurse type="down"/>
  <print mode="skeleton"/>
</osm-script>

Landkreis Dahme-Spreewald

Im Wiki sind beide Links bereits drin.

Verbesserungsvorschläge??

Sven

aber wenn du die Route-Relationen als Sammelrelation “sterben” lassen willst, wieso baust du dann deine Abfragen damit auf? Sägst doch am eigenen Ast.

Sorry, spreche nur SQL. Aber da geht das in etwa so:


select osm_id,ST_AsGeoJjson(way)
  from planet_osm_line
 where ref='K 2376'
   and highway != '';

 209572485 | {"type":"LineString","coordinates":[[12.400486600000001,51.8416791],[12.400526899999999,51.841740799999997]]}
 174420464 | {"type":"LineString","coordinates":[[12.4514341,51.877198900000003],[12.4515066,51.877180899999999],[12.451598499999999,51.877169000000002],[12.4518386,51.87717]]}
 115801096 | {"type":"LineString","coordinates":[[12.456090700000001,51.880280999999997],[12.4564316,51.880391699999997],[12.458019800000001,51.881006200000002],[12.4581961,51.881077900000001],[12.458458,51.8811757],[12.4588719,51.881338599999999],[12.4599046,51.881692999999999]]}
 115919708 | {"type":"LineString","coordinates":[[12.450855900000001,51.877329899999999],[12.450946800000001,51.877355399999999],[12.451086,51.8773579],[12.4512389,51.877337900000001],[12.4513303,51.877291499999998],[12.4513689,51.877231500000001],[12.4514341,51.877198900000003]]}
.....
.....
  48977973 | {"type":"LineString","coordinates":[[12.520686400000001,51.948604400000001],[12.520833,51.9487922],[12.5209277,51.949041999999999],[12.521247199999999,51.950619600000003],[12.521385799999999,51.951122699999999],[12.5214979,51.951439899999997],[12.521798499999999,51.952080700000003],[12.5223814,51.953245500000001],[12.522550900000001,51.953574099999997],[12.522634,51.953744],[12.522792900000001,51.954067199999997],[12.5230902,51.954698],[12.523265500000001,51.954998099999997],[12.523524,51.955264],[12.5241299,51.9557821],[12.524994599999999,51.956555199999997],[12.5256509,51.957142099999999],[12.527189999999999,51.958502000000003],[12.5279972,51.959195000000001],[12.528216199999999,51.959390800000001]]}
  25859090 | {"type":"LineString","coordinates":[[12.528216199999999,51.959390800000001],[12.528302200000001,51.959476700000003],[12.528394799999999,51.959549099999997],[12.528555600000001,51.9596467],[12.528764799999999,51.959735999999999],[12.529066500000001,51.959838300000001],[12.529261699999999,51.959907299999998],[12.529434,51.9599665],[12.529707699999999,51.960075400000001],[12.5299554,51.960174899999998],[12.530081900000001,51.960242399999998],[12.530224799999999,51.960329999999999],[12.530336399999999,51.960427500000002],[12.5304059,51.960520000000002],[12.530477599999999,51.9606578],[12.5305499,51.960804000000003],[12.5306166,51.960900000000002],[12.5307906,51.961079699999999],[12.5309723,51.961254699999998],[12.5311424,51.961432600000002],[12.5312596,51.961539999999999],[12.5314022,51.961635700000002],[12.5315327,51.961694799999997],[12.531679499999999,51.961762800000002]]}

und schon hab ich alle Ways einer bestimmten Kreisstraße. Mir ist aber noch nicht ganz klar, was du eigentlich machen willst.

Gruss
walter

Die Route-Relation pro Kreis- oder Landesstraße sterben zu lassen halte ich nicht für Zielführend. Das würde eine Pflege bei Umwidmungen (Land zu Kreis oder Kreis zu Gemeinde) erheblich erschweren.

Ich frage doch alle einzelnen Kreis- und Landesstraßenrelationen ab.

Das wäre sowas wie

select relation from planet_osm where operator='Landkreis Dahme-Spreewald' ans highway!=' ';

3391795 | relation ref=K 6101
3391814 | relation ref=K 6102 

(SQL mal sinngemäß nachgebaut; Relationsid’s passen zu den Kreisstraßen)

oder verstehe ich was falsch?

http://www.openstreetmap.org/relation/1184573 : irgendwann mal angelegte Sammelrelation aller Landesstraßen Brandenburgs → soll weg

Straßenrelation L 51: http://www.openstreetmap.org/relation/3351609
Straßenrelation K 6108: http://www.openstreetmap.org/relation/3391822

Mit den Abfragen greife ich auf diese Straßenrelationen zu… sie zeigt mit alle erfassten Kreis- oder Landesstraßenrelationen.

Damit ich relationsfrei Landesstraßen Brandenburgs oder Kreisstraßen eines Landkreises abfragen könnte, müßte ich eine räumliche Abfrage machen, oder die Tags (wie Operator von der Relation an den Weg übertragen. Ziel soll es sein, Alle Kreisstraßen eines Landkreises darzustellen, um zu Wissen, welche gegebenenfalls noch fehlen… Es geht u.a. auch um Ergänzung von lanes=, surface= ect.

oder was ist gut?

nun verwirrt,

Sven (auch SQL verstehend)

Ohne solche Sammelrelationen ist es ungemein schwieriger, festzustellen, welche Relationen es überhaupt schon gibt und welche noch fehlen. Nicht, dass dann versehentlich Duplikate erstellt werden.

Ihr geht davon aus, daß jeder Mapper, der sich mit Straßen beschäftigt, “natürlich selbstverständlich” die Sammelrelationen mit pflegt. das hat schon bei associated_street nicht geklappt und kann hier auch nicht gut gehen.

Mir fällt da ein - zugegebenermaßen etwas an den Haaren herbeigezogenes - Beispiel ein: Eine WG will permanente Übersicht über den Inhalt des gemeinsamen Kühlschrank haben: Zettel dran: “Jeder, der was rausnimmt oder reinstellt, schreibt das in die Liste”.
Nach 4 Wochen Inventur: Nix stimmt.

Absehbare Lösung: Alle Produkte haben RFID-Chips und der Kühlschrank besitzt ein Lesegerät.

Bezogen auf die Datenbank: Nur die DB weiss genau, was in OSM drin ist. Ihr müßt sie nur fragen.

Gruss
walter

ja, da bin ich auch ein wenig durcheinander gekommen. Jeweils eine Relation pro Kreis-/Landesstraße sollte ok sein. wenn ich mich recht entsinne, hab ich auch “meine” B260 und B54 schon mal gepflegt.

Nö, wenn man das metasprachlich auffasst, ist das schon ganz ok so. :wink: Ich werde morgen (Do) mal sehen, ob ich das sauber hinkriege.

einverstanden

Nee, dass will ich auch nicht (mehr).

Schau’n mer mal, was ich hinkriege, aber ob das mit der Overpass geht?

Gruss
walter

Entschuldigung, aber für mich nimmt das schon Wikipedia-Züge an. Statt zu verbessern, wird gelöscht.
Durch Relationen und Kindrelationen kann man mit einer simplen Abfrage alle benötigten Daten vom Server ziehen. Auf der einen Seite wird hier stets ins Feld geführt, wie einfach doch das Auswerten ohne Relationen sein soll, und auf der anderen Seite werden dann Kopfstände gemacht, um ohne Relationen auszukommen. Ich komm hier echt nicht mehr mit…

Es geht darum, http://www.openstreetmap.org/relation/1184573 als Sammeltelation durch eine Overpass-Abfrage

<osm-script output="json">
      <query type="relation">
      <has-kv k="type" v="route"/>
      <has-kv k="route" v="road"/>
      <has-kv k="operator" regv="Land Brandenburg"/>
        <has-kv k="operator" regv="Brandenburg"/>  
      <bbox-query e="15.0" n="53.5" s="51.7" w="11.2"/>
</query>
  <print mode="body"/>
  <recurse type="down"/>
  <print mode="skeleton"/>
</osm-script>

also Landesstraßen Brandenburgs zu ersetzen.

Beides erfüllt in dem Fall den selben Zweck. Relationen pro Landes- oder Kreisstraße stehen hier nicht zur Disposition.

Sven

Hallo Sven

Das ist überflüssig, da es bereits in enthalten ist. Ohne den ersten Vergleich dürfte die Abfrage zudem etwas schneller sein.

PS: Bei den Wegen sind etliche dabei, denen das ref-Tagg fehlt.

Edbert (EvanE)

Da beide Kriterien per Konjunktion verknüpft sind: umgekehrt. Eine Zeichenkette, die “Land Brandenburg” matcht, matcht auch “Brandenburg”; die Umkehrung gilt im allgemeinen nicht. Bei der Disjunktion (Union) wäre hingegen “Land Brandenburg” überflüssig, da bereits durch “Brandenburg” abgedeckt.

Außerdem dürfte die Prüfung auf eine feste Zeichenkette (statt Regex) genügen. Dann muß aber zwingend eine der beiden Bedingungen weg, da die Ergebnismenge ansonsten leer sein wird. Oder man schreibt beide in eine , um “Land Brandenburg” und “Brandenburg” zu erhalten. Oder man nimmt doch wieder einen Regex wie /(Land )?Brandenburg/. Um übrigens Verwechslungen des Landes mit der Stadt zu vermeiden, könnte ein Regex-Match von “ref” auf /^L / helfen.

Ja, Danke. Habe ich eingebaut.

Das ist auch einer der Hintergründe, solche eventuell fehlende oder falsche Tags herauszufinden und dabei Landesstraßenweise die Liste abzuarbeiten.

Sven

Und wie? Bei den hessischen Landesstraßen z. B. steht nur “name=Landesstraße 3209; ref=L 3209”. Das war es. Mehr nicht. So ist eine Abfrage absolut unmöglich.

Soweit ich weiss, hat noch niemand was gelöscht - zumindest ich nicht. Es wird - mal wieder - nur über die Notwendigkeit/Unsinnigkeit solcher Konstrukte diskutiert. Analog zu den associated_street-Relationen.

Meine Lösung: Ich werde sie nicht nutzen und erst recht nicht pflegen. Wer will, soll damit glücklich werden - und viel Arbeitszeit verschwenden.

Ich manchmal auch nicht mehr - mir ist es schon vorgekommen, daß ich gegen meine eigene Argumente gekontert habe, da sich meine Meinung auch mal ändern kann.

Gruss
walter

Francis Picabia: Unser Kopf ist rund, damit das Denken die Richtung wechseln kann.

Ich auch nicht. Habe ich auch nicht vor. Ergenis für mich ist, daß das Tagging bisher nicht richtig konistent ist und umgesetzt wurde.
Sammel-Relationen (wie die oben genannte der Landesstraßen Brandenburgs) werde ich nicht weiter nutzen.
Eine Relation pro Landes- und Kreisstraße halte ich aber für unerläßlich und verwende hier möglichst sauber ref- und operator-Tags. Dann sollten alle relevanten Elemente auch abfrag- und anzeigbar sein.

Ein Tag wie

ist absolut nichtssagend. Gelöst werden könnte es über eine räumliche Abfrage, in dem Fall anhand der hessischen Landesgrenze. Die Schwierigkeit ist dann aber, daß die Straße auch wirklich an der Landesgrenze aufhören muß, was wohl selten der Fall ist. Mit räumlichen Abfragen dürften hier die meisten aber überfordert sein. (Ich mit reinen OSM-Daten auch)

Oder durch die Angabe des Operator-Tags, welcher meiner Ansicht nach für Straßen (bis auf Kreisstraßenebene herunter) ein unerläßlicher Tag ist.

Erst wenn man eine hinreichend saubere Datenbasis hat, kann man sich die Datenbank bemühen und schauen, was sie hergibt.

Sven

Stimmt so nicht: an manchen Stellen steht auch der “richtige” Name drin, so wie es innerhalb von Stadtgebieten durchaus sinnvoll ist.
Daher ist eine Abfrage auf name like ‘Landestraße %’ zwar leicht machbar aber hier nicht sinnvoll.
siehe: http://www.openstreetmap.org/way/34060735

Derzeit läuft meine erste sql-query noch; geht derzeit recht langsam, da ich noch keine optimalen Indices für diesen Query-Typ habe.
Melde mich zu diesem Beitrag später noch mal. Dann wohl auch mit Karte.

Gruss
walter

Ich meinte eher in der Relation selber. Da stehen zumindest in Hessen nur die beiden Tags und sonst nichts. (Ok, und manchmal auch der TMC-Kram.) Klar, die Wege selber haben da wo es sinnvoll ist Straßennamen, aber die helfen dann auch nicht viel weiter.

so, ich habe mal meine erste “absolut unmögliche” Auswertung fertig. Liste aller Landesstraßen-Relationen mit automatischer Zuordnung zum Bundesland.


   id    |          ref           |              name              |            operator             | First Way |    Berechnete Lage     
---------+------------------------+--------------------------------+---------------------------------+-----------+------------------------
  142180 | L 100                  |                                | Baden-Württemberg               | 96838841  | Baden-Württemberg
  144955 | L 1001                 |                                | Baden-Württemberg               | 125179157 | Baden-Württemberg
  144979 | L 1003                 |                                | Baden-Württemberg               | 25675596  | Baden-Württemberg
  174148 | L 1005                 |                                | Baden-Württemberg               | 34631831  | Baden-Württemberg
  144981 | L 1008                 |                                | Baden-Württemberg               | 21620533  | Baden-Württemberg
 1945987 | L 101                  |                                |                                 | 40873104  | Baden-Württemberg
  222984 | L 1010                 |                                | Baden-Württemberg               | 34621172  | Baden-Württemberg
  174149 | L 1012                 |                                | Baden-Württemberg               | 38104642  | Baden-Württemberg
  174150 | L 1014                 |                                | Baden-Württemberg               | 25113414  | Baden-Württemberg
  409317 | L 1015                 |                                |                                 | 9834816   | Baden-Württemberg
  174151 | L 1016                 |                                | Baden-Württemberg               | 9703850   | Baden-Württemberg
  171343 | L 102                  |                                | Baden-Württemberg               | 239790835 | Baden-Württemberg
  144953 | L 1020                 |                                | Baden-Württemberg               | 146951490 | Baden-Württemberg
  144951 | L 1022                 |                                | Baden-Württemberg               | 125179157 | Baden-Württemberg
...
  171348 | L 111                  |                                | Baden-Württemberg               | 196025094 | Baden-Württemberg
   22673 | L 1110                 |                                | Baden-Württemberg               | 188867629 | Baden-Württemberg
 1561363 | L 1110                 | Bissinger Straße               |                                 | 110588998 | Baden-Württemberg
  104091 | L 1111                 |                                | Baden-Württemberg               | 94504286  | Baden-Württemberg
  104110 | L 1113                 |                                | Baden-Württemberg               | 149744024 | Baden-Württemberg
  104112 | L 1114                 |                                | Baden-Württemberg               | 143761518 | Baden-Württemberg
  104113 | L 1115                 |                                | Baden-Württemberg               | 146535971 | Baden-Württemberg
  104119 | L 1116                 | L 1116                         | Baden-Württemberg               | 37562721  | Baden-Württemberg
...
  101324 | L 201b                 |                                | Baden-Württemberg               | 31329235  | Baden-Württemberg
   99821 | L 202                  |                                | Baden-Württemberg               | 107138253 | Baden-Württemberg
  536191 | L 2021                 |                                | Bundesrepublik Deutschland      | 61679360  | Baden-Württemberg
   97065 | L 204                  |                                | Baden-Württemberg               | 235293240 | Baden-Württemberg
    3503 | L 205                  |                                | Baden-Württemberg               | 115090194 | Baden-Württemberg
...
  103329 | L 99                   |                                | Baden-Württemberg               | 239864261 | Baden-Württemberg
   87014 | L 1060                 |                                | Baden-Württemberg               | 127553466 | Bayern
 2175632 | L 1112                 | Landesstraße L 1112            | Freistaat Thüringen             | 47885122  | Bayern
 2222543 | L 114                  | Großgmainer Landesstraße       |                                 | 158416067 | Bayern
   97155 | L 1168                 |                                | Baden-Württemberg               | 192894501 | Bayern
  174206 | L 1181                 |                                | Baden-Württemberg               | 42300390  | Bayern
   94180 | L 2009                 |                                | Baden-Württemberg               | 17033233  | Bayern
   94154 | L 314                  |                                | Baden-Württemberg               | 62072523  | Bayern
 3262232 | L 318                  |                                | Baden-Württemberg               | 241773268 | Bayern
 2683007 | L 3308                 | Landesstraße 3308              |                                 | 40395933  | Bayern
  173887 | L 508                  |                                | Baden-Württemberg               | 47418108  | Bayern
  173980 | L 578                  |                                | Baden-Württemberg               | 58755892  | Bayern
  962313 | L 1082                 |                                | Berlin                          | 25921905  | Berlin
  375837 | L 14                   |                                |                                 | 22946670  | Brandenburg
 1376138 | L 15                   |                                |                                 | 126548525 | Brandenburg
  374438 | L 17                   |                                | Land Brandenburg                | 4986608   | Brandenburg
  255093 | L 17                   |                                | Land Sachsen-Anhalt             | 49572282  | Brandenburg
 1119027 | L 174                  |                                | Land Brandenburg                | 35608885  | Brandenburg
...
 1158547 | L 98                   |                                | Land Brandenburg                | 19058188  | Brandenburg
  416924 | L 982                  |                                |                                 | 4615205   | Brandenburg
 1158539 | L 99                   |                                | Land Brandenburg                | 4629105   | Brandenburg
 1158521 | L 991                  |                                | Land Brandenburg                | 152748649 | Brandenburg
  455444 | L 129                  |                                | Land Niedersachsen              | 33969104  | Bremen
  447054 | L 133                  |                                | Land Niedersachsen              | 28227043  | Bremen
  447054 | L 133                  |                                | Land Niedersachsen              | 28227043  | Bremen — Niedersachsen
  391141 | L 1019                 |                                | Thüringen                       | 162438412 | Hessen
 1378116 | L 2310                 |                                |                                 | 162432239 | Hessen
...
 1075373 | L 3203                 |                                |                                 | 76274974  | Hessen
 1338643 | L 3204                 |                                |                                 | 252170120 | Hessen
 1461926 | L 3205                 |                                |                                 | 8908664   | Hessen
 1381297 | L 3209                 |                                |                                 | 227906291 | Hessen
 1381300 | L 3209                 |                                |                                 | 176813445 | Hessen
 1075379 | L 3211                 |                                |                                 | 10357604  | Hessen
 1075395 | L 3212                 |                                |                                 | 79681742  | Hessen
 1060242 | L 3214                 |                                |                                 | 26530597  | Hessen
...
  143364 | L 3080                 | L 3080 TH                      |                                 | 81177290  | Thüringen
 3350330 | L 3086                 | L 3086 TH                      | Freistaat Thüringen             | 161484532 | Thüringen
 1280457 | L 3089                 |                                |                                 | 5115579   | Thüringen
 1279349 | L 3176                 |                                | Freistaat Thüringen             | 148855051 | Thüringen
 1283237 | L 3247                 |                                |                                 | 124018812 | Thüringen
(2042 rows)

Und hier die komplette Liste.

Natürlich sind da noch Unstimmigkeiten drin und die Sortierung ist auch noch nicht optimal, aber morgen ist ja auch noch ein Tag.

Gruss
walter

ps: sehr nett war es übrigens, daß die von dir als Referenz benutzte L 3209 keine “normale” Route sondern eine Superrelation mit 2 TMC-Routen ist.

Sehr interessant!

Das mit den Relationen scheint aber noch wirklich verwurschtelt zu sein. Es gibt drei Relationen für die L 3042, davon sind zwei absolut deckungsgleich (was soll das?), ein dritter beschreibt einen anderen Abschnitt (und ist im übrigen kaputt). Das dürfte nach den Post-Relationen die nächste große Aufgabe sein, das wieder geradezubiegen.

edit: ok, in Sachen TMC bin ich nicht so bewandert. Wenn das so sein soll ist natürlich nichts zu machen. Und bei der L 3209 hab ich mich vertan, ich meinte eine andere Relation, die ich irgendwann mal erstellt habe, aber die war es nicht.