たとえば、OSMデータをクエリできるAPIがあるかどうか疑問に思います。(lon_1、lat_1)は陸にいますか、それとも海にいますか?または、島を明確に定義されたポリゴンとして取得することは可能でしょうか?私がこれまでに見た唯一の使用法は、OSMデータをレンダリングする(タイルを生成する)ためのツールです。
8 に答える
私はまだこれらを使用していません。
しかし、OSMへのクラウドメイドのAPIもあります。PythonAPIで少し遊んだ。
それらのいずれかがあなたの特定の問題であなたを助けることができるかどうかはわかりませんが、あなたはあなたのポイントに近い海岸線を探すことができます。ポイントがnatural=Coastlineとタグ付けされたポリゴン内にある場合、島(または大陸)があります...
CloudMadeのGeocodingAPIを使用して、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)で利用できます。その他。
ここでLeafletAPIについて言及した人はいないようです: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属性に、必要な領域の境界を度単位で入力します。
MapQuestには、OpenStreetMapデータに基づく一連の「オープン」WebサービスAPIがあり、かなり制限のない条件があります(つまり、条件はOSMの条件に厳密に従います)。
もちろん、javascriptapiはopenlayersと呼ばれます。
Openstreetmapデータを読み取るための優れたAPIを見つけました。Mapscript。これは、*。mapおよび*.shpファイルを読み取ることができるMapServerへのインターフェースです。空間インデックスを使用できるため、非常に高速になる可能性があります。40ミリ秒で世界の海岸線シェープファイルのランダムなポリゴンルックアップ(ポリゴンが土地と交差するかどうかをチェック)を実行しました。
http://wiki.openstreetmap.org/wiki/Nominatimはどうですか?これを使って自分のサーバーをセットアップしました