地図上に文字列を表示(Leaflet)

プログラムの概要とデモ

 地図上に文字列を表示するプログラムです。 文字列をクリックすると、ポップアップを表示し、詳細情報や写真を表示しています。

ソースの説明

HTML、CSSのソース

 HTMLのソースは、地図にボタンを表示と同じですが、CSSのソースは、文字列マーカ用の定義を追加しています。

CSSの追加ソース

 文字列は、LeafletのdivIconを使って表示します。デザインの一部は、CSSで設定します。
 font-sizeで文字列の大きさを指定しますが、表示位置を左下基準にする場合は、iconAnchorの値もfont-sizeの値に合わせて変更する必要があります。デフォルトで4px程度のマージンがありますので、font-sizeの値+8程度の値に変更します。
 文字列の色は、backgroundやborder属性で設定します。
 個別に文字列の大きさや色を変更したい場合は、str_iconクラスをコピーして、対応することができます。classNameでは、複数のクラスを指定することもできるようです。

.str_icon { font-size: 15px; color: black; background: white; border: solid 1px gray; border-radius: 3px; padding: 0px 3px; white-space: nowrap; }

JavaScriptのデータ定義のソース

 文字列表示のサンプルプログラムでは、日本三名園の位置に園名を表示しています。 園名の基準位置付近をクリックすると、名称と住所と写真を表示するポップアップが表示されます。
 データ定義のソースは、地図上にマーカを表示と同じです。

JavaScriptのプログラムのソース

 JavaScriptのプログラムのソースは、地図上にマーカを表示から、マーカ定義をdivIconを使用した定義に変更することで、文字列を表示しています。
 ポップアップが不要な場合は、.bindPopup(popup)を削除すると、文字列を表示するだけになります。

L.marker(latLng, { // 文字列マーカを登録 icon: L.divIcon({ html: place.name, // 表示文字列 iconAnchor: [0, 0], // 表示位置 [0,0]左上基準、[0,23]左下基準 iconSize: [-1, -1], className: 'str_icon' }) }).bindPopup(popup).addTo(grp);
Copyright (C) ASH Joe Masumura