座標をRのreadShapePolyから長緯度座標に変換する


9

私はデンマークの自治体のシェープファイルの重心をいくつか見つけて、その後それらの間の運転時間を見つけようとしています。私が使っRさんreadShapePolyからの機能maptoolsと組み合わせるgCentroidから機能rgeos、およびすべての作品を。しかし、私は次のような空間点を取得します

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

これは明らかにGoogleで移動時間を取得するために使用できるものではありません。これらの数値を経度と緯度に変換する方法を探していますが、方法がわかりません。

ライブラリreadOGRからを使用してデータを読み取ると、rgdal同じ座標が取得されますが、これは投影法であると想定していることについて次のことを教えてくれます(ただし、座標は同じです)

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

再現可能な例:https : //github.com/sebastianbarfort/shapefilesの例のデータをここに配置しました:

これは問題を再現するはずです:

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

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

回答:


14

spTransform座標をWGS84に変換するために使用します。

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

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

プロット

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投影情報を自動的に読み取ることができます。 maptools関数は投影情報の読み取りや書き込みを行わないため、これらの詳細を手動で管理する必要があります。


これはまさに私が探していたものでした。
sBarfort

@sBarfort答えがあなたの質問を解決するなら、あなたはそれを受け入れたいかもしれません。そうすれば、他の人はそれが正しい答えであることを知るでしょう。
RK

gCentroidと同じコントロールはありませんが、SpatialPolygonはオブジェクトの図心を保持します。あなたは使用して、マトリックスとしてそれらを取り出すことができます座標(map_wgs84)
ジェフリー・エバンス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.