14-15주차 과제 결과물: 공간시각화

본 보고서는 leaflet 패키지를 사용하여 지도 위에 위치 정보를 시각화한 결과물입니다.


실력향상문제 1. 수원화성 깃발 마커 (14주차)

수원화성의 위치를 구글 지도에서 추출하여 깃발 모양 마커로 표현하고, 클릭 시 팝업 메시지가 나타나도록 시각화하였습니다.

map1 <- leaflet() %>%
  addTiles() %>%
  setView(lng = 127.0086, lat = 37.2887, zoom = 15) %>%
  addAwesomeMarkers(
    lng = 127.0086, lat = 37.2887,
    icon = awesomeIcons(icon = 'flag', markerColor = 'orange', iconColor = 'white'),
    popup = "수원화성"
  )
map1
  • 위치: 경기도 수원시 팔달구 일원
  • 마커 종류: 깃발(flag) 아이콘, 주황색
  • 팝업 내용: “수원화성”

실력향상문제 2. 서울 관광명소 3곳 지도 (14주차)

광화문광장을 중심으로 서울의 주요 관광 명소 3곳에 서로 다른 아이콘 마커를 추가하고, 지도 배경은 CartoDB.Positron 스타일을 사용하였습니다.

map2 <- leaflet() %>%
  addProviderTiles(providers$CartoDB.Positron) %>%
  setView(lng = 126.9769, lat = 37.5720, zoom = 13) %>%
  addAwesomeMarkers(
    lng = 126.9769, lat = 37.5720,
    icon = awesomeIcons(icon = 'flag', markerColor = 'orange', iconColor = 'white'),
    popup = "서울의 중심, 역사와 문화의 공간"
  ) %>%
  addAwesomeMarkers(
    lng = 126.9706, lat = 37.5547,
    icon = awesomeIcons(icon = 'road', markerColor = 'blue', iconColor = 'white'),
    popup = "서울의 관문, 교통의 중심"
  ) %>%
  addAwesomeMarkers(
    lng = 126.9882, lat = 37.5512,
    icon = awesomeIcons(icon = 'signal', markerColor = 'green', iconColor = 'white'),
    popup = "서울의 전망대, 데이트명소"
  )
map2

각 장소별 설정 조건은 아래와 같습니다.

장소 아이콘 마커 색상 팝업 내용
광화문광장 flag 주황색 서울의 중심, 역사와 문화의 공간
서울역 road 파란색 서울의 관문, 교통의 중심
남산타워 signal 녹색 서울의 전망대, 데이트명소

실력향상문제 3. 유럽 여행 경로 지도 (15주차)

한 달간 유럽 여행 계획을 데이터로 만들고, 방문 도시와 체류일을 원의 크기경로 선으로 표현하였습니다.

방문 순서: 베를린 → 암스테르담 → 브뤼셀 → 파리 → 취리히

# 유럽 여행 데이터 직접 생성
europeTrip <- data.frame(
  city = c("베를린", "암스테르담", "브뤼셀", "파리", "취리히"),
  lat  = c(52.5200, 52.3676, 50.8503, 48.8566, 47.3769),
  lon  = c(13.4050,  4.9041,  4.3517,  2.3522,  8.5417),
  days = c(1, 3, 2, 15, 10)
)

# 팝업 텍스트 추가
europeTrip <- europeTrip %>%
  mutate(popup_text = paste0("<b>", city, "</b><br>체류일: ", days, "일"))

# 지도 시각화
map3 <- leaflet(europeTrip) %>%
  addProviderTiles(providers$CartoDB.Positron) %>%
  setView(lng = 7.0, lat = 50.5, zoom = 5) %>%
  addPolylines(lng = ~lon, lat = ~lat, color = "gray", weight = 2) %>%
  addCircles(
    lng = ~lon, lat = ~lat,
    radius = ~days * 3000,
    color = "steelblue",
    fillOpacity = 0.5,
    popup = ~popup_text
  )
map3

각 도시별 체류일 정보는 아래와 같습니다.

방문 순서 도시 체류일 위도 경도
1 베를린 1일 52.5200 13.4050
2 암스테르담 3일 52.3676 4.9041
3 브뤼셀 2일 50.8503 4.3517
4 파리 15일 48.8566 2.3522
5 취리히 10일 47.3769 8.5417
  • 원의 크기: 체류일에 비례 (days * 3000)
  • : 방문 순서대로 도시 간 경로 표시
  • 팝업: 도시명 + 체류일 표시

이상으로 14-15주차 공간시각화 과제 보고를 마칩니다. 감사합니다.