유럽 여행 계획 보고서

한 달간 유럽 여행을 떠난다고 가정하고, 방문할 도시와 체류 기간, 이동 경로를 데이터로 정리하여 leaflet 패키지를 활용해 지도 위에 시각화하였습니다. 각 도시는 원으로 표현하였고, 원의 크기는 체류일에 비례하도록 설정하였으며, 도시 간 이동 경로는 선으로 연결하였습니다.

시각화를 진행한 과정은 다음과 같습니다.

  1. 직접 데이터셋을 구성하였습니다. 변수는 도시명(city), 위도(lat), 경도(lng), 체류일(days)로 설정하였습니다.

  2. 방문 도시는 베를린(Berlin) → 암스테르담(Amsterdam) → 브뤼셀(Bruxelles) → 파리(Paris) → 취리히(Zürich) 순으로 정리하였습니다.

  3. 각 도시의 위도·경도 정보는 구글 지도를 참고하여 입력하였습니다.

  4. 도시별 체류일은 베를린 1일, 암스테르담 3일, 브뤼셀 2일, 파리 15일, 취리히 10일로 설정하였습니다. 파리에서 가장 오래 머물며 주변 도시들을 둘러보는 일정으로 계획하였습니다.

  5. 체류일에 비례하여 원의 반지름이 결정되도록 radius = ~days*3000 옵션을 적용하였고, 어두운 배경에서 잘 보이도록 CartoDB.DarkMatter 타일과 노란색 마커를 사용하였습니다. 또한 전체 위치를 한눈에 볼 수 있도록 미니맵(addMiniMap)도 추가하였습니다.

시각화 결과는 아래와 같습니다. 코드와 함께 출력하였습니다.

city <- c("Berlin", "Amsterdam", "Bruxelles", "Paris", "Zürich")
lat  <- c(52.5197, 52.3571, 50.8759, 48.8670, 47.3828)
lng  <- c(13.4177, 4.9002, 4.3448, 2.3820, 8.5556)
days <- c(1, 3, 2, 15, 10)

travelPlan <- data.frame(city = city, lat = lat, lng = lng, days = days)
travelPlan
##        city     lat     lng days
## 1    Berlin 52.5197 13.4177    1
## 2 Amsterdam 52.3571  4.9002    3
## 3 Bruxelles 50.8759  4.3448    2
## 4     Paris 48.8670  2.3820   15
## 5    Zürich 47.3828  8.5556   10
map <- leaflet(travelPlan) %>% 
  addProviderTiles(providers$CartoDB.DarkMatter) %>% 
  setView(lng = 7.9477, lat = 50.0917, zoom = 5) %>% 
  addCircles(lng = ~lng, lat = ~lat, 
             radius = ~days*3000, 
             color = "yellow") %>% 
  addMiniMap(width = 150, height = 150) %>% 
  addPolylines(lng = ~lng, lat = ~lat, 
               weight = .5, 
               color = "yellow"); map

이상으로 보고를 마칩니다. 감사합니다.