【JavaScript】LeafLetのマーカーを任意の画像に変換する方法

今後も使いそうな気がしたので、備忘録としてまとめ。
Web 地図のための JavaScript ライブラリ「Leaflet」でマップピンを任意の画像に変更する方法です。

Leaflet の公式サイトはこちらから。

Leaflet – a JavaScript library for interactive maps
https://leafletjs.com/

 

方法は、Leaflet 公式サイトの Docs の icon の項目を参考にしていただければと思います。
https://leafletjs.com/reference-1.4.0.html#icon

使い方は下記のとおり。

var myIcon = L.icon({
    iconUrl: '[マーカーの画像パス]',
    iconSize: [38, 95]  // アイコンサイズ
});
L.marker([50.505, 30.57], {icon: myIcon}).addTo(map);

マーカーを指定する処理のみを抜粋しています。
割愛しましたが、マーカーの影の画像や、クラス要素の名前も指定できるので、状況に応じて追加してください。
なお、必須項目は iconUrl のみです。

他にも、devIcon を利用する方法もあります。
画像のかわりに HTML 要素を指定できますので、IconFont を使用する場合にはこちらを使うのが良さそうです。
https://leafletjs.com/reference-1.4.0.html#divicon

var myIcon = L.divIcon({html: '[html要素]', className: '[クラス名]'});
L.marker([50.505, 30.57], {icon: myIcon}).addTo(map);

上記の Icon 同様に、マーカーを指定する箇所のみを抜粋していますので、それ以外は各自で実装してください。
指定できる項目は、Icon とほぼ同じですが、iconUrl の項目と、マーカーの影に関する項目は指定してあっても無視されるようなので、その点はご注意ください。

 

以上、Leaflet のマップマーカーを任意の画像 or HTML 要素に変更する方法でした。
調べたらすぐにヒットする情報ではありますが、まとめておくといつかの私が楽なのでまとめ。
どなたかの助けになれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG