ブロックを積みながら(124) Node-RED、worldmap-inノードを使ってみる

Joseph Halfmoon

前回は、node-red-contrib-web-worldmapを使わせていただき「地図表示が思いのまま」ということで喜びました。しかし表示できるだけではありませんぞ。地図を操作するとその結果をイベントとして取得することができるのです。その辺表示して、拡大して、お印をつけるっと。そんな操作一つ一つを取得可能。強力。

※「ブロックを積みながら」投稿順 index はこちら

※動作確認にはRaspberry Pi 3 model B+のRaspberry Pi OS(32bit)上にインストールした以下を使用しています。

    • Node-RED v2.0.5
Locationカテゴリに配置されるworldmapノード群

前回はインストールするとDashboardカテゴリに忽然と現れる「緑っぽい色の」worldmapノードを使ってみました。しかしNodeRedのパレットにはLocationカテゴリというものが新設されて、以下の4ノードが並んでます。

worldmapNodes

あれれ、こっちにも worldmapノード(赤っぽい色の)がある。その違いは何よ、ということでNodeRedエディタ画面に配置してみました。こんな感じ。TwoTypesOfWorldMap

「緑の」worldmapノードの設定画面の先頭部分が以下に。こちらにはDashboard上のGroupに紐づけるためのフィールドが用意されとります。dashboardWorldmapSetting

一方「赤い」worldmapノードの方はその部分がなく、即座標設定のフィールドです。LocationWorldmapSetting

「赤い」方は、URLで全画面アクセスオンリみたいです。Dashboard内にちんまり表示するときは緑みたいね。

worldmap-inノード

さて、表示した地図からのイベントを受け取るのはworldmap-inという「赤い」方のノードです。しかし、以下のように「緑の」worldmapノードに対しても問題なく動作するようでした(なお「緑の」方もURLアクセス可能な状態です。)flowTested

worldmap-inノードの設定画面が以下に。どんなイベントを捕捉するのか指定できるようになってます。現在設定は全部載せ。worldmapInSettings

この状態であると、MAP表示した瞬間にイベントが到来します。こんな感じ。event0

基本、イベントのpayloadには表示している地図の東西南北を示すらしい、緯度、経度がsouth, west, north, eastとして載ってます。zoomに関してはzoomの段階が整数でのってます。以下はズームを変更したところ。ZoomEvent

適当に表示領域を移ると、表示緯度経度エリアも変化します。locationMoveEvent

ここではMENUを使用したかったので、worldmapノードの設定の以下のmenu設定をShowに変えてあります。MenuON

Layerメニュー画面からDrawを選択すると、以下のように描画用のツールが現れ、地図上に図形を描くことが可能です。以下、テキトーなところにマル描いてみました。DrawCircle

マル描くと、マルの中心の緯度、経度と半径(これはメートル表示みたい)が以下のようにイベントとして到来します。DrawCircleEvent

これ使えば地図のこの辺ってな指定も大丈夫だあ。ホントか?

ブロックを積みながら(123) Node-RED、contribの地図表示機能を使ってみる に戻る

ブロックを積みながら(125) Node-RED、convex-hullノードを使ってみる へ進む