Leafletの図形描画

Leaflet

Leafletで地図上に円、ポリラインやポリゴンを描画します。

使い方

L.circle

円を描画するには、L.circle を使用します。

L.circle(<LatLng> latlng, <Number> radius, <Circle options> options?)

radius

OptionTypeDefaultDescription
radiusNumber半径(m)を指定します。

Options

OptionTypeDefaultDescription
strokeBooleantrue線を描画するかどうかを指定します。
colorString‘#3388ff’線色を指定します。
weightNumber3線幅を指定します。
opacityNumber1.0線の透過率を指定します。
lineCapString‘round’線端形状を指定します。
lineJoinString‘round’線接合形状を指定します。
dashArrayStringnull破線パターンを指定します。
dashOffsetStringnull破線開始位置を指定します。
fillBooleandepends塗りつぶしをするかどうかを指定します。
fillColorString*塗りつぶし色を指定します。
fillOpacityNumber0.2塗りつぶしの透過率を指定します。
fillRuleString‘evenodd’塗りつぶしルールを指定します。
bubblingMouseEventsBooleantrueマウスイベントのトリガーとするかどうかを指定します。
rendererRenderer特定の描画エンジンを指定します。
classnameStringnullクラス名を指定します。

L.polyline

ポリラインを描画するには、L.polylineを使用します。

L.polyline(<LatLng[]> latlngs, <Polyline options> options?)

LatLngs

OptionTypeDefaultDescription
latlngsNumber座標の配列を指定します。

Options

OptionTypeDefaultDescription
smoothFactornumber1.0見た目の滑らかさを指定します。
noClipBooleanfalseクリッピングを指定します。

その他のオプションは、L.circleと同様です。

L.polygon

ポリゴンを描画するには、L.polygonを使用します。

L.polygon(<LatLng[]> latlngs, <Polyline options> options?)

latlngs・オプションは、L.polylineと同様です。

全体コード

<html lang="ja">
<head>
 <title>Leafletの図形の描画</title>
 <meta charset="utf-8">
 <link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css">
 <script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
</head>
<body>

<div id="map" style="width:100%;height:100%"></div>
<script>
  //表示位置を設定
  var _map = L.map('map');
  //初期表示時に中心座標とズームレベルを設定
  _map.setView([35.6895, 139.69172], 13);
  //初期表示時の表示地図を設定
  L.tileLayer('https://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png', {
      attribution: "<a href='https://maps.gsi.go.jp/development/ichiran.html' target='_blank'>国土地理院</a>"
  }).addTo(_map);
  //円の描画
  L.circle([35.704662,139.698457], { radius: 1000, color: "#FF0000", fill: false, weight: 5 }).addTo(_map);
  //ポリラインの描画
  var points1 = [[35.680524,139.661893],[35.674662,139.679231],[35.665451,139.657945],[35.659867,139.679918],[35.648560,139.653482]];
  L.polyline(points1, { color: "#008000", weight: 5 }).addTo(_map);
  //ポリゴンの描画
  var points2 = [[35.675918,139.705839],[35.664055,139.727811],[35.653586,139.711332],[35.663078,139.701719]];
  L.polygon(points2, { color: "#0000FF", weight: 5, fill: true, fillColor: "#ff8000", opacity: 0.5 }).addTo(_map);
</script>

</body>
</html>

サンプルを別画面で実行

コメント

タイトルとURLをコピーしました