Convierta coordenadas de readShapePoly en R a coordenadas largas de lat

9

Estoy tratando de encontrar algunos centroides de un archivo de formas para los municipios daneses y luego encontrar el tiempo de conducción entre ellos. Uso Rla readShapePolyfunción de maptoolscombinado con la gCentroidfunción de rgeos, y todo funciona. Sin embargo, obtengo puntos espaciales como

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

Lo cual claramente no es algo que pueda usar en Google para obtener los tiempos de viaje. Estoy buscando una forma de convertir estos números a longitud-latitud, pero no tengo idea de cómo.

Cuando leo los datos readOGRde la rgdalbiblioteca obtengo las mismas coordenadas pero me dice lo siguiente sobre lo que supongo que es la proyección (pero las coordenadas son las mismas)

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

Ejemplo reproducible: he puesto los datos para el ejemplo aquí: https://github.com/sebastianbarfort/shapefiles

Esto debería reproducir el problema:

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

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

Respuestas:

14

Use spTransformpara transformar las coordenadas a WGS84:

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

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

trama

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::readOGRes capaz de leer la información de proyección automáticamente. maptoolsno funciona ni lee ni escribe información de proyección, dejándolo en sus manos administrar estos detalles manualmente.

rcs
fuente
Esto era justo lo que estaba buscando.
sBarfort
@sBarfort Si la respuesta resuelve su pregunta, es posible que desee aceptarla. De esa manera, otros sabrán que es la respuesta correcta.
RK
No tiene el mismo control que gCentroid, pero SpatialPolygons mantiene el centroide en el objeto. Puede recuperarlos como una matriz usando: coordenadas (map_wgs84)
Jeffrey Evans