本文へスキップ
からだにいいもの

Rのトピックスを中心に『まだ、まだ、知らない、役に立つ情報?』を発信します。

Rで解析:GoogleMapやStamenMapを利用「ggmap」パッケージ

地図をプロットするパッケージは多くありますが、シェープファイルを用意したり、使用方法が複雑だったりすることがあります。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

terrain

・get_googlemapコマンド:satellite

satellite

・get_googlemapコマンド:roadmap

roadmap

・get_googlemapコマンド:hybrid

hybrid

・routeコマンド

route

・Stamen Mapコマンド:watercolor

Stamen Map

・Stamen Mapコマンド:toner-lite

toner-lite

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

スポンサーリンク
Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.