How to get POI in city in OpenStreetMap through Overpass API with cURL? The 2019 Stack Overflow Developer Survey Results Are In Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)How to get WKT or GEOJson by country or city name with Overpass API?How can I geocode to a shape instead of a coordinate?Overpass API: Get coordinates of postal boundaryAlternative overpass api for OpenStreetmap locations query?How to get the intersections lat/lng on overpass api?Openstreemap Overpass API to get Couture linesCan you restrict which OSM tags are returned by Overpass API?Using Overpass Turbo to return all cemeteries (nodes, ways and relations) with their municipalityCounting schools with Overpass API?Overpass get Street in City
Didn't get enough time to take a Coding Test - what to do now?
Synthesis of a weinreb amide from an acid
How do you keep chess fun when your opponent constantly beats you?
List only local user accounts with a single command
Change bounding box of math glyphs in LuaTeX
Derivation tree not rendering
The variadic template constructor of my class cannot modify my class members, why is that so?
Windows 10: How to Lock (not sleep) laptop on lid close?
How does this infinite series simplify to an integral?
Finding the path in a graph from A to B then back to A with a minimum of shared edges
Are my PIs rude or am I just being too sensitive?
how can a perfect fourth interval be considered either consonant or dissonant?
How does ice melt when immersed in water
In horse breeding, what is the female equivalent of putting a horse out "to stud"?
Create an outline of font
Was credit for the black hole image misattributed?
RT6224D-based step down circuit yields 0V - why?
verb not working in beamer even though I use [fragile]
Hopping to infinity along a string of digits
Am I ethically obligated to go into work on an off day if the reason is sudden?
Who or what is the being for whom Being is a question for Heidegger?
How to politely respond to generic emails requesting a PhD/job in my lab? Without wasting too much time
What force causes entropy to increase?
How to tell if two pearson correlations from the same sample differ significanly
How to get POI in city in OpenStreetMap through Overpass API with cURL?
The 2019 Stack Overflow Developer Survey Results Are In
Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)How to get WKT or GEOJson by country or city name with Overpass API?How can I geocode to a shape instead of a coordinate?Overpass API: Get coordinates of postal boundaryAlternative overpass api for OpenStreetmap locations query?How to get the intersections lat/lng on overpass api?Openstreemap Overpass API to get Couture linesCan you restrict which OSM tags are returned by Overpass API?Using Overpass Turbo to return all cemeteries (nodes, ways and relations) with their municipalityCounting schools with Overpass API?Overpass get Street in City
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I'm very new to OpenStreetMap's Overpass QL API. After digging through its hefty wiki and several tutorials I get the feeling that if I want to query for a city I can use either area[name="Tbilisi"][boundary=administrative] or geocodeArea:Tbilisi. I think [boundary=administrative] helps identify it as a city or at least some kind of official entity like a state or municipality rather than, say, part of the name of a cafe. I don't know if I am right.
Following that, I should be able to get restaurants in Tbilisi with the area[name="Tbilisi"][boundary=administrative] syntax on Overpass Turbo like so:
area[name="Tbilisi"][boundary=administrative]->.searchArea;
node["amenity"="restaurant"](area.searchArea);
out;
However, it returns '"elements": []'. out count returns a total of 0.
I then tried with geocodeArea:Tbilisi:
geocodeArea:Tbilisi->.searchArea;
node["amenity"="restaurant"](area.searchArea);
out;
This returned a very long list of elements, out count total is 419.
Unfortunately, I can't use geocodeArea:Tbilisi with cURL like this:
curl --globoff 'https://overpass-api.de/api/interpreter?data=[out:json];geocodeArea:Tbilisi->.searchArea;node["amenity"="restaurant"](area.searchArea);out;'
It gives:
...
<p><strong style="color:#FF0000">Error</strong>: line 1: parse error: Unknown type "{" </p>
<p><strong style="color:#FF0000">Error</strong>: line 1: parse error: An empty query is not allowed </p>
<p><strong style="color:#FF0000">Error</strong>: line 1: parse error: ';' expected - '{' found. </p>
(Update 8 Apr 19: As mmd mentions in the comments below, geocodeArea:CITY_NAME is Overpass Turbo syntactic sugar and cannot be used for Overpass API.) Looking into the Network tab of dev tools after running this same query in Overpass Turbo, I find this works on Overpass Turbo because it translates geocodeArea:Tbilisi to area(3601996871). But I'd like to query by city name if possible.
I don't know if I've misunderstood the query structure. If I try the area[name="CITY_NAME"] syntax with Singapore like so:
[out:json];
area[name="Singapore"][boundary=administrative]->.searchArea;
node["amenity"="restaurant"](area.searchArea);
out count;
Overpass Turbo returns a total of 2221.
But with the geocodeArea:CITY_NAME syntax like this:
[out:json];
geocodeArea:Singapore->.searchArea;
node["amenity"="restaurant"](area.searchArea);
out count;
The total count is different. It's 2192.
What is the correct way to query for POI in a city? Preferably with cURL and by city name?
openstreetmap overpass-api
New contributor
nusantara is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
I'm very new to OpenStreetMap's Overpass QL API. After digging through its hefty wiki and several tutorials I get the feeling that if I want to query for a city I can use either area[name="Tbilisi"][boundary=administrative] or geocodeArea:Tbilisi. I think [boundary=administrative] helps identify it as a city or at least some kind of official entity like a state or municipality rather than, say, part of the name of a cafe. I don't know if I am right.
Following that, I should be able to get restaurants in Tbilisi with the area[name="Tbilisi"][boundary=administrative] syntax on Overpass Turbo like so:
area[name="Tbilisi"][boundary=administrative]->.searchArea;
node["amenity"="restaurant"](area.searchArea);
out;
However, it returns '"elements": []'. out count returns a total of 0.
I then tried with geocodeArea:Tbilisi:
geocodeArea:Tbilisi->.searchArea;
node["amenity"="restaurant"](area.searchArea);
out;
This returned a very long list of elements, out count total is 419.
Unfortunately, I can't use geocodeArea:Tbilisi with cURL like this:
curl --globoff 'https://overpass-api.de/api/interpreter?data=[out:json];geocodeArea:Tbilisi->.searchArea;node["amenity"="restaurant"](area.searchArea);out;'
It gives:
...
<p><strong style="color:#FF0000">Error</strong>: line 1: parse error: Unknown type "{" </p>
<p><strong style="color:#FF0000">Error</strong>: line 1: parse error: An empty query is not allowed </p>
<p><strong style="color:#FF0000">Error</strong>: line 1: parse error: ';' expected - '{' found. </p>
(Update 8 Apr 19: As mmd mentions in the comments below, geocodeArea:CITY_NAME is Overpass Turbo syntactic sugar and cannot be used for Overpass API.) Looking into the Network tab of dev tools after running this same query in Overpass Turbo, I find this works on Overpass Turbo because it translates geocodeArea:Tbilisi to area(3601996871). But I'd like to query by city name if possible.
I don't know if I've misunderstood the query structure. If I try the area[name="CITY_NAME"] syntax with Singapore like so:
[out:json];
area[name="Singapore"][boundary=administrative]->.searchArea;
node["amenity"="restaurant"](area.searchArea);
out count;
Overpass Turbo returns a total of 2221.
But with the geocodeArea:CITY_NAME syntax like this:
[out:json];
geocodeArea:Singapore->.searchArea;
node["amenity"="restaurant"](area.searchArea);
out count;
The total count is different. It's 2192.
What is the correct way to query for POI in a city? Preferably with cURL and by city name?
openstreetmap overpass-api
New contributor
nusantara is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
1
geocodeArea:Singapore is overpass turbo specific syntactic sugar, which is invalid syntax for Overpass API!
– mmd
Apr 8 at 9:02
If you want to query by name then you need to perform a geocoding step before to determine the relation ID, for example with the help of Nominatim.
– scai
Apr 8 at 9:52
... and that's exactly what overpass turbo's geocodeArea does: it calls Nominatim, converts the relation number to an Overpass area id, and sends the query to the Overpass API backend server. If you don't want to use Nominatim, you need to find the correct tags for the area you're interested, like in area[name="Singapore"][boundary=administrative]. This requires you to spend some time on OSM tagging, which would be beyond the scope of this question.
– mmd
Apr 8 at 20:19
add a comment |
I'm very new to OpenStreetMap's Overpass QL API. After digging through its hefty wiki and several tutorials I get the feeling that if I want to query for a city I can use either area[name="Tbilisi"][boundary=administrative] or geocodeArea:Tbilisi. I think [boundary=administrative] helps identify it as a city or at least some kind of official entity like a state or municipality rather than, say, part of the name of a cafe. I don't know if I am right.
Following that, I should be able to get restaurants in Tbilisi with the area[name="Tbilisi"][boundary=administrative] syntax on Overpass Turbo like so:
area[name="Tbilisi"][boundary=administrative]->.searchArea;
node["amenity"="restaurant"](area.searchArea);
out;
However, it returns '"elements": []'. out count returns a total of 0.
I then tried with geocodeArea:Tbilisi:
geocodeArea:Tbilisi->.searchArea;
node["amenity"="restaurant"](area.searchArea);
out;
This returned a very long list of elements, out count total is 419.
Unfortunately, I can't use geocodeArea:Tbilisi with cURL like this:
curl --globoff 'https://overpass-api.de/api/interpreter?data=[out:json];geocodeArea:Tbilisi->.searchArea;node["amenity"="restaurant"](area.searchArea);out;'
It gives:
...
<p><strong style="color:#FF0000">Error</strong>: line 1: parse error: Unknown type "{" </p>
<p><strong style="color:#FF0000">Error</strong>: line 1: parse error: An empty query is not allowed </p>
<p><strong style="color:#FF0000">Error</strong>: line 1: parse error: ';' expected - '{' found. </p>
(Update 8 Apr 19: As mmd mentions in the comments below, geocodeArea:CITY_NAME is Overpass Turbo syntactic sugar and cannot be used for Overpass API.) Looking into the Network tab of dev tools after running this same query in Overpass Turbo, I find this works on Overpass Turbo because it translates geocodeArea:Tbilisi to area(3601996871). But I'd like to query by city name if possible.
I don't know if I've misunderstood the query structure. If I try the area[name="CITY_NAME"] syntax with Singapore like so:
[out:json];
area[name="Singapore"][boundary=administrative]->.searchArea;
node["amenity"="restaurant"](area.searchArea);
out count;
Overpass Turbo returns a total of 2221.
But with the geocodeArea:CITY_NAME syntax like this:
[out:json];
geocodeArea:Singapore->.searchArea;
node["amenity"="restaurant"](area.searchArea);
out count;
The total count is different. It's 2192.
What is the correct way to query for POI in a city? Preferably with cURL and by city name?
openstreetmap overpass-api
New contributor
nusantara is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
I'm very new to OpenStreetMap's Overpass QL API. After digging through its hefty wiki and several tutorials I get the feeling that if I want to query for a city I can use either area[name="Tbilisi"][boundary=administrative] or geocodeArea:Tbilisi. I think [boundary=administrative] helps identify it as a city or at least some kind of official entity like a state or municipality rather than, say, part of the name of a cafe. I don't know if I am right.
Following that, I should be able to get restaurants in Tbilisi with the area[name="Tbilisi"][boundary=administrative] syntax on Overpass Turbo like so:
area[name="Tbilisi"][boundary=administrative]->.searchArea;
node["amenity"="restaurant"](area.searchArea);
out;
However, it returns '"elements": []'. out count returns a total of 0.
I then tried with geocodeArea:Tbilisi:
geocodeArea:Tbilisi->.searchArea;
node["amenity"="restaurant"](area.searchArea);
out;
This returned a very long list of elements, out count total is 419.
Unfortunately, I can't use geocodeArea:Tbilisi with cURL like this:
curl --globoff 'https://overpass-api.de/api/interpreter?data=[out:json];geocodeArea:Tbilisi->.searchArea;node["amenity"="restaurant"](area.searchArea);out;'
It gives:
...
<p><strong style="color:#FF0000">Error</strong>: line 1: parse error: Unknown type "{" </p>
<p><strong style="color:#FF0000">Error</strong>: line 1: parse error: An empty query is not allowed </p>
<p><strong style="color:#FF0000">Error</strong>: line 1: parse error: ';' expected - '{' found. </p>
(Update 8 Apr 19: As mmd mentions in the comments below, geocodeArea:CITY_NAME is Overpass Turbo syntactic sugar and cannot be used for Overpass API.) Looking into the Network tab of dev tools after running this same query in Overpass Turbo, I find this works on Overpass Turbo because it translates geocodeArea:Tbilisi to area(3601996871). But I'd like to query by city name if possible.
I don't know if I've misunderstood the query structure. If I try the area[name="CITY_NAME"] syntax with Singapore like so:
[out:json];
area[name="Singapore"][boundary=administrative]->.searchArea;
node["amenity"="restaurant"](area.searchArea);
out count;
Overpass Turbo returns a total of 2221.
But with the geocodeArea:CITY_NAME syntax like this:
[out:json];
geocodeArea:Singapore->.searchArea;
node["amenity"="restaurant"](area.searchArea);
out count;
The total count is different. It's 2192.
What is the correct way to query for POI in a city? Preferably with cURL and by city name?
openstreetmap overpass-api
openstreetmap overpass-api
New contributor
nusantara is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
nusantara is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
edited Apr 8 at 9:09
nusantara
New contributor
nusantara is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
asked Apr 7 at 18:40
nusantaranusantara
63
63
New contributor
nusantara is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
nusantara is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
nusantara is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
1
geocodeArea:Singapore is overpass turbo specific syntactic sugar, which is invalid syntax for Overpass API!
– mmd
Apr 8 at 9:02
If you want to query by name then you need to perform a geocoding step before to determine the relation ID, for example with the help of Nominatim.
– scai
Apr 8 at 9:52
... and that's exactly what overpass turbo's geocodeArea does: it calls Nominatim, converts the relation number to an Overpass area id, and sends the query to the Overpass API backend server. If you don't want to use Nominatim, you need to find the correct tags for the area you're interested, like in area[name="Singapore"][boundary=administrative]. This requires you to spend some time on OSM tagging, which would be beyond the scope of this question.
– mmd
Apr 8 at 20:19
add a comment |
1
geocodeArea:Singapore is overpass turbo specific syntactic sugar, which is invalid syntax for Overpass API!
– mmd
Apr 8 at 9:02
If you want to query by name then you need to perform a geocoding step before to determine the relation ID, for example with the help of Nominatim.
– scai
Apr 8 at 9:52
... and that's exactly what overpass turbo's geocodeArea does: it calls Nominatim, converts the relation number to an Overpass area id, and sends the query to the Overpass API backend server. If you don't want to use Nominatim, you need to find the correct tags for the area you're interested, like in area[name="Singapore"][boundary=administrative]. This requires you to spend some time on OSM tagging, which would be beyond the scope of this question.
– mmd
Apr 8 at 20:19
1
1
geocodeArea:Singapore is overpass turbo specific syntactic sugar, which is invalid syntax for Overpass API!
– mmd
Apr 8 at 9:02
geocodeArea:Singapore is overpass turbo specific syntactic sugar, which is invalid syntax for Overpass API!
– mmd
Apr 8 at 9:02
If you want to query by name then you need to perform a geocoding step before to determine the relation ID, for example with the help of Nominatim.
– scai
Apr 8 at 9:52
If you want to query by name then you need to perform a geocoding step before to determine the relation ID, for example with the help of Nominatim.
– scai
Apr 8 at 9:52
... and that's exactly what overpass turbo's geocodeArea does: it calls Nominatim, converts the relation number to an Overpass area id, and sends the query to the Overpass API backend server. If you don't want to use Nominatim, you need to find the correct tags for the area you're interested, like in area[name="Singapore"][boundary=administrative]. This requires you to spend some time on OSM tagging, which would be beyond the scope of this question.
– mmd
Apr 8 at 20:19
... and that's exactly what overpass turbo's geocodeArea does: it calls Nominatim, converts the relation number to an Overpass area id, and sends the query to the Overpass API backend server. If you don't want to use Nominatim, you need to find the correct tags for the area you're interested, like in area[name="Singapore"][boundary=administrative]. This requires you to spend some time on OSM tagging, which would be beyond the scope of this question.
– mmd
Apr 8 at 20:19
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "79"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
nusantara is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f318046%2fhow-to-get-poi-in-city-in-openstreetmap-through-overpass-api-with-curl%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
nusantara is a new contributor. Be nice, and check out our Code of Conduct.
nusantara is a new contributor. Be nice, and check out our Code of Conduct.
nusantara is a new contributor. Be nice, and check out our Code of Conduct.
nusantara is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Geographic Information Systems Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f318046%2fhow-to-get-poi-in-city-in-openstreetmap-through-overpass-api-with-curl%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
geocodeArea:Singapore is overpass turbo specific syntactic sugar, which is invalid syntax for Overpass API!
– mmd
Apr 8 at 9:02
If you want to query by name then you need to perform a geocoding step before to determine the relation ID, for example with the help of Nominatim.
– scai
Apr 8 at 9:52
... and that's exactly what overpass turbo's geocodeArea does: it calls Nominatim, converts the relation number to an Overpass area id, and sends the query to the Overpass API backend server. If you don't want to use Nominatim, you need to find the correct tags for the area you're interested, like in area[name="Singapore"][boundary=administrative]. This requires you to spend some time on OSM tagging, which would be beyond the scope of this question.
– mmd
Apr 8 at 20:19