平面図上に線や円などのベクタデータを表示(Leaflet)

プログラムの概要とデモ

 Leafletの平面図上に線や円などのベクタデータを表示するサンプルプログラムです。
 サンプルプログラムでは、CADの平面図の上に、ベクタデータを重ねて表示していますが、地図上に緯度経度を使って表示することも可能です。

ソースの説明

HTML、CSSのソース

 HTML、CSSのソースは、地図にボタンを表示と同じです。

JavaScriptのソース

 平面図の上に、線や円などのベクタデータを表示するサンプルプログラムです。
 Leafletを使った平面図の表示方法は、平面図の座標系での表示と同じです。
 サンプルでは、線や円などのベクタデータは、LayerGroupに格納して表示しています。 LayerGroupに格納することで、ベクタデータをまとめて非表示にしたりすることができます。
 サンプルでは使っていませんが、L.polylineや、L.circleでは、Leafletのオブジェクトが返却されますので、そのオブジェクトを覚えておけば、個々の要素を削除したり細かな制御を行うことができます。
 線や円は、polylineや、circleメソッドでインスタンスを作成しますが、Leafletのクラス名は、キャピタライズされた名前となっていますので、API仕様書のPolylineクラスや、Circleクラスの箇所を参照します。
 線や円などのベクタデータの色や透過度は、オプションで指定します。 オプションは、Pathオブジェクトを継承していますので、PathオブジェクトのAPI仕様を参照する必要があります。
 ベクターデータには、多角形を描く Polygonや、長方形を描く Rectangleなどもありますので、詳しくは、API仕様書を見て下さい。

function init() { // 初期処理 ・・・・・ let lay = L.layerGroup().addTo(map); // ベクターデータ表示領域 L.polyline([[3.0, 2.0], [5.0, 3.0]], {color: '#00ff00'}).addTo(lay); L.circle([5.0, 3.0], 1.0, {color: '#ff00ff'}).addTo(lay); }

 サンプルプログラムでは、座標値を配列で指定していますが、lat,lngで指定することもできます。
 LeafletのAPIは、配列形式とハッシュ形式の両方に対応しているようです。

function init() { // 初期処理 ・・・・・ let lay = L.layerGroup().addTo(map); // ベクターデータ表示領域 L.polyline([{lat: 3, lng: 2}, {lat: 5, lng: 3}], {color: '#00ff00'}).addTo(lay); L.circle({lat: 5, lng: 3}, 1.0, {color: '#ff00ff'}).addTo(lay); }
Copyright (C) ASH Joe Masumura