Is there an API for openstreetmap? [closed]

2020-05-11 10:13发布

I wonder if there is any API I could query OSM data through, for example; Are (lon_1, lat_1) at land or at sea? Or could it be possible to get an island as a well-defined polygon? The only usage I've seen so far has just been tools for rendering OSM data (generating tiles).

8条回答
甜甜的少女心
2楼-- · 2020-05-11 10:28

I've found a great API for reading Openstreetmap data; Mapscript. This is an interface to MapServer, which is able to read *.map and *.shp files. It is able to use a spatial index and is therefore potentially extremely fast. I've done random polygon lookups (checking if a polygon intersects land) of the world coastline shape file in 40 ms.

查看更多
啃猪蹄的小仙女
3楼-- · 2020-05-11 10:29

No one seems to have mentioned here the Leaflet API:
http://leafletjs.com/reference.html

查看更多
女痞
4楼-- · 2020-05-11 10:32

Yes, there is an api and xapi (extended api).

I havent used these yet.

But there is also the cloudmade api to OSM. I played a bit with the python api.

I am not sure, if any of them could help you with your particular problem, but you could search for a coastline near to your point. If your point is within the polygon tagged natural=coastline, you have an island (or a continent)...

查看更多
走好不送
5楼-- · 2020-05-11 10:35

I have used CloudMade OSM extracts but had some problems with them. For example, Norway was clipped too tightly, causing some roads on the west coast to disappear.

I now prefer the overpass API.

Put something like this into the query form at http://www.overpass-api.de/query_form.html

<osm-script timeout="10000" element-limit="1073741824">
  <union into="_">
    <bbox-query into="_" s="52.3170669250001" n="52.4027433480001" w="4.80527567900009" e="4.97793537400008"/>
    <recurse from="_" into="_" type="up"/>
    <recurse from="_" into="_" type="down"/>
  </union>
  <print from="_" limit="" mode="meta" order="id"/>
</osm-script>

Put the bounds of the area you want, in degrees, in the s, n, w and e attributes of the element.

查看更多
趁早两清
6楼-- · 2020-05-11 10:45

how about http://wiki.openstreetmap.org/wiki/Nominatim? I had used this and setup my own server

查看更多
我命由我不由天
7楼-- · 2020-05-11 10:47

Of course, the javascript api is called openlayers.

查看更多
登录 后发表回答