Chuyển đổi tọa độ từ readShapePoly trong R sang tọa độ dài


9

Tôi đang cố gắng tìm một số nhân của một shapefile cho các đô thị của Đan Mạch và sau đó tìm thấy thời gian lái xe giữa chúng. Tôi sử dụng Rcủa readShapePolychức năng từ maptoolskết hợp với các gCentroidchức năng từ rgeos, và mọi thứ suôn sẻ. Tuy nhiên, tôi nhận được các điểm không gian như

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

Đây rõ ràng không phải là thứ tôi có thể sử dụng trong Google để lấy thời gian đi lại. Tôi đang tìm cách chuyển đổi những con số này thành kinh độ, nhưng không biết làm thế nào.

Khi tôi đọc dữ liệu sử dụng readOGRtừ rgdalthư viện, tôi nhận được cùng tọa độ nhưng nó cho tôi biết những điều sau đây về giả định của tôi (nhưng tọa độ là như nhau)

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

Ví dụ sinh sản: Tôi đã đặt dữ liệu cho ví dụ ở đây: https://github.com/sebastianbarfort/shapefiles

Điều này sẽ tái tạo vấn đề:

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

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

Câu trả lời:


14

Sử dụng spTransformđể chuyển đổi tọa độ thành WGS84:

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

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

âm mưu

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::readOGRcó khả năng đọc thông tin chiếu tự động. maptoolscác chức năng không đọc và ghi thông tin chiếu, tùy thuộc vào bạn để quản lý các chi tiết này theo cách thủ công.


Đây chỉ là những gì tôi đang tìm kiếm.
sBarfort

@sBarfort Nếu câu trả lời giải quyết được câu hỏi của bạn thì bạn có thể muốn chấp nhận nó. Bằng cách đó, người khác sẽ biết rằng đó là câu trả lời chính xác.
RK

Bạn không có quyền điều khiển giống như gCentroid, nhưng SpatialPolygons giữ trọng tâm trong đối tượng. Bạn có thể truy xuất chúng dưới dạng ma trận bằng cách sử dụng: tọa độ (map_wgs84)
Jeffrey Evans
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.