R의 readShapePoly 좌표를 Long-lat 좌표로 변환


9

덴마크 지방 자치 단체의 셰이프 파일 중심을 찾으려고 노력한 후 그 사이의 운전 시간을 찾습니다. 내가 사용 RreadShapePoly에서 기능 maptools와 결합 gCentroid에서 기능 rgeos및 모든 작품. 그러나 다음과 같은 공간 점을 얻습니다.

SpatialPoints:
     x       y
1 571860.7 6225016
Coordinate Reference System (CRS) arguments: NA 

여행 시간을 잡기 위해 Google에서 사용할 수있는 것은 아닙니다. 이 숫자를 경도 위도로 변환하는 방법을 찾고 있지만 방법을 모릅니다.

라이브러리 readOGR에서 데이터를 읽을 때 rgdal동일한 좌표를 얻지 만 투영이라고 가정하는 것에 대해 다음을 알려줍니다 (그러나 좌표는 동일합니다)

Slot "proj4string":
CRS arguments:
+proj=utm +zone=32 +ellps=intl +units=m +no_defs

재현 가능한 예 : 예에 대한 데이터를 여기에 넣었습니다 : https://github.com/sebastianbarfort/shapefiles

이것은 문제를 재현해야합니다.

library(maptools)
library(rgdal)
library(rgeos)

map = readShapePoly("~/Downloads/shapefiles-master/kommuner1983.shp")
centroid = gCentroid(map)
centroid

답변:


14

spTransform좌표를 WGS84로 변환하는 데 사용하십시오 .

library("rgdal")
library("rgeos")

map <- readOGR(".", "kommuner1983")
map_wgs84 <- spTransform(map, CRS("+proj=longlat +datum=WGS84"))
plot(map_wgs84, axes=TRUE)

음모

gCentroid(map_wgs84)
# SpatialPoints:
#       x     y
# 1 10.05 55.96
# Coordinate Reference System (CRS) arguments: +proj=longlat +datum=WGS84
# +ellps=WGS84 +towgs84=0,0,0 

rgdal::readOGR투사 정보를 자동으로 읽을 수 있습니다. maptools함수는 투영 정보를 읽거나 쓰지 않으므로 이러한 세부 정보를 수동으로 관리 할 수 ​​있습니다.


이것은 내가 찾던 것입니다.
sBarfort

@ sBarfort 답변이 귀하의 질문을 해결한다면, 당신은 그것을 받아들이고 싶을 것입니다. 그렇게하면 다른 사람들은 그것이 정답이라는 것을 알게 될 것입니다.
RK

gCentroid와 동일한 제어 기능은 없지만 SpatialPolygons는 객체에서 중심을 유지합니다. 다음을 사용하여 매트릭스로를 검색 할 수 있습니다 : 좌표 (map_wgs84)
제프리 에반스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.