web-dev-qa-db-ja.com

openstreetmapのAPIはありますか?

たとえば、OSMデータを照会できるAPIがあるのだろうか。 (lon_1、lat_1)は陸ですか、それとも海ですか?または、島を明確に定義されたポリゴンとして取得することは可能でしょうか?これまで見てきた唯一の使用法は、OSMデータをレンダリングする(タイルを生成する)ツールだけでした。

39

Openstreetmapデータを読み取るための優れたAPIを見つけました。 Mapscript 。これは、*。mapおよび* .shpファイルを読み取ることができるMapServerへのインターフェイスです。空間インデックスを使用できるため、潜在的に非常に高速です。世界の海岸線のシェイプファイルのランダムなポリゴンルックアップ(ポリゴンが土地と交差するかどうかを確認する)を40ミリ秒で実行しました。

1

はい、 apixapi (拡張API)があります。

私はまだこれらを使用していません。

しかし、OSMには cloudmade api もあります。 python api。

それらのいずれかがあなたの特定の問題に役立つかどうかはわかりませんが、あなたはあなたのポイントに近い 海岸線 を検索することができます。ポイントがポリゴン タグ付きnatural = coastline 内にある場合、島(または大陸)があります...

25
vikingosegundo

CloudMadeのGeocoding 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にあります。httpAPIを使用したくない場合は、抽象化APIを複数の言語(Ruby、python、Perl)で使用できます。その他。

9
gravitystorm

ここでLeafletAPIについて誰も言及していないようです:
http://leafletjs.com/reference.html

6
Aquarius_Girl

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属性に度単位で配置します。

3
Graham Asher

もちろん、javascript apiは openlayers と呼ばれます。

2
ko-dos

MapQuestには、OpenStreetMapデータに基づく「Open」ウェブサービスAPIのセットがあり、かなり制限のない条件があります(つまり、条件はOSMの条件に厳密に従っています)。

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

1
Mike Repass

どうですか http://wiki.openstreetmap.org/wiki/Nominatim ?私はこれを使用して自分のサーバーをセットアップしました

0
Kugutsumen