Ich habe mich etwas mit Wander- und Radrouten befasst und bin da recht schnell auf superrouten gestoßen.
Die sind mit oberpass etc. bemerkenswert schwer zu finden, da sie ja außer anderen Routen keine Mitglieder haben! (bzw. haben sollten!)
Meine kleine Abfrage (Achtung! große Datenmenge)
[out:xml][timeout:90];
{{geocodeArea:Deutschland}}->.searchArea;
(
relation"type"=“superroute”;
);
(._;>;);
out meta;
findet aber so einiges.
Kann ich mich da jetzt dranmachen, die Wegweiser und Wegstücke in die richtige Unterrelation zu schubsen?
Oder übersehe ich etwas wichtiges?
Und ich frage mich immer noch: wie finde ich superrouten, die nur andere Routen als Mitglieder haben?
Superrouten, die nur Relationen beinhalten, haben keine Geometrie. Wenn du Superrouten mit searcharea findest, haben die nodes oder ways in deinem Suchgebiet.
Das sollte doch genau das sein, was du haben willst, oder?
Alle anderen Superrelationen findest du per overpass nur global.
Lange Routen werden oft in Teilstrecken zerlegt und diese Teilstrecken in einer übergeordneten Relation zusammengefasst.
Diese übergeordneten Relation sollten idealerweise nur Routen als Mitglieder enthalten (und keine nodes oder ways).
Sie werden meist (aber nicht immer) als superroute definiert.
Ich möchte mir nun hier in der Umgebung umsehen, was es denn so an routen und superrouten gibt.
Problem: Eine Suche nach relation “type”=“superroute” findet diese Routen nur, wenn es Mitglieder gibt, die ways oder nodes sind.
Die anderen - die sauberen - findet man nicht.
Nun alle Routen-relationen per Hand durchzugehen, ob es da Eltern-Relationen gibt, ist mir zu mühsam.
Aber so geht es:
[out:csv(::id,::type,type, route, network,role,name,::count)] [timeout:25];
relation[“type”=“route”][route~“foot|hiking|bicycle”]
({{bbox}}) ->.a;
// in .a stehen alle routen (vom gesuchten typ), die durch bbox laufen
complete { .a << ->.b; };
// wenn nur eine Rekursion nötig ist (weil es nur Eltern und keine Großeltern gibt)
// kann der complete-Befehl durch
// .a << ->.b;
// ersetzt werden
// in .b stehen routen und superrouten
// und jetzt als ausgabe nur noch die superrouten (Eltern und Großeltern) .a - .b
(.b; - .a;);
out geom;
out count;