이전 게시물에서 두 가지 방법으로 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()
최적화 및 시뮬레이션을 전문으로하는 산업 엔지니어 (R, Python, SQL, VBA)
Leave a Reply