Helo, I Have this query
but for less queries to overpass server i want to join more categories to one query, I think this should be like this
but i have error there. can you please show me true syntax for getting both categories? |
The correct syntax is
This is an example query more info on the syntax can be found in the Overpass documentation on One or the other name. |
You should write this:
instead of:
If you want to add more, like fast_food, pub, cafe, etc, you can do it easily:
You have infinite other possibilities using regular expressions in overpass... Thank you for anwser, this is works well, but in case if i should get one form amenity and another from shop? ["amenity"="bar" || "shop"="supermarket"] ... ?
(26 Jan '18, 07:18)
davittorosyan
In that case, you better separate the queries and then union them: area["name"="London"]; node(area)["amenity"~"bar|restaurant"]->.amenities; node(area)["shop"~"supermarket|clothes"]->.shops; ( .amenities; .shops; )->.all; ( .all; - ._;); (._;); out;
(26 Jan '18, 10:55)
edvac
1
I would also change "London" by "Greater London" to avoid getting some nodes in North America, that you probably don't want: http://overpass-turbo.eu/s/voH Or you could use the relation code instead: http://overpass-turbo.eu/s/voG
(26 Jan '18, 11:01)
edvac
1
@edvac thanks a lot for your quick and good answer, this is great solution for me, thanks again. I have one another question but don't want add to this topic. If you can, please see this question also https://help.openstreetmap.org/questions/61819/how-get-all-ways-without-nd-tags
(26 Jan '18, 14:30)
davittorosyan
1
You are welcome ;) I gave you an answer to that new query. Hope it is what you want...
(26 Jan '18, 15:09)
edvac
|
An alternative to the regex solution given in the other answers is to use the union operator, which is specified by grouping queries inside of parentheses:
This will likely be clearer if the query involves several different keys. The output of the union can also be saved in a named set:
Thank you for answer, but when i trying to get bars and restaurants with this query area["name"="London"]; ( node(area)["amenity"="bar"]; node(area)["amenity"="restaurant"]; )->.all; ( .all; - .; ); (.;>;); out; i see in results ONLY bars.... where is my mistake?
(26 Jan '18, 07:16)
davittorosyan
You need to name the area and then reference the name, see https://help.openstreetmap.org/answer_link/48795/
(08 Nov '18, 12:56)
reubot
|