Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
四国八十八箇所
---
title: "Shikoku Pilgrimage"
author: "Ishida Motohiro"
date: "`r format(Sys.time(), '%d %B, %Y')`"
output: html_document
---
海外の [wikipedia Shikoku Pilgrimage](https://en.wikipedia.org/wiki/Shikoku_Pilgrimage) から寺院情報を取得し、地図に重ねる。
```{r setup, echo=FALSE,message=FALSE}
if(!require(rvest)) {install.packages("rvest") ; require(rvest)}
if(!require(stringr)){install.packages("stringr") ; require(stringr)}
if(!require(dplyr)) {install.packages("dplyr") ; require(dplyr)}
if(!require(magrittr)) {install.packages("magrittr") ; require(magrittr)}
if(!require(leaflet)) {install.packages("leaflet") ; require(leaflet)}
```
# 寺院の情報を取得
Wiki ページで TABLE タグで指定されている寺院の名前と位置情報を取得し、RStudioで表形式のデータとして保存する。
Wikiでは緯度経度の情報がやや冗長に記録されているので、必要な数値だけを取り出す。
```{r}
url <- "https://en.wikipedia.org/wiki/Shikoku_Pilgrimage"
pilgr <- read_html(url) %>% html_nodes(xpath = '//table[@class = "wikitable sortable"]') %>% html_table %>% extract2(1)
coord <- pilgr $ Coordinates %>% str_extract_all (pattern = "[1-9][1-9]\\.[0-9]+|[1-9][1-9][1-9]\\.[0-9]+", simplify = TRUE) %>% extract(,1:2)%>% as.data.frame(stringsAsFactors = FALSE) %>% mutate_each(funs(as.numeric))
```
# 地図の作成
leaflet パッケージから Open Street Map API にアクセスして、寺院を包括する地図を取得し、名前などをポップアップで表示できるようにする。ポップアップをマウスでクリックすると寺院の名前が表示される(ただしWindows上では残念ながら文字化けする)。
```{r}
pilgr %>% cbind(coord) %>% leaflet %>% addTiles () %>% addMarkers(lng=~V2, lat=~V1, popup = ~Temple)
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.