Overpass Turbo: Tags gruppieren

Ich bin am ueben mit dem OPT, aber hab grad nur sehr simples am laufen. Ein Beispiel (fuers finden und einfaerben von SAC Skalen):


[out:json];

/* mapcss */
{{style:
	way[highway=path] { color:gray; }
	way[highway=path][sac_scale=hiking] { color:yellow; }
	way[highway=path][sac_scale=mountain_hiking] { color:orange; }
	way[highway=path][sac_scale=demanding_mountain_hiking] { color:red }
	way[highway=path][sac_scale=alpine_hiking] { color:aqua; }
	way[highway=path][sac_scale=demanding_alpine_hiking] { color:blue; }
	way[highway=path][sac_scale=demanding_alpine_hiking] { color:navy; }

	way[highway=track] { color:gray; }
	way[highway=track][sac_scale=hiking] { color:yellow; }
	way[highway=track][sac_scale=mountain_hiking] { color:orange; }
	way[highway=track][sac_scale=demanding_mountain_hiking] { color:red }
	way[highway=track][sac_scale=alpine_hiking] { color:aqua; }
	way[highway=track][sac_scale=demanding_alpine_hiking] { color:blue; }
	way[highway=track][sac_scale=demanding_alpine_hiking] { color:navy; }
}}

(
  
  // Get pathes with sac_scale rating
  way[highway=path][sac_scale=hiking] ({{bbox}});
  way[highway=path][sac_scale=mountain_hiking]({{bbox}});
  way[highway=path][sac_scale=demanding_mountain_hiking]({{bbox}});
  way[highway=path][sac_scale=alpine_hiking]({{bbox}});
  way[highway=path][sac_scale=demanding_alpine_hiking]({{bbox}});
  way[highway=path][sac_scale=difficult_alpine_hiking]({{bbox}});
  
  way[highway=track][sac_scale=hiking] ({{bbox}});
  way[highway=track][sac_scale=mountain_hiking]({{bbox}});
  way[highway=track][sac_scale=demanding_mountain_hiking]({{bbox}});
  way[highway=track][sac_scale=alpine_hiking]({{bbox}});
  way[highway=track][sac_scale=demanding_alpine_hiking]({{bbox}});
  way[highway=track][sac_scale=difficult_alpine_hiking]({{bbox}});
   
);




out body;
>;
out skel qt;

Das funktioniert, ist aber natuerlich sehr unschoen. Kann man das irgendwie gruppieren? Also “Falls highway=pfad|track|stairs und sac_scale=* (irgendwas), dann zeigs an”. die bbox muss wohl auch nicht jedesmal erwaehnt werden.

Was aehnliches fuer die CSS Styles darüber, damit man da nur einmal track, path etc hinschreibt und damit den ganzen code deutlich eleganter macht?

Google grad nach Beispielen, aber bin och nicht drueber gestolpert, wie man das macht (oder erkenne es in den komplexen Beispielen nicht).

Mit regulären Ausdrücken kannst du die 12 Zeilen “way[…][…]” in einer Zeile ausdrücken.

Ah danke! Hab es durch

way[highway~".*"][sac_scale~".*"] ({{bbox}});

ersetzt, was auch wunderbar klappt … mal sehen, was man mit dem CSS tun kann. :slight_smile:

So war das eigentlich nicht gemeint. :sunglasses:

Statt


way[highway~".*"][sac_scale~".*"] ({{bbox}});

kann man auch gleich


way[highway][sac_scale] ({{bbox}});

schreiben.

Ich meinte eher sowas:


way[highway~"^(path|track)$"][sac_scale~"^(hiking|mountain_hiking|demanding_mountain_hiking|alpine_hiking|demanding_alpine_hiking)$"] ({{bbox}});

Verstehe :slight_smile: Wusste ned, dass man das = weglassen darf, danke! Ansonsten ist es gar ned mal so wichtig, die highwaytypen zu limitieren … ich bin an allen SAC Eintraegen interessiert … und die find ich idR eh nur auf relevanten Wegtypen. Aus Neugier: Kann man sogar das way weglassen irgendwie und nur noch sac_scale suchen?

Ja, meinst Du:

way[sac_scale]({{bbox}});

Es gibt fast keine **Nodes **oder Areas, die mit sac_scale getaggt sind und falls doch, dann ist das meistens sinnlos…