Rで解析:グーグルマップへいろいろ追記「RgoogleMaps」パッケージの紹介

Rの解析に役に立つ記事
スポンサーリンク

グーグルマップのデータをローカルに取得し、矢印やポイント、文字を追記できる「RgoogleMaps」パッケージの紹介です。なお、ローカルに取得した地図データはネットに接続しなくとも、矢印やポイント、文字の追記が可能です。

パッケージでは、矢印、点、線、テキストを地図に追記することができます。また、サーバーへ負担をかけない「優しいパッケージ」です。

パワーポイントなどで情報を追記していた方にオススメです。札幌市内を例に紹介します。

機会があれば、また札幌に散歩へいきたいと思います。今の時期、北海道最高です。

パッケージのバージョンは1.2.0.7。実行コマンドはR version 3.2.2で確認しています。


スポンサーリンク

パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("RgoogleMaps")

実行コマンド

詳細はコメント、パッケージヘルプを確認してください。

#パッケージの読み込み
library("RgoogleMaps")

###取得する地図内容の設定#####
#緯度を指定,札幌駅,札幌テレビ塔,札幌市資料館,すすきの駅
lat = c(43.068531, 43.061084, 43.058544, 43.055942)
#経度を指定,札幌駅,札幌テレビ塔,札幌市資料館,すすきの駅
lon = c(141.350819, 141.356441, 141.337493, 141.353222)
#マーカー内容を設定
#書式;&markers=color:"色"|label:"ラベル内容"|"緯度","経度"
MarkColors <- c("red", "blue", "green", "yellow")
#&#12521;&#12505;&#12523;&#20869;&#23481;&#12399;&#33521;&#23383;&#19968;&#25991;&#23383;
MarkLabels <- c("A", "B", "C", "D")
#&#20013;&#24515;&#28857;&#12434;&#20316;&#25104;
Center = c(mean(lat), mean(lon))
#&#25313;&#22823;&#29575;&#12434;&#20316;&#25104;
Zoom <- min(MaxZoom(range(lat), range(lon)))
#&#12510;&#12540;&#12459;&#12540;&#20869;&#23481;&#12434;&#20316;&#25104;
Markers <- paste(paste0("&amp;markers=color:", MarkColors, "|label:", MarkLabels, "|", lat, ",", lon), collapse = "")
########

#&#20316;&#26989;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12395;&#22320;&#22259;&#12398;&#20869;&#23481;&#12392;&#12487;&#12540;&#12479;&#12434;&#20445;&#23384;:GetMap&#12467;&#12510;&#12531;&#12489;
#&#12501;&#12449;&#12452;&#12523;&#21517;:destfile&#12458;&#12503;&#12471;&#12519;&#12531;
#&#30011;&#20687;&#12469;&#12452;&#12474;:size&#12458;&#12503;&#12471;&#12519;&#12531;;&#12500;&#12463;&#12475;&#12523;&#12391;&#25351;&#23450;
#&#22320;&#22259;&#12398;&#12479;&#12452;&#12503;:maptype&#12458;&#12503;&#12471;&#12519;&#12531;
#"roadmap","mobile","satellite","terrain","hybrid","mapmaker-roadmap","mapmaker-hybrid"&#12398;&#35373;&#23450;&#12364;&#21487;&#33021;
#&#12501;&#12449;&#12452;&#12523;&#12501;&#12457;&#12540;&#12510;&#12483;&#12488;:format&#12458;&#12503;&#12471;&#12519;&#12531;
#"gif","jpg","jpg-baseline","png8","png32"&#12398;&#35373;&#23450;&#12364;&#21487;&#33021;
#&#12464;&#12524;&#12540;&#12473;&#12465;&#12540;&#12523;:GRAYSCALE&#12458;&#12503;&#12471;&#12519;&#12531;
MyMap <- GetMap(center = Center, zoom = Zoom, markers = Markers,
                destfile = "KARADA-GOOD.png", size = c(640, 640),
                maptype = "terrain", GRAYSCALE = FALSE)
#&#22320;&#22259;&#12434;&#12503;&#12525;&#12483;&#12488;
PlotOnStaticMap(MyMap)

#&#20445;&#23384;&#12375;&#12383;&#12487;&#12540;&#12479;&#12434;&#35501;&#12415;&#36796;&#12415;:ReadMapTile&#12467;&#12510;&#12531;&#12489;
#&#22320;&#22259;&#12398;png&#12487;&#12540;&#12479;&#12392;&#23550;&#24540;&#12375;&#12383;rda&#12487;&#12540;&#12479;&#12364;&#24517;&#35201;&#12391;&#12377;
#png&#12487;&#12540;&#12479;&#12391;&#21152;&#24037;&#12377;&#12427;&#22320;&#22259;&#12487;&#12540;&#12479;&#12434;&#25351;&#23450;&#12375;&#12414;&#12377;
library("RgoogleMaps")
library("tcltk")
MyMap <- ReadMapTile(paste(as.character(tkgetOpenFile(title = "&#35501;&#12415;&#36796;&#12416;&#12501;&#12449;&#12452;&#12523;&#12434;&#25351;&#23450;",
                                                      filetypes = '{"&#12501;&#12449;&#12452;&#12523;&#12434;&#25351;&#23450;" {"*.png"}}',initialfile = "*.png")),
                           sep = "", collapse =" "))

#&#21462;&#24471;&#12375;&#12383;&#22320;&#22259;&#12487;&#12540;&#12479;&#12395;&#30690;&#21360;&#12434;&#25551;&#20889;:PlotArrowsOnStaticMap&#12467;&#12510;&#12531;&#12489;
#&#30690;&#21360;&#12398;&#22987;&#28857;:lat0,lon0&#12458;&#12503;&#12471;&#12519;&#12531;;&#32239;&#24230;,&#32076;&#24230;
#&#30690;&#21360;&#12398;&#32066;&#28857;:lat1,lon1&#12458;&#12503;&#12471;&#12519;&#12531;;&#32239;&#24230;,&#32076;&#24230;
#&#30690;&#21360;&#12398;&#19978;&#26360;&#12365;:add&#12458;&#12503;&#12471;&#12519;&#12531;
PlotArrowsOnStaticMap(MyMap, lat0 = 43.059084, lat1 = 43.061084, 
                      lon0 = 141.358441, lon1 = 141.356441, col = "red", add = FALSE)
PlotArrowsOnStaticMap(MyMap, lat0 = 43.059084, lat1 = 43.055942, 
                      lon0 = 141.358441, lon1 = 141.353222, col = "blue", add = TRUE)

#&#21462;&#24471;&#12375;&#12383;&#22320;&#22259;&#12487;&#12540;&#12479;&#12395;&#28857;&#12539;&#32218;&#12434;&#25551;&#20889;:PlotOnStaticMap&#12467;&#12510;&#12531;&#12489;
#&#28857;&#12539;&#32218;&#12398;&#36984;&#25246;:FUN&#12458;&#12503;&#12471;&#12519;&#12531;;points,lines
PlotOnStaticMap(MyMap, lat = lat, lon = lon, cex = 4, pch = 20, FUN = points,
                col = c("red", "blue", "green"), add = FALSE)
PlotOnStaticMap(MyMap, lat = lat, lon = lon, lwd = 2, FUN = lines,
                col = "black", add = TRUE)

#&#21462;&#24471;&#12375;&#12383;&#22320;&#22259;&#12487;&#12540;&#12479;&#12395;&#12486;&#12461;&#12473;&#12488;&#12434;&#25551;&#20889;:TextOnStaticMap&#12467;&#12510;&#12531;&#12489;
#mac&#26085;&#26412;&#35486;&#25991;&#23383;&#21270;&#12369;&#38450;&#27490;
par(family = "HiraKakuProN-W3")
TextOnStaticMap(MyMap, lat = lat, lon = lon,
                labels = c("&#26413;&#24140;&#39365;", "&#12486;&#12524;&#12499;&#22612;", "&#36039;&#26009;&#39208;", "&#12377;&#12377;&#12365;&#12398;&#39365;"),
                cex = 1.5, col = "red", add = FALSE)

#&#32239;&#24230;&#32076;&#24230;&#12398;&#21462;&#24471;:getGeoCode&#12467;&#12510;&#12531;&#12489;
getGeoCode("&#26481;&#20140;&#39365;")
lat      lon 
35.6808 139.7672 

出力例

・GetMapコマンド

GetMap

・PlotArrowsOnStaticMapコマンド

PlotArrowsOnStaticMap

・PlotOnStaticMapコマンド

PlotOnStaticMap

・TextOnStaticMapコマンド

TextOnStaticMap

少しでも、あなたのウェブや実験の解析が楽になりますように!!

タイトルとURLをコピーしました