ページにOpenStreetMapを埋め込む/マッシュアップする方法はありますか( Google Maps API のように)?
いくつかのマーカーを使用してページ内に地図を表示し、ドラッグ/ズーム、おそらくルーティングを許可する必要があります。これにはJavascript APIがあるのではないかと疑っていますが、見つけられないようです。
検索すると 未処理の地図データにアクセスするためのAPI が取得されますが、それは地図の編集に向いているようです。それに加えて、それを扱うことはAJAXにとって重いタスクです。
マップを表示するには、JavaScriptを使用する必要があります。 OpenLayersは、このための一番の選択肢です。
http://wiki.openstreetmap.org/wiki/OpenLayers_Simple_Example に例があります。
http://wiki.openstreetmap.org/wiki/OpenLayers_Marker
そして
http://wiki.openstreetmap.org/wiki/Openlayers_POI_layer_example
Leaflet もあり、モバイルデバイスを念頭に置いて構築されています。
リーフレットには クイックスタートガイド があります。マーカーなどの基本的な機能に加えて、プラグインでは、外部サービスの使用 routing もサポートします。
シンプルなマップの場合、OpenLayersよりもセットアップが簡単で高速ですが、より複雑な用途向けに完全に構成および調整が可能です。
[コードスニペットを実行]をクリックして、マーカーが埋め込まれた埋め込みOpenStreetMapスリップマップを表示します。これは リーフレット で作成されました。
// Where you want to render the map.
var element = document.getElementById('osm-map');
// Height has to be set. You can do this in CSS too.
element.style = 'height:300px;';
// Create Leaflet map on map element.
var map = L.map(element);
// Add OSM tile leayer to the Leaflet map.
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
// Target's GPS coordinates.
var target = L.latLng('47.50737', '19.04611');
// Set map's center to target with zoom 14.
map.setView(target, 14);
// Place a marker on the same location.
L.marker(target).addTo(map);
<script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script>
<link href="https://unpkg.com/[email protected]/dist/leaflet.css" rel="stylesheet"/>
<div id="osm-map"></div>
注:
ここではCDNバージョンの Leaflet を使用しましたが、 download を使用して、自分のホストからファイルを提供およびインクルードできます。
mapstraction を見てください。これにより、Google、osm、yahooなどに基づいてマップを提供する柔軟性が高まりますが、コードを変更する必要はありません。
CloudMadeの開発者ツール もご覧ください。彼らは、美しいスタイルのOSMベースマップサービス、OpenLayersプラグイン、さらには独自の軽量で非常に高速なJavaScriptマッピングクライアントを提供します。また、独自のルーティングサービスをホストしますが、これは要件として考えられます。優れたドキュメントと例があります。
OpenLayers(マップ用のjs API)を使用できます。
OSMタイルの埋め込み方法を示す 例 がページにあります。
OSMマップをWebページに埋め込むだけの場合、最も簡単な方法は、OSM Webサイトからiframeコードを直接取得することです。
<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0"
src="https://www.openstreetmap.org/export/embed.html?bbox=-62.04673002474011%2C16.95487694424327%2C-61.60521696321666%2C17.196751341562923&layer=mapnik"
style="border: 1px solid black"></iframe>
<br/><small><a href="https://www.openstreetmap.org/#map=12/17.0759/-61.8260">View Larger Map</a></small>
もっと複雑なことをしたい場合は、OSM wiki " 独自のSlippy Mapをデプロイする "をご覧ください。
Javascriptを恐れるなら、簡単な方法があります...私はまだ学んでいます。 Open Streetは、カスタマイズ可能なシンプルなWordpressプラグインを作成します。OSMウィジェットプラグインを追加します。
これは、国勢調査局のカバーTIGER行ファイルを使用してPython Java.