有没有openstreetmap的API?

例如,我想知道是否有任何API可以查询OSM数据; (lon_1,lat_1)在陆地还是在海上? 或者是否有可能将一个岛定义为明确的多边形? 到目前为止,我见过的唯一用法就是渲染OSM数据(生成切片)的工具。

是的,有一个API和XAPI (扩展API)。

我还没有用过这些。

但也有OSM的云制造api 。 我用python api玩了一下。

我不确定,如果他们中的任何一个能够帮助你解决你的问题,但是你可以search一个靠近你的地方的海岸线 。 如果你的观点在多边形标记的自然=海岸线内 ,你有一个岛屿(或一个大陆)…

您可以使用CloudMade的地理编码API在OpenStreetMap数据中search岛。 该API将默认返回结果的几何形状,这听起来对我来说你正在寻找什么。 例如,苏格兰海岸的阿兰可以通过下面的http请求find:

http://geocoding.cloudmade.com/BC9A493B41014CAABB98F0471D759707/geocoding/find/Arran,UK.js?results=1

(作为一个整洁的小黑客,将.js改为.html预览结果。

有关API的更多文档和示例位于developers.cloudmade.com/projects/show/geocoding-http-api如果您不想使用http api,那么抽象API可以使用多种语言 – ruby​​,python,perl和别的。

没有人似乎在这里提到了Leaflet API:
http://leafletjs.com/reference.html

当然,javascript api被称为openlayers 。

我已经使用CloudMade OSM提取,但与他们有一些问题。 例如,挪威被夹得太紧,导致西海岸的一些道路消失。

我现在更喜欢立交桥API。

把这样的东西放到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> 

将所需区域的边界放入元素的s,n,w和e属性中。

MapQuest拥有一套基于OpenStreetMap数据的“Open”Web服务API,其中的术语相当不受限制(即术语紧跟OSM):

http://developer.mapquest.com/web/products/open

我发现了一个很棒的API来读取Openstreetmap数据; 地图 。 这是一个MapServer的接口,可以读取* .map和* .shp文件。 它能够使用空间索引,因此可能非常快。 我在40毫秒内做了世界海岸线形状文件的随机多边形查找(检查多边形是否与陆地相交)。

那么http://wiki.openstreetmap.org/wiki/Nominatim ? 我曾经使用过,并设置了我自己的服务器