是否有openstreetmap的API?

问题描述:

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

+0

这个MapServer似乎很有趣。谢谢 – vikingosegundo 2011-02-12 16:57:22

+0

你应该添加你的更新作为答案并接受它。 – 2013-05-28 09:34:43

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

当然,javascript api被称为openlayers

+1

我知道openlayers,但是这不仅仅是在渲染的tile上显示/操作吗? – 2009-07-07 23:58:33

是的,有一个apixapi(扩展api)。

我还没用过这些。

但是也有到OSM的cloudmade api。我用python api玩了一下。

我不确定,如果他们中的任何人可以帮助您解决您的特定问题,但您可以在您的要点附近搜索coastline。如果你的观点在多边形tagged natural=coastline内,你有一个岛(或一个大陆)...

+0

它提供了什么样的XML格式,以及如何将它渲染到我的应用程序中的栅格图像中? – 2009-09-17 08:14:27

你可以使用CloudMade的Geocoding API在OpenStreetMap数据中搜索岛。该API将默认返回结果的几何图形,这听起来对我来说你正在寻找什么。 。

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

(并作为一个整洁的小劈,改变的.js为.html预览结果

:例如,艾伦苏格兰海岸可以通过以下http请求中找到有关API的更多文档和示例位于developers.cloudmade.com/projects/show/geocoding-http-api 如果您不想使用http api,那么抽象API可用多种语言提供 - ruby​​,python, perl和其他人。

我已经使用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的数据“打开” Web服务的API(即条款密切遵循与OSM的):

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

似乎没有人提到这里的单张 API:
http://leafletjs.com/reference.html

怎么样http://wiki.openstreetmap.org/wiki/Nominatim? 我已经使用过这个并设置了我自己的服务器