R์ Leaflet์ ์ด์ฉํ์ฌ ์ง๋๋ฅผ ์๊ฐํ ํด๋ณด์.
์ฐ๋ฆฌ๋๋ผ์ ํ์ ๊ตฌ์ญ์ ์๊ฐํ ํ ๊ฒ์ด๋ค. ์ฌ๊ธฐ(www.gisdeveloper.co.kr/?p=2332)์์ ์ป์ 2020๋ 5์์ ์๊ตฐ๊ตฌ ํ์ ๊ตฌ์ญ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ ๊ฒ์ด๋ค.
In:
library(leaflet)
library(raster)
library(htmltools)
data_map = shapefile('../input/SIG.shp')
โท leaflet์ ์ง๋์ ์๊ฐํ๋ฅผ ์ํด, raster์ ํ์ฅ์๊ฐ shp์ธ ํ์ผ์ ๋ถ๋ฌ์ค๊ธฐ ์ํด, htmltools๋ ์๊ฐํ๋ ์ง๋ ์์ ๋ํ๋๋ ํ ์คํธ๋ฅผ ์์ ํ๊ธฐ ์ํด์ ์ฌ์ฉํ ๊ฒ์ด๋ค.
In:
head(data_map@data)
head(data_map@plotOrder)
# head(data_map@polygons)
Out:
> head(data_map@data)
SIG_CD SIG_ENG_NM SIG_KOR_NM
0 11110 Jongno-gu ์ข
๋ก๊ตฌ
1 11140 Jung-gu ์ค๊ตฌ
2 11170 Yongsan-gu ์ฉ์ฐ๊ตฌ
3 11200 Seongdong-gu ์ฑ๋๊ตฌ
4 11215 Gwangjin-gu ๊ด์ง๊ตฌ
5 11230 Dongdaemun-gu ๋๋๋ฌธ๊ตฌ
> head(data_map@plotOrder)
[1] 125 133 207 128 205 211
โท ๋ถ๋ฌ์จ ํ์ผ์ S4 ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ @๋ฅผ ์ฌ์ฉํ์ฌ ํ์์์์ ์ ๊ทผํ ์ ์๋ค.
โท data์ ๊ฐ ํ์ ๊ฐ ์ง์ญ์ ๋ํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ค. plotOrder์ ๊ฐ ์ง์ญ์ ๋ํ ๋ฒํธ์ด๋ค. polygons๋ plotOrder์ ํด๋นํ๋ ์ง์ญ์ ์์น๋ฅผ ๋ํ๋ด๊ธฐ ์ํ ์ขํ์ ๋ํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ค. ํ๋์ ์ง์ญ๋น ์ฝ 1,000๊ฐ์ ์ขํ๋ก ๊ตฌ์ฑ๋์ด ์๊ธฐ ๋๋ฌธ์ ์คํํ์ง๋ ์์๋ค.
In:
data_map = spTransform(data_map, CRSobj = CRS('+proj=longlat +datum=WGS84'))
data_map@data$SIG_CD = as.numeric(data_map@data$SIG_CD)
vec_label = data_map$SIG_KOR_NM
vec_popup = paste0('<b>', '์ด๋ฆ: ', '</b>', data_map@data$SIG_KOR_NM, '<br>',
'<b>', '์ง์ญ๋ฒํธ: ', '</b>', data_map@data$SIG_CD) %>%
lapply(HTML)
pal_SIG_CD <- colorNumeric('YlOrRd', domain = data_map@data$SIG_CD)
โท ํ์ ๊ตฌ์ญ ๋ฐ์ดํฐ๋ GRS80 ์ขํ๊ณ๋ฅผ ์ฌ์ฉํ๋ฏ๋ก, leaflet์ ์ด์ฉํ ์ง๋ ์๊ฐํ๋ฅผ ํ๊ธฐ ์ํด์๋ WGS84 ์ขํ๊ณ๋ก ๋ณํํด์ผ์ฃผ์ผ ํ๋ค. ๋ฐ๋ผ์ spTransform()์ ์ด์ฉํ์ฌ ๋ณํํ์๋ค.
โท ์ง๋ ์์ ๋ํ๋๋ ๊ฐ ์ง์ญ์ ์๊น์ ํด๋น ์ง์ญ์ ๋ฒํธ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ํ๊ธฐ ์ํด์ ๋ฐ์ดํฐ ํ์ ์ ์ซ์๋ก ๋ณํํ์๋ค.
โท vec_label๊ณผ vec_popup์ ์ง์ญ์ ์ ํํ ๋, ํด๋น ์ง์ญ์ ์ ๋ณด๋ฅผ ๋ํ๋ด ์ฃผ๊ธฐ ์ํ์ฌ ๋ง๋ค์๋ค.
โท pal_SIG_CD๋ ์ง์ญ๋ณ ์๊น์ ๋ํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ๊ฐ์ฒด์ด๋ค.
In:
leaflet(data_map) %>%
addTiles() %>%
addPolygons(color = 'black',
weight = 1,
stroke = T,
fillOpacity = 0.5,
label = vec_label,
popup = vec_popup,
fillColor = ~pal_SIG_CD(SIG_CD),
highlight = highlightOptions(
weight = 2.5))
Out:
โท ํด๋น ์ง์ญ์ ์์น์ ์ปค์๋ฅผ ์ฌ๋ฆฌ๋ฉด ์ง์ญ์ ์ด๋ฆ์ด ๋จ๊ณ , ์ง์ญ์ ํด๋ฆญํ๋ฉด ์ด๋ฆ๊ณผ ์ง์ญ๋ฒํธ์ ๋ํ ์ ๋ณด๊ฐ ๋์ค๋๋ก ์๊ฐํ ํ์๋ค.
โท ์ง์ญ๋ณ ์ง์ญ๋ฒํธ์ ๋ฐ๋ผ ์๊น์ด ๋ฌ๋ผ์ง๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. ์ด๋, ์ง๋์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ S4 ๊ฐ์ฒด์ data์ ๋ค๋ฅธ ์ ๋ณด๋ฅผ ํฉ์น๋ฉด ์ง์ญ๋ฒํธ๋ฟ๋ง ์๋๋ผ ์ธ๊ตฌ์, ๊ฐ๊ตฌ์ ๋ฑ์ ๋ค์ํ ์์ฉ์ด ๊ฐ๋ฅํ๋ค.
'Programming > R' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
CSV ํ์ผ ์ฝ๊ธฐ/์ฐ๊ธฐ (0) | 2020.10.21 |
---|---|
๋ฌธ์์ด ๋ฐ์ดํฐ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ (0) | 2020.10.20 |
์๊ณ์ด ๋ฐ์ดํฐ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ (0) | 2020.10.20 |
tidyr ์ฌ์ฉ๋ฒ (0) | 2020.10.19 |
apply, sapply, lapply ์ฌ์ฉ๋ฒ (0) | 2020.10.19 |