Konwertuj współrzędne z readShapePoly w R na współrzędne długie

9

Próbuję znaleźć centroidy pliku kształtu dla duńskich gmin, a następnie znaleźć czas między nimi. Używam R„s readShapePolyfunkcję z maptoolspołączeniu z gCentroidfunkcją z rgeos, i wszystko działa. Jednak dostaję punkty przestrzenne takie jak

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

Które oczywiście nie jest czymś, czego mogę użyć w Google, aby uzyskać czas podróży. Szukam sposobu na przekonwertowanie tych liczb na długość i szerokość geograficzną, ale nie mam pojęcia, jak to zrobić.

Kiedy czytam dane readOGRz rgdalbiblioteki, otrzymuję te same współrzędne, ale mówi mi to o tym, co zakładam, to rzut (ale współrzędne są takie same)

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

Powtarzalny przykład: Umieściłem dane dla przykładu tutaj: https://github.com/sebastianbarfort/shapefiles

Powinno to odtworzyć problem:

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

map = readShapePoly("~/Downloads/shapefiles-master/kommuner1983.shp")
centroid = gCentroid(map)
centroid
sBarfort
źródło

Odpowiedzi:

14

Użyj, spTransformaby przekształcić współrzędne na WGS84:

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

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

wątek

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::readOGRjest w stanie automatycznie odczytać informacje o projekcji. maptoolsfunkcje nie odczytują ani nie zapisują informacji o projekcji, co pozwala na ręczne zarządzanie tymi szczegółami.

rcs
źródło
Właśnie tego szukałem.
sBarfort,
@sBarfort Jeśli odpowiedź rozwiązuje Twoje pytanie, możesz je zaakceptować. W ten sposób inni będą wiedzieć, że jest to poprawna odpowiedź.
RK
Nie masz takiej samej kontroli jak gCentroid, ale SpatialPolygons utrzymują środek ciężkości w obiekcie. Możesz je odzyskać jako macierz, używając: współrzędne (map_wgs84)
Jeffrey Evans