43

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

4

8 回答 8

28

是的,有apixapi(扩展 api)。

我还没用过这些。

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

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

于 2009-07-09T16:08:11.283 回答
8

您可以使用 CloudMade 的地理编码 API 在 OpenStreetMap 数据中搜索岛屿。默认情况下,API 将返回结果的几何图形,这听起来像是您在寻找的东西。例如,可以通过以下 http 请求找到苏格兰海岸外的 Arran:

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和别的。

于 2009-07-21T15:54:55.833 回答
7

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

于 2012-10-11T11:11:15.507 回答
4

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.

于 2012-07-15T21:25:40.653 回答
3

MapQuest 有一组基于 OpenStreetMap 数据的“开放”网络服务 API,具有相当不受限制的条款(即条款与 OSM 的条款密切相关):

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

于 2012-10-11T01:51:07.320 回答
2

当然,javascript api 被称为openlayers

于 2009-07-07T23:50:37.013 回答
2

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

于 2013-05-28T10:13:32.693 回答
0

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

于 2013-03-01T02:57:19.350 回答