Help us understand the problem. What is going on with this article?

ggmapパッケージを用いて住所から緯度経度のデータを得る

文字のインプットに対して、緯度経度のデータを取得する方法の一つで、自分が普段使う方法を記録しておきます。

自分が用いいるのは、CRANにも上がっていて、使い方が非常に簡単な、ggmapパッケージです。

セッティング

# install.packages("ggmap") # まだインストールしていない人用に
# devtools::install_github("dkahle/ggmap") #開発版をインストールしたい場合

library(ggmap)
register_google("XXXXXXXXXXXXXXXXXXXXXXXXXXX") # 個人で取得したgoogle apiの登録が必要

これで設定が完了。

住所より緯度経度を取る方法

ggmapパッケージではgeocode()という関数が提供されており、第一引数のlocationに文字列で、住所をインプットすることにより、緯度経度データを取得できます。

Place Location
東京駅 東京都千代田区丸の内1丁目
東京スカイツリー 東京都墨田区押上1丁目1−2
豊洲マーケット 東京都江東区豊洲6丁目3

上記のようなデータがあり、右に緯度と経度のコラムを挿入したい場合には下のような処理を行います。

dat %>% 
  mutate(緯度 = geocode(Location)$lat,
         経度 = geocode(Location)$lon)
             Place                   Location     緯度     経度
1           東京駅 東京都千代田区丸の内1丁目 35.68124 139.7671
2 東京スカイツリー 東京都墨田区押上1丁目12 35.71006 139.8107
3   豊洲マーケット   東京都江東区豊洲6丁目3 35.64574 139.7879

可視化

このように文字列で記録された住所を座標データとして取り扱えることで以下のような可視化も可能です。

library(leaflet)
leaflet(data = dat) %>% 
  addProviderTiles("Stamen.TonerLite") %>% 
  setView(lng = mean(dat$経度), lat = mean(dat$緯度), zoom = 12.5) %>% 
  addCircleMarkers(~経度, ~緯度, popup = ~paste(Place, ":", Location),
                   clusterOptions = markerClusterOptions())

Screen Recording 2019-10-21 at 10.51 AM.gif

このように簡単に操作ができるため自分としては活用しています。某nateで開催中の学生限定コンペ等で活用もできるでしょう。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした