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


地図をプロットするパッケージは多くありますが、シェープファイルを用意したり、使用方法が複雑だったりすることがあります。APIの利用回数の制限がありますが、GoogleMapやStamenMapのデータを利用して地図をプロットする「ggmap」パッケージを紹介します。なお、通常の利用であればAPIの利用回数の制限は問題ないかと思います。

本パッケージでは、Google APIを利用したルートを地図上に表示することもできます。

例に、札幌駅から北海道大学へ行くルートを示します。札幌駅から北海道大学までは以外と近く、1.132kmの距離でした。

Stamen Map
http://maps.stamen.com

パッケージのバージョンは2.5.2。R version 3.2.1でコマンドを確認しています。


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

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

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

実行コマンド

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

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

#地名で緯度経度をグーグルから取得:geocodeコマンド
LonLatData <- geocode("札幌 大通り公園", source = "google")
  lon      lat
1 141.3481 43.05982

#緯度経度データから住所をグーグルから取得:revgeocodeコマンド
revgeocode(c(lon = LonLatData[1, 1], lat = LonLatData[1, 2]))
[1] "Odori, 6 Chome Ō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)

#地図のプロットコマンド:qmapコマンド
#データ形式はggplo2形式となります
#qmap("札幌 大通り公園", zoom = 16)

#fromからtoまでのルートを取得:routeコマンド
#取得ルートのモード指定:modeオプション;"driving", "walking", "bicycling", "transit"
RouteData <- route(from = "札幌駅", to = "北海道大学", mode = "walking",
                   structure = "route", output = "simple")
RouteData
   m    km     miles seconds    minutes       hours leg      lon      lat
1    46 0.046 0.0285844      33  0.5500000 0.009166667   1 141.3508 43.06863
2    74 0.074 0.0459836      57  0.9500000 0.015833333   2 141.3507 43.06898
3    71 0.071 0.0441194      55  0.9166667 0.015277778   3 141.3500 43.06905
4    51 0.051 0.0316914      37  0.6166667 0.010277778   4 141.3497 43.06961
5   113 0.113 0.0702182      81  1.3500000 0.022500000   5 141.3496 43.07006
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   134 0.134 0.0832676      95  1.5833333 0.026388889   8 141.3479 43.07103
9  1132 1.132 0.7034248     815 13.5833333 0.226388889   9 141.3464 43.07096
10   NA    NA        NA      NA         NA          NA  NA 141.3401 43.07805
#データをプロット
qmap("札幌駅, 北海道大学", zoom = 16) +
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


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

スポンサードリンク

おすすめコンテンツ


スポンサードリンク