地図をプロットするパッケージは多くありますが、シェープファイルを用意したり、使用方法が複雑だったりすることがあります。APIの利用回数の制限がありますが、GoogleMapやStamenMapのデータを利用して地図をプロットする「ggmap」パッケージを紹介します。なお、通常の利用であればAPIの利用回数の制限は問題ないかと思います。
本パッケージでは、Google APIを利用したルートを地図上に表示することもできます。
例に、札幌駅から北海道大学へ行くルートを示します。札幌駅から北海道大学までは以外と近く、1.127kmの距離でした。
Stamen Map
http://maps.stamen.com
パッケージのバージョンは3.0.1。R version 4.2.2でコマンドを確認しています。
パッケージのインストール
下記コマンドを実行してください。
#パッケージのインストール install.packages("ggmap")
実行コマンド
詳細はコマンド、パッケージヘルプを確認してください。
#パッケージの読み込み library("ggmap") #地名で緯度経度をグーグルから取得:geocodeコマンド LonLatData <- geocode("sapporo odori", source = "google") lon lat 1 141.3477 43.0599 #緯度経度データから住所をグーグルから取得:revgeocodeコマンド revgeocode(c(lon = LonLatData[1, 1], lat = LonLatData[1, 2])) [1] "Nish 7chome Dori, Ōdōrinishi, Chūō-ku, Sapporo-shi, Hokkaidō 060-0042, Japan" #グーグルマップ画像の取得:get_googlemapコマンド #地図の種類を指定:maptypeオプション;"terrain", "satellite", "roadmap", "hybrid"が指定可能 #拡大の指定:zoomオプション;1-21の整数で指定可能 GMapData <- get_googlemap(center = c(lon = LonLatData[1, 1], lat = LonLatData[1, 2]), zoom = 16, size = c(640, 640), scale = 2, format = "png8", maptype = "hybrid", language = "jpn", sensor = FALSE, messaging = FALSE, urlonly = FALSE, filename = "ggmapTemp", color = "color", force = FALSE) #プロット ggmap(GMapData) #fromからtoまでのルートを取得:routeコマンド #取得ルートのモード指定:modeオプション;"driving", "walking", "bicycling", "transit" RouteData <- route(from = "sapporo station", to = "hokkaido university", mode = "walking", structure = "route", output = "simple") RouteData m km miles seconds minutes hours leg lon lat 1 104 0.104 0.0646256 74 1.2333333 0.020555556 1 141.3508 43.06866 2 12 0.012 0.0074568 11 0.1833333 0.003055556 2 141.3499 43.06888 3 108 0.108 0.0671112 79 1.3166667 0.021944444 3 141.3498 43.06891 4 71 0.071 0.0441194 51 0.8500000 0.014166667 4 141.3485 43.06879 5 58 0.058 0.0360412 42 0.7000000 0.011666667 5 141.3484 43.06942 6 68 0.068 0.0422552 48 0.8000000 0.013333333 6 141.3482 43.06993 7 57 0.057 0.0354198 40 0.6666667 0.011111111 7 141.3480 43.07052 8 139 0.139 0.0863746 100 1.6666667 0.027777778 8 141.3479 43.07103 9 1127 1.127 0.7003178 811 13.5166667 0.225277778 9 141.3464 43.07100 10 NA NA NA NA NA NA NA 141.3401 43.07805 #データをプロット qmap("sapporo station, hokkaido university", zoom = 15) + geom_path(data = RouteData, aes(x = lon, y = lat), colour = "red", size = 1.5, lineend = "round") #Stamen Mapからデータを取得:Stamen Mapコマンド #取得エリアの設定 #大体の札幌 bbox <- c(left = 141.2, bottom = 43.0, right = 141.5, top = 43.15) #取得画像枚数が多くなるzoom設定だとプロットうまくいかない場合があります #maptype = "watercolor" ggmap(get_stamenmap(bbox, maptype = "watercolor", zoom = 13)) #maptype = "toner-lite" ggmap(get_stamenmap(bbox, maptype = "toner-lite", zoom = 11))
出力例
・get_googlemapコマンド:terrain
・get_googlemapコマンド:satellite
・get_googlemapコマンド:roadmap
・get_googlemapコマンド:hybrid
・routeコマンド
・Stamen Mapコマンド:watercolor
・Stamen Mapコマンド:toner-lite
少しでも、あなたのウェブや実験の解析が楽になりますように!!