よちよちpython

独習 python/Qpython/Pydroid3/termux/Linux

【foliumのPlugins】2点間の直線距離や3点以上の外周距離・面積を計測・表示するMeasureControlの使い方

今回は、地図作成ライブラリfoliumの数あるPluginsの中の一つMeasureControlの使い方。
2点間の直線距離、3点以上の区域の外周距離とその面積を計算・表示することができます。



【実行環境】

  • Windows10 WSL:Ubuntu
  • Anaconda
  • Python3.8
  • Jupyter Notebook
  • 外部ライブラリ
    • folium



目次



MeasureControlの使い方

下記のコードを実行してできた地図を使って説明します。

  • 出来た地図を開くと次の画面が出る。

f:id:chayarokurokuro:20210808205430j:plain
地図の初期画面



  • 右上のボタンをクリックすると。

f:id:chayarokurokuro:20210808205534j:plain
MesureControlボタンをクリック


▶ Create a new measurement」とある。これをクリックすると計測開始。



  • 地図で距離を測りたい最初のポイントをクリックする。

f:id:chayarokurokuro:20210808205706j:plain
Create a new measurement をクリック


クリックした場所に黄緑色のマルがつき、右上が「Measure distances and areas」と変わります。
福岡県久留米市味水御井神社(うましみず・みい・じんじゃ)をクリックしました。座標が表示されています。
「Cancel」か「Finish Measurement」をクリックすると計測中断・終了。



  • 地図で距離を測りたい次のポイントをクリックする。

f:id:chayarokurokuro:20210808205813j:plain
線分の終点をクリック中


次に、連続して佐賀県の吉野ケ里遺跡の北墳丘墓をクリックしました。紀元前の吉野ケ里の王のお墓です。
クリックした場所にマルがつき、最初にクリックした神社の場所まで黄緑色の直線が引かれます。ぶっちゃけ見えにくい!

右上に北墳丘墓の座標と、味水御井神社までの直線距離がメートルマイルで表示されています。神社だけにマイ…
「Finish measurement」で計測確定・終了。



  • 「Finish measurement」で計測確定したら

f:id:chayarokurokuro:20210808205947j:plain
Finish measurement 計測完了クリック


「Linear measurement」に2点間の直線距離が表示されています。
「Center on this line」をクリックすると直線の中心が地図の中心に表示移動します。



  • 3点以上をクリックすると

2点間の距離だけでなく、連続して3点以上をクリックするとその区域の外周距離や面積を計算・表示できます。

「Area Measurement」として、点で囲まれた区域の面積 Sq Meters区域の外周距離 Perimeterが表示されます。



  • 直線の削除方法

直線にカーソルを合わせ、カーソルの形状が変わった所でクリックする。
「Delete」をクリックすれば黄緑の直線とポイントが削除されます。



地図作成

import folium
from folium import plugins

# 地図中央座標 
center = [33.311236, 130.548693]
# 地図作成
m = folium.Map(center, zoom_start=11)

# メジャーコントロールを地図に追加
plugins.MeasureControl().add_to(m)

# 地図を保存
#m.save('measureControl.html')

# 地図表示
m
Make this Notebook Trusted to load map: File -> Trust Notebook



MeasureControlのヘルプ

# ヘルプの表示
help(folium.plugins.MeasureControl)

# または(Jupyterで
?folium.plugins.MeasureControl
folium.plugins.MeasureControl(
    position='topright',
    primary_length_unit='meters',
    secondary_length_unit='miles',
    primary_area_unit='sqmeters',
    secondary_area_unit='acres',
    **kwargs,
)

引数では「Measure Control」ボタンの表示位置と、表示内容の設定ができるようです。



おわりに

直線の色が黄緑色で、見えにくい。引数では色の変更が出来ない。サクッと距離や面積を測りたいときに簡易的な使用かな。

以上です。