我不知道是否有任何API我可以通过查询OSM的数据,例如: 是(lon_1,lat_1)在陆地或海上? 或可能是可能得到一个岛屿作为一个明确的多边形? 迄今为止我见过的唯一使用刚刚工具呈现OSM数据(生成砖)。
Answer 1:
是的,有一个API和XAPI (扩展API)。
我还没有尚未使用这些。
但也有在cloudmade API来OSM。 我打了一下使用Python API。
我不知道,如果其中任何一个可以帮助您与您的特定问题,但你可以搜索海岸线靠近你的观点。 如果你点中的多边形标记的自然=海岸线 ,您有一个小岛(或一个大陆)...
Answer 2:
您可以使用CloudMade的地理编码API来搜索OpenStreetMap的数据的一个岛屿。 该API将默认返回结果的几何形状,这对我听起来,你在找什么。 例如,艾伦苏格兰海岸可以通过以下http请求中找到:
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以多种语言可供选择 - 红宝石,蟒蛇,perl的和别的。
Answer 3:
似乎没有人在这里提到的单张 API:
http://leafletjs.com/reference.html
Answer 4:
我已经使用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属性。
Answer 5:
当然,JavaScript API的调用的OpenLayers 。
Answer 6:
MapQuest的拥有一套基于具有相当不受限制的条款OpenStreetMap的数据(即条款密切遵循与OSM)的“打开” Web服务的API:
http://developer.mapquest.com/web/products/open
Answer 7:
我发现了一个伟大的API,用于读取数据OpenStreetMap的; Mapscript 。 这是地图服务器的接口,它能够读取* .MAP和* .SHP文件。 它能够使用空间索引,因此潜在的非常快。 我已经做了随机的多边形查找(检查是否多边形相交的土地)在40毫秒世界上海岸线形状文件。
Answer 8:
怎么样http://wiki.openstreetmap.org/wiki/Nominatim ? 我用了这个和设置自己的服务器