Node.jsでLeafletを使ってマップを表示する
npm leafletを利用して、LeafletをNode.jsで使う方法。
インストール
スクリプトファイルのビルド
- カレントディレクトリに次の内容で
webpack.config.js
を作成する
webpack.config.js -
srcディレクトリを作成し、index.jsを作成する
index.js - カレントディレクトリで
npx webpack
コマンドを使ってビルドする - distディレクトリが生成され、次のようなファイルが生成される
- 2b3e1faf89f94a483539.png
- 416d91365b44e4b4f477.png
- 8f2c4d11474275fbc161.png
- main.js
- main.js.LICENSE.txt
- distディレクトリのファイルをクライアントが参照できる場所(public/jsなど)にコピーする
このとき、main.jsはleaflet.jsなどにリネ-ムしておく
マップの表示方法
ビルドしたファイルをビューから読み込みます。
マップの大きさを決めるスタイルを定義し、表示用のdiv
を設置します。
OpenStreetMapを表示する
以下のコードでOpenStreetMapを表示します。
マップの中心位置を変更する
マーカーを表示する
マップ上にマーカー(ピンやアイコン)を表示するには、次のようにします。
bindTooltip
は任意です- CDN利用のleafletと違い、
icon
を指定しないと壊れ画像になります
マーカー位置を変更する
表示中のマーカーに対して、以下のようにして表示位置を変更できます。
マーカーを削除する
マーカークリックでページ遷移させる
マーカークラスターを表示する
マーカークラスターは、マップ上の多数のマーカーをクラスター(集団)にまとめて表示するためのものです。マップの視覚的な整理と、多数のマーカーが近くに集まっている場合にマーカーのオーバーラップを避けるために使用されます。
以下にマーカークラスターの利用方法を記載します。
- Leaflet.markerclusterからファイルをダウンロードする
-
ダウンロードしたファイルから、以下のファイルをクライアントが参照できる場所にコピーする
ファイル コピー先の例 dist/leaflet.markercluster.js /public/js/plugin/leaflet.markercluster.js dist/leaflet.markercluster.js.map /public/js/plugin/leaflet.markercluster.js.map dist/MarkerCluster.css /public/css/pluginMarkerCluster.css dist/MarkerCluster.Default.css /public/css/plugin/MarkerCluster.Default.css - スタイルシートとスクリプトの読み込みをビューに追加する
このとき、leaflet.markercluster.jsはleaflet.jsより後に読み込むこと - 以下のようにして、マーカークラスターを追加する
マーカークラスターを削除する
ルート探索を表示する
Leaflet Routing Machineを利用して、地図上にルートを表示できます。
以下にルート探索の利用方法を記載します。
- 上記サイトからSource codeをダウンロードする
-
ダウンロードしたファイルから、以下のファイルをクライアントが参照できる場所にコピーする
ファイル コピー先の例 dist/leaflet-routing-machine.css /public/css/plugin/leaflet-routing-machine.css dist/leaflet-routing-machine.js /public/js/plugin/leaflet-routing-machine.js dist/leaflet-routing-machine.min.js /public/js/plugin/leaflet-routing-machine.min.js - スタイルシートとスクリプトの読み込みをビューに追加する
- 以下のようにしてルートを表示する
waypoints
に通過地点を追加することで、自動でルートが表示される
ルート探索を更新する
setWaypoints()
で新しいルートを指定します。
ルート探索を削除する
setWaypoints()
で空の配列を指定することで、ルートが空になり地図から削除されます。