R TIPSシリーズ⑧ leafletで簡単地図アプリ作成

R TIPSシリーズ⑧ leafletで簡単地図アプリ作成

<<前の記事に戻る

 

,GGWも明けました。久々の投稿となります。

今回は、Rによるオープンソースの地図データを用いた分析/アプリ作成TIPSのご紹介です。

活用するライブラリは”leaflet”です。

leafletの活用事例/アウトプットイメージは以下のリンク先で詳しく説明があります。

https://kazutan.github.io/JapanR2015/leaflet_d.html

https://rpubs.com/kazutan/jssp2015_leaflet

https://rpubs.com/kazutan/leaflet_slide

 

今回は、実際にあるチェーンコーヒーショップのリストを収集し、適宜住所情報から緯度経度情報を

抽出(ジオコーディング)した後のデータがある前提で、サンプルソースを作成しました。

 

■某コーヒーショップ 関東の一部店舗 緯度経度及びダミー売上数値情報(shop_list.csv)

shop_name,lng,lat,sales
shop1,139.7535951,35.6940027,94.89386874
shop2,139.7644892,35.6877121,83.05965594
shop3,139.7654476,35.6869486,40.17070421
shop4,139.7640898,35.686476,34.33885668
shop5,139.7666855,35.6853286,2.789078982
shop6,139.7625724,35.6810613,23.93873683
shop7,139.7616141,35.6749379,68.25244322
shop8,139.7627563,35.6746581,82.22569369
shop9,139.7386181,35.676045,86.81231878
shop10,139.7472406,35.671183,91.12707412

salesの項目は、店舗毎の売上数字(完全にランダムダミー)として、地図上に店舗をプロットし、売上数字の大きさで円の大きさに反映させようと思います。

install.packages(“leaflet”)
library(leaflet)

setwd(※shop_list.csvを格納したフォルダパス)
dt<-read.csv(“shop_list.csv”,header=T)
knitr::kable(dt)
dt$shop_name<-iconv(dt$shop_name,’SHIFT_JIS’,’UTF8′)
m <- leaflet(dt) %>% addTiles()

leaflet(dt) %>%
  addTiles() %>%
  addMarkers(lng=~lng,lat=~lat) %>%
  addPopups(lng=~lng,lat=~lat,popup=~as.character(shop_name)) %>%
 addCircles(lng=~lng,lat=~lat,radius=30,color=”#09f”,weight=~sales)

 

 

基本的にこれだけでOKです。

ショップ名は、あえてアルファベット+数字にしております。日本語の場合、文字コードにより表示がうまく出来ないので、このあたりはもう少し確認が必要です。

 

読み込むファイルを動的に変化させることで、色々な条件で地図上に店舗や施設情報と、それに付随する情報(名称や売上など)を可視化することが出来ます。

 

ShinyなどのWebアプリ構築ライブラリと併用することで、かなり本格的な地図アプリ作成も可能になりますので、是非トライしてみてください。

 

続きを読む>>