leaflet:layers
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| leaflet:layers [2018/09/30 17:15] – 管理者 | leaflet:layers [2018/12/10 08:21] (現在) – [Leaflet 地図タイル切り替え] 管理者 | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | [[: | ||
| + | ====== Leaflet 地図タイル切り替え ====== | ||
| + | 複数の地図タイルを切り替えるコントロール追加します。 | ||
| + | (ズームごとタイルを切り替えたい場合は [[layers2]] をご覧ください) | ||
| + | |||
| + | 注意:「Leaflet勉強のための試作プログラムなので間違っている可能性があります」「DokuWikiは個別にヘッダを編集できないので通常とは少し違う構造になっています」 | ||
| + | ---- | ||
| + | ===== デモ ===== | ||
| + | 地図右上の菱形アイコンから地図を切り替える事ができます。ここではOpenStreetMapと国土地理院のタイルを選択できます。 | ||
| + | |||
| + | < | ||
| + | <div id=" | ||
| + | <script src=" | ||
| + | < | ||
| + | function cssLoad(cssFile){ | ||
| + | if(document.all){ | ||
| + | document.createStyleSheet(cssFile); | ||
| + | }else{ | ||
| + | var link = document.createElement(" | ||
| + | link.rel = " | ||
| + | link.href = cssFile; | ||
| + | link.type = " | ||
| + | document.getElementsByTagName(' | ||
| + | } | ||
| + | } | ||
| + | cssLoad(" | ||
| + | function addOnload(evtFunc){ | ||
| + | if(window.addEventListener) { | ||
| + | window.addEventListener(' | ||
| + | } else if(window.attachEvent){ //IE用 | ||
| + | window.attachEvent(' | ||
| + | } else { | ||
| + | // | ||
| + | } | ||
| + | } | ||
| + | var mymap; | ||
| + | |||
| + | addOnload(function(){ | ||
| + | mymap = L.map(' | ||
| + | |||
| + | L.control.layers({ | ||
| + | " | ||
| + | maxZoom: 18, | ||
| + | attribution: | ||
| + | }).addTo(mymap), | ||
| + | " | ||
| + | maxZoom: 18, | ||
| + | attribution: | ||
| + | }), | ||
| + | " | ||
| + | minZoom: 2, | ||
| + | maxZoom: 18, | ||
| + | attribution: | ||
| + | }), | ||
| + | " | ||
| + | minZoom: 2, | ||
| + | maxZoom: 18, | ||
| + | attribution: | ||
| + | }), | ||
| + | " | ||
| + | minZoom: 2, | ||
| + | maxZoom: 18, | ||
| + | attribution: | ||
| + | }), | ||
| + | " | ||
| + | minZoom: 9, | ||
| + | maxZoom: 18, | ||
| + | attribution: | ||
| + | }), | ||
| + | }).addTo(mymap); | ||
| + | |||
| + | |||
| + | | ||
| + | mymap.setView([35.6896, | ||
| + | }); | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | < | ||
| + | <script async src="// | ||
| + | <!-- respon_0 --> | ||
| + | <ins class=" | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | < | ||
| + | (adsbygoogle = window.adsbygoogle || []).push({}); | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ---- | ||
| + | ===== ソースコード ===== | ||
| + | コメント行のある部分が[[map]]から追加された部分です(削除された部分は書いてありません) | ||
| + | |||
| + | html部分 | ||
| + | <code html> | ||
| + | <div id=" | ||
| + | </ | ||
| + | JavaScript部分 | ||
| + | <code javascript> | ||
| + | <script src=" | ||
| + | < | ||
| + | function cssLoad(cssFile){ | ||
| + | if(document.all){ | ||
| + | document.createStyleSheet(cssFile); | ||
| + | }else{ | ||
| + | var link = document.createElement(" | ||
| + | link.rel = " | ||
| + | link.href = cssFile; | ||
| + | link.type = " | ||
| + | document.getElementsByTagName(' | ||
| + | } | ||
| + | } | ||
| + | cssLoad(" | ||
| + | function addOnload(evtFunc){ | ||
| + | if(window.addEventListener) { | ||
| + | window.addEventListener(' | ||
| + | } else if(window.attachEvent){ //IE用 | ||
| + | window.attachEvent(' | ||
| + | } else { | ||
| + | // | ||
| + | } | ||
| + | } | ||
| + | var mymap; | ||
| + | addOnload(function(){ | ||
| + | mymap = L.map(' | ||
| + | |||
| + | |||
| + | // | ||
| + | // | ||
| + | L.control.layers({ | ||
| + | " | ||
| + | maxZoom: 18, | ||
| + | attribution: | ||
| + | }).addTo(mymap), | ||
| + | " | ||
| + | maxZoom: 18, | ||
| + | attribution: | ||
| + | }), | ||
| + | " | ||
| + | minZoom: 2, | ||
| + | maxZoom: 18, | ||
| + | attribution: | ||
| + | }), | ||
| + | " | ||
| + | minZoom: 2, | ||
| + | maxZoom: 18, | ||
| + | attribution: | ||
| + | }), | ||
| + | " | ||
| + | minZoom: 2, | ||
| + | maxZoom: 18, | ||
| + | attribution: | ||
| + | }), | ||
| + | " | ||
| + | minZoom: 9, | ||
| + | maxZoom: 18, | ||
| + | attribution: | ||
| + | }) | ||
| + | }).addTo(mymap); | ||
| + | |||
| + | | ||
| + | mymap.setView([35.6896, | ||
| + | }); | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | <script async src="// | ||
| + | <!-- respon_0 --> | ||
| + | <ins class=" | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | < | ||
| + | (adsbygoogle = window.adsbygoogle || []).push({}); | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ---- | ||
| + | ===== 説明 ===== | ||
| + | マップの基本的な部分は[[map]]をご覧ください | ||
| + | |||
| + | L.control.layersにタイルサーバーの情報と著作権表示を列挙します。最初に表示するタイルには最後に.addTo(mymap)を追加します。 | ||
| + | |||
| + | <code javascript> | ||
| + | L.control.layers({ | ||
| + | |||
| + | " | ||
| + | maxZoom: 18, | ||
| + | attribution: | ||
| + | }).addTo(mymap), | ||
| + | |||
| + | " | ||
| + | maxZoom: 18, | ||
| + | attribution: | ||
| + | }), | ||
| + | |||
| + | " | ||
| + | minZoom: 2, // ズーム制限がある場合 下限と上限をセット | ||
| + | maxZoom: 18, | ||
| + | attribution: | ||
| + | |||
| + | }) | ||
| + | }).addTo(mymap); | ||
| + | </ | ||
| + | |||
| + | 常時アイコンを開いた状態にしたい場合は最後の部分を下記のように書き換えます。 | ||
| + | < | ||
| + | }).addTo(mymap); | ||
| + | ↓ | ||
| + | }, null, {collapsed: | ||
| + | </ | ||
| + | |||
| + | 表示位置は通常は右上ですが'' | ||
| + | < | ||
| + | }).addTo(mymap); | ||
| + | ↓右下に移動 | ||
| + | },null, {position:' | ||
| + | ※他のオプションと併用する場合は | ||
| + | },null,{ collapsed: | ||
| + | </ | ||
| + | |||
| + | |||
| + | タイルサーバーにはそれぞれ使用条件が定められていますので確認してからご利用下さい。 | ||
| + | |||
| + | * OpenStreetMap : [[https:// | ||
| + | * 国土地理 : [[https:// | ||
