RのLeafletの地図に要素を追加する

R
leaflet
Published

December 5, 2024

パッケージの読み込み

インタラクティブな地図作成のためのleafletパッケージを読み込みます。 もしパッケージをインストールしていない場合は、コメントアウトしてあるinstall.packageを先に実行します。

# install.packages("leaflet")
library(leaflet)
Warning: package 'leaflet' was built under R version 4.4.2

要素の追加

leafletパッケージでは、指定の座標に点やマーカー、ポップアップ、図形などの要素を追加し、データを地図上で可視化することができます。

これらを実行する関数はaddXX (XXは追加する要素)という名前を持っています。 今回はそれらのうち、地図上に座標を指定して要素を追加する以下の関数について確認します。

今回確認する関数
関数名 機能
addPopups ポップアップを追加します
addMarkers マーカーを追加します
addLabelOnlyMarkers ラベル(説明書き)だけのマーカーを追加します
addCircleMarkers 円マーカーを追加します
addCircles 円を追加します
addPolylines ポリライン(複数の線を持った折れ線)を追加します
addRectangles 四角形を追加します
addPolygons 多角形を追加します

百聞は一見にしかずということで、それぞれの関数の挙動を実際のコードで確認します。

ポップアップ addPopups

addPopus(地図, 経度, 緯度, ポップアップラベル)と指定します。

d <- data.frame(latitude = c(35.3606, 36.57583, 36.15500), 
                longitude = c(138.7275, 137.61972, 136.77139), 
                name = c("富士山", "立山", "白山"))

m <- leaflet()
m <- addTiles(m)
m <- addPopups(m, lng = d$longitude, lat = d$latitude, popup = d$name)
m

マーカー addMarkers

m <- leaflet()
m <- addTiles(m)
m <- addMarkers(m, lng = d$longitude, lat = d$latitude)
m

popup引数に値をいれると、クリックでポップアップが表示されるようにできます。

m <- leaflet()
m <- addTiles(m)
m <- addMarkers(m, lng = d$longitude, lat = d$latitude, popup = d$name)
m

label引数に値をいれると、マウスを重ねたときにラベルが表示されるようにできます。

m <- leaflet()
m <- addTiles(m)
m <- addMarkers(m, lng = d$longitude, lat = d$latitude, label = d$name)
m

ラベルだけのマーカー addLabelOnlyMarkers

addMarkers関数からマーカーだけを取り除きたいときはaddLabelOnlyMarkers関数を使用します。 マーカーが表示されないので、ピンポイントにマウスカーソルをあわせないとラベルが確認できません。 addMarkers関数と比べて使用用途は限られると思いますが、マーカーが密集しているときなどは有用かもしれません。

m <- leaflet()
m <- addTiles(m)
m <- addLabelOnlyMarkers(m, lng = d$longitude, lat = d$latitude, label = d$name)
m

円マーカー addCircleMarkers

指定した座標に円マーカーを表示させます。

m <- leaflet()
m <- addTiles(m)
m <- addCircleMarkers(m, lng = d$longitude, lat = d$latitude, fill = FALSE)
m

色や大きさなどの引数を以下の表にまとめます

引数 説明
radius 円の大きさ。デフォルトは10
stroke 円マーカーの輪郭線(縁)をつけるかどうか。デフォルトはTRUE
color 円マーカーの色。デフォルトは"#03F"青色。
weight 円マーカーの輪郭線の太さ(単位はピクセル)。デフォルトは5
opacity 円マーカーの透過度。0-1で設定し、値が大きいほど透過しない。デフォルトは0.5
fill 円マーカーを塗りつぶすかどうか。デフォルトはTRUE
fillColor 塗りつぶしの色。デフォルトはcolor、つまり"#03F"colorを変えるとこちらも同じになるが、fillColorで設定するとcolorと別の色を設定可能
fillOpacity 塗りつぶしの透過度。デフォルトは0.2

また、addMarkers関数と同様に、popupを指定するとポップアップが、labelを指定するとラベルを表示させることができます。

addCircles

addCircleMarkers関数とほぼ同じです。 こちらのほうが点が小さく、図形としての点を打つことを重視している印象です。

m <- leaflet()
m <- addTiles(m)
m <- addCircles(m, lng = d$longitude, lat = d$latitude)
m

ポリライン addPolylines

座標を指定した順番に直線を結びます。

#|label: polyline
m <- leaflet()
m <- addTiles(m)
m <- addPolylines(m, lng = d$longitude, lat = d$latitude)
m

四角形 addRectangles

lng1lat1で指定した緯度経度からlng2lat2で指定した座標までを対角線にした四角形を描画します。

m <- leaflet()
m <- addTiles(m)
m <- addRectangles(m, lng1 = d$longitude[1], lat1 = d$latitude[1], lng2 = d$longitude[2], lat2 = d$latitude[2])
m

多角形 addPolygons

lnglatに指定した座標を頂点として多角形を描画します。 与えられた座標の順番に線を結ぶため、引数に与える順番が大事になります。

m <- leaflet()
m <- addTiles(m)
m <- addPolygons(m, lng = d$longitude, lat = d$latitude)
m
Back to top