providers 객체 안에 다양한 배경지도 목록을 활용할 수 있음
library(leaflet)
library(dplyr)
leaflet() %>%
setView(lng=127,lat= 37, zoom = 7)%>%
addTiles()
leaflet() %>%
setView(lng=127,lat= 37, zoom = 7)%>%
addProviderTiles(providers$Stamen.Toner)
# 특정 범위 시각화
leaflet() %>%
fitBounds(lng1=126, lat1=37, lng2=128, lat2=38)%>%
addProviderTiles(providers$Stamen.Toner)
# 줌 범위 조절
leaflet(options = leafletOptions(minZoom = 6,maxZoom = 9)) %>%
setView(lng=127,lat= 37, zoom = 7)%>%
addProviderTiles(providers$Stamen.Toner)
# 특정 범위 고정
leaflet() %>%
setView(lng=127,lat= 37, zoom = 7)%>%
addProviderTiles(providers$Stamen.Toner)%>%
setMaxBounds(lng1=127.5, lat1=37.5, lng2=128, lat2=38)
leaflet() %>%
addTiles()%>%
flyToBounds(lng1=126, lat1=37, lng2=128, lat2=38)
leaflet() %>%
addTiles()%>%
flyTo(lng=127,lat=37,zoom=8)
# 마커
leaflet(data = quakes[1:20,]) %>% addTiles() %>%
addMarkers(~long, ~lat, popup = ~as.character(mag), label = ~as.character(mag))
# 팝업
leaflet() %>%
addTiles()%>%
setView(lng=127,lat= 37, zoom = 7)%>%
addPopups(127, 37, "Here is the <b>lat =127 lng= 37</b>")
# 이미지 마커
Rlogo <- file.path(R.home("doc"), "html", "logo.jpg")
leaflet() %>%
addTiles()%>%
setView(lng=127,lat= 37, zoom = 8)%>%
addMarkers( 127, 37,
icon = list(iconUrl = Rlogo,
iconSize = c(30, 20)
), popup = "R was born here!"
)
# 원
leaflet() %>%
addTiles()%>%
setView(lng=127,lat= 37, zoom = 8)%>%
addCircles(127, 37, radius =10000,color='#ff0000')
# 사각형
leaflet() %>%
addTiles()%>%
setView(lng=127,lat= 37, zoom = 8)%>%
addRectangles(lng1=126, lat1=37, lng2=128, lat2=38,
color = "red", fill = FALSE, dashArray = "5,5", weight = 3)
# 다각형
leaflet() %>%
addTiles()%>%
setView(lng=127,lat= 37, zoom = 8)%>%
addPolygons(c(126,128,127),c(37,38,37), layerId = "foo")
leaflet() %>%
addTiles()%>%
setView(lng=127,lat= 37, zoom = 8)%>%
addPolylines(c(126,128,127),c(37,38,36))
# 하이라이트
leaflet() %>%
addTiles()%>%
setView(lng=127,lat= 37, zoom = 8)%>%
addRectangles(lng1=126, lat1=37, lng2=128, lat2=38,
color = "red", dashArray = "5,5", weight = 3,
highlightOptions =
highlightOptions(color = "white", weight = 2,bringToFront = TRUE))
rester 패키지의 getData를 활용하면 gis 자료를 편리하게 수집할 수 있다. 아래에서 활용하는 자료 중 SRTM은 고도 자료이며, GADM은 행정구역도이다. GADM의 level은 0을 주면 국가, 1을 주면 시도 단위로 구분해준다.
library(raster)
#rester data
grid <- merge(raster::getData('SRTM', lon=126,lat=37),
raster::getData('SRTM', lon=126,lat=35))
grid=aggregate(grid, fact=50)
plot(grid)
#vector data
kor=raster::getData('GADM',country='KOR',level=1)
plot(kor)
# 자료 추출
seoul=kor[kor@data$NAME_1=='Seoul',]
crop_alt=mask(crop(grid,seoul),seoul)
plot(crop_alt)
grid.pal=colorNumeric(palette = "RdYlGn",values(crop_alt),
na.color = 'transparent', reverse = TRUE)
leaflet() %>%
addProviderTiles('Esri.WorldImagery', group = 'Esri.WorldImagery')%>%
setView(lng = 127.0, lat = 37.5, zoom = 10)%>%
addRasterImage(crop_alt, colors = grid.pal, opacity = 0.8)%>%
addLegend(pal = grid.pal, values = values(crop_alt),title = "고도(m)")