R에서 멋진 지오 코드로 지리 데이터의 지오 코딩

이전 게시물에서 두 가지 방법으로 Open Street Map API를 사용하여 위치 문자열을 지오 코딩하는 방법을 보여주었습니다.

첫 번째 접근 방식은 http를 사용하여 문자열을 OSM API에 직접 보내는 함수를 구현하는 것이 었습니다. 그런 다음 API는 공간 좌표를 json 형식으로 반환합니다.

두 번째 접근 방식은 R에서 osmdata 패키지, 특히 getbb () 함수를 사용하는 것입니다. 이 함수는 주어진 위치 문자열에 대한 위도 및 경도 값이있는 행렬을 반환합니다. 즉, 첫 번째 접근 방식에서 구현 된 함수와 동일하지만 처음부터 구현해서는 안됩니다.

이 게시물에서는 OSM API를 사용하여 간단한 지오 코딩을 허용하는 R의 또 다른 패키지 인 tidygeocoder R-package를 보여줍니다.

아래 줄에서 미리 정의 된 위치 이름 (문자열)으로 데이터 프레임 템플릿을 구성합니다.

# 지오 코딩 프로세스를 채우기위한 데이터 프레임 템플릿 정의
data_df = as.data.frame(matrix(nrow=20,ncol=3))
colnames(data_df) = c("location","lat","long")

# 도시와 마을 이름을 위치로 추가
data_df$location = c("Hamburg, Germany",      #1
                     "Dortmund, Germany",    #2
                     "Stuttgart, Germany",     #3
                     "Berlin, Germany",        #4
                     "Dresden, Germany", #5
                     "Bremen, Germany", #6
                     "Leipzig, Germany",   #7
                     "Kiel, Germany",    #8
                     "Rostock, Germany",  #9
                     "Karlsruhe, Germany",     #10
                     "Siegen, Germany",  #11
                     "Bonn, Germany",     #12
                     "Essen, Germany", #13
                     "Gelsenkirchen, Germany",     #14
                     "Marburg, Germany",       #15
                     "Frankfurt am Main, Germany",      #16
                     "Heidelberg, Germany",    #17
                     "Freiburg, Germany",      #18
                     "Pforzheim, Germany",    #19
                     "Flensburg, Germany"  #20
                     )

다음으로 R의 tidygeocoder 패키지를 사용하여 위치를 지오 코딩합니다.보다 구체적으로 geo_osm 함수를 사용합니다.

# R에서 tidygeocoder 패키지 가져 오기
library(tidygeocoder)

# geo_osm () 함수를 사용하여 위치를 지오 코딩
for(i in 1:nrow(data_df)){
  coordinates = geo_osm(data_df$location[i])
  data_df$long[i] = coordinates$long
  data_df$lat[i] = coordinates$lat
}

이제 데이터 프레임이 완전히 채워졌습니다. 여기에는 위치 이름과 각각의 위도 및 경도 좌표가 포함됩니다.

마지막 단계에서는 마커를 사용하여지도에 위치를 표시하기 위해 R의 Leaflet 패키지를 사용합니다.

# leaflet, leaflet.extras 및 magrittr 가져 오기
library(leaflet)
library(leaflet.extras)
library(magrittr)

# Google 트렌드에 따라 버거 검색 강도에 대한 히트 맵 생성
data_df %>%
  leaflet() %>% 
  addTiles() %>% 
  addProviderTiles(providers$OpenStreetMap.DE) %>% 
  setView(mean(data_df$long),mean(data_df$lat),5) %>%
  addMarkers()

Leave a Reply

답글 남기기

이메일 주소는 공개되지 않습니다.

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

Close

메타