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

有帮助吗?

解决方案 7

我已经发现了一个伟大的API,用于读取数据的OpenStreetMap; Mapscript 。 这是地图服务器的接口,它能够读取* .MAP和* .SHP文件。它能够使用空间索引,因此潜在的非常快。我已经做了随机的多边形查找(检查是否多边形相交的土地)全球海岸线形状文件在40毫秒。

其他提示

是的,有一个 应用程序编程接口xapi (扩展 API)。

我还没用过这些。

但也有 云制作API 到 OSM。我玩了一下 python api。

我不确定他们中的任何一个是否可以帮助您解决您的特定问题,但您可以搜索 海岸线 接近你的观点。如果你的点在多边形内 标记为自然=海岸线, ,你有一个岛屿(或一个大陆)......

您可以使用CloudMade的地理编码API来搜索OpenStreetMap的数据的一个岛屿。该API将默认返回结果的几何形状,这对我听起来,你在找什么。例如,艾伦苏格兰海岸可以通过以下http请求中找到:

http://geocoding.cloudmade.com/ BC9A493B41014CAABB98F0471D759707 /地理编码/查找/艾伦,UK.js?结果= 1

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

更多文档和实例的API是在developers.cloudmade.com/projects/show/geocoding-http-api 如果你不想使用HTTP API,那么抽象的API提供多语言版本 - 红宝石,蟒蛇,Perl和其他

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

我用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属性。

当然,JavaScript API的调用的OpenLayers

MapQuest的具有一组的基础上具有相当非限制条款OpenStreetMap的数据(即条款紧跟于OSM的)“打开” web服务API:

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

如何有关 http://wiki.openstreetmap.org/wiki/Nominatim ? 我用了这个和设置自己的服务器

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top