Converter coordenadas de readShapePoly em R em coordenadas long-lat


9

Estou tentando encontrar alguns centróides de um shapefile para os municípios dinamarqueses e depois encontrar o tempo de condução entre eles. Eu uso Ra readShapePolyfunção de maptoolscombinada com a gCentroidfunção de rgeose tudo funciona. No entanto, recebo pontos espaciais como

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

O que claramente não é algo que eu possa usar no Google para aproveitar os tempos de viagem. Estou procurando uma maneira de converter esses números em longitude-latitude, mas não tenho idéia de como.

Quando leio os dados usando readOGRda rgdalbiblioteca, obtenho as mesmas coordenadas, mas ele me diz o seguinte sobre o que presumo ser a projeção (mas as coordenadas são as mesmas)

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

Exemplo reproduzível: coloquei os dados para o exemplo aqui: https://github.com/sebastianbarfort/shapefiles

Isso deve reproduzir o problema:

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

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

Respostas:


14

Use spTransformpara transformar as coordenadas em WGS84:

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

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

enredo

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é capaz de ler as informações da projeção automaticamente. maptoolsAs funções não leem nem gravam informações de projeção, cabendo a você gerenciar esses detalhes manualmente.


Era exatamente o que eu estava procurando.
precisa saber é o seguinte

@sBarfort Se a resposta resolver sua pergunta, você pode aceitá-la. Dessa forma, os outros saberão que é a resposta correta.
RK

Você não tem o mesmo controle que o gCentroid, mas SpatialPolygons mantém o centróide no objeto. Você pode recuperá-los como uma matriz usando: coordenadas (map_wgs84)
Jeffrey Evans
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.