Konvertieren Sie Koordinaten von readShapePoly in R in Long-Lat-Koordinaten

9

Ich versuche, einige Schwerpunkte eines Shapefiles für dänische Gemeinden zu finden und anschließend die Fahrzeit zwischen ihnen zu ermitteln. Ich benutze Rdie readShapePolyFunktion von maptoolskombiniert mit der gCentroidFunktion von rgeosund alles funktioniert. Ich bekomme jedoch räumliche Punkte wie

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

Was ich in Google eindeutig nicht verwenden kann, um Reisezeiten zu ermitteln. Ich suche nach einer Möglichkeit, diese Zahlen in Längen- und Breitengrad umzuwandeln, habe aber keine Ahnung, wie.

Wenn ich die Daten readOGRaus der rgdalBibliothek lese, erhalte ich die gleichen Koordinaten, aber es wird Folgendes über die Projektion angegeben (aber die Koordinaten sind die gleichen).

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

Reproduzierbares Beispiel: Ich habe die Daten für das Beispiel hier angegeben: https://github.com/sebastianbarfort/shapefiles

Dies sollte das Problem reproduzieren:

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

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

Antworten:

14

Verwenden Sie spTransformdiese Option, um die Koordinaten in WGS84 umzuwandeln:

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

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

Handlung

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::readOGRkann die Projektionsinformationen automatisch lesen. maptoolsFunktionen, die weder Projektionsinformationen lesen noch schreiben, so dass Sie diese Details manuell verwalten können.

rcs
quelle
Das war genau das, wonach ich gesucht habe.
sBarfort
@sBarfort Wenn die Antwort Ihre Frage löst, möchten Sie sie möglicherweise akzeptieren. Auf diese Weise wissen andere, dass dies die richtige Antwort ist.
RK
Sie haben nicht das gleiche Steuerelement wie gCentroid, aber SpatialPolygons halten den Schwerpunkt im Objekt. Sie können sie als Matrix abrufen mit: Koordinaten (map_wgs84)
Jeffrey Evans