1

I have a list of tourist attractions, each with the name of the attraction, its address, and its coordinates (lat/long).

How can I query Overpass Turbo to accurately return data about these attractions?

For example, I've tried this query for the CN Tower in Toronto:

[out:json];
way(around:100,43.6425662,-79.3870568)[~"name"~"cn tower",i];
out;

And it returns data about the CN Tower but it also returns data about the CN Tower ticket kiosk, which I don't want.

Is there anything I can/should do to modify my query to be a little more specific in what I'm looking for?

2
  • Welcome to GIS StackExchange! Are you asking for a specific solution to query the CN tower (see my answer) or for a solution to find all the tourist attractions you need in one Overpass query? If it's the latter, please provide another example for other tourist attractions you are looking for.
    – winnewoerp
    Commented Nov 5, 2023 at 20:20
  • tourism=attraction will get you all sites in a bounding box overpass-turbo.eu/s/1CXX (but only what is available in OSM) - if not the data needs to be entered into the osm data via crowdsourcing
    – Mapperz
    Commented Nov 5, 2023 at 20:46

1 Answer 1

2

To query a specific attraction like the CN Tower in Toronto, just find a tag combination that is sufficient to only query the single object you want data for. man_made=tower is one of the solutions here.

[out:json][timeout:25];
way[man_made=tower][name="CN Tower"];
out geom;

With out geom; you get the geometry returned in the "Map" tab, as well as all data including coordinates in the "Data" tab.

To query all the tourist attractions at once, you certainly won't find a very simple query in your case, as the tourist attractions have very different tags and types. Just use a filter by Geocode area for Toronto, then add the objects you need as single query parts. As long as they are of the same type, you can search for all names using name~"name 1|name 2".

[out:json][timeout:25];
{{geocodeArea:Toronto}}->.a;
(
  nwr[tourism=attraction][name="CN Tower"](area.a);
  nwr[tourism=aquarium][name="Ripley's Aquarium of Canada"](area.a);
  nwr[leisure=park][name="High Park"](area.a);
);
out geom;

To find all the tourist spots in Toronto, you could use

[out:json][timeout:25];
{{geocodeArea:Toronto}};
nwr[tourism~"attraction|aquarium|museum|zoo"](area);
out geom;

and add additional values from the list provided here in the OSM Wiki. However, this does not include features like parks for example.

3
  • Thank you. However, my long list of tourist attractions also includes parks, museums, aquariums, etc. Is there any way to query without specifying something like man_made?
    – user698515
    Commented Nov 5, 2023 at 20:20
  • For example: Ripley's Aquarium of Canada, Royal Ontario Museum, High Park
    – user698515
    Commented Nov 5, 2023 at 20:21
  • 1
    See my edited answer. I hope this helps. It also includes what @Mapperz has proposed in the comment to the question for tourism=attraction, not for a bounding box but for the city limits of Toronto.
    – winnewoerp
    Commented Nov 5, 2023 at 20:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.