cucumber flesh

Rを中心としたデータ分析・統計解析らへんの話題をしていくだけ

leafletで描画した地図を画像ファイルとして保存する

お手軽に地図データを表示するために{leaflet}を頻繁に利用しているが、出力した地図を画像に保存するにはOSのスクリーンショット機能やアプリケーションを使う必要があって面倒だった。

調べてみると{mapview}パッケージに{leaflet}レンダリング結果を保存できる関数があるそうなのでメモ。

以下のコードでleaflet()の実行結果を画像(あるいはHTML)として保存できる。

library(magrittr)
library(leaflet)
library(mapview)
m <- leaflet() %>% addTiles() %>% addProviderTiles("Stamen.Watercolor") %>% 
    setView(lng = 135, lat = 38, zoom = 3)
mapview::mapshot(m, file = paste0(getwd(), 
    "/map.png"))

当然ながら動かした状態を保存することはできないので、描画される領域はsetView()やらfitBounds()で調整し、ラベルやポップアップの表示が必要であればあらかじめ表示するようにしておく。

f:id:u_ribo:20170328202001p:plain

Enjoy!