r - 如何在 R 特例非洲中将 UTM 坐标转换为纬度和经度
问题描述
您好,我从这里尝试了这段代码如何 像这样在 R 中将 UTM 坐标转换为纬度和经度
SP <- SpatialPoints(cbind(457500, 9347500))
sputm <- SpatialPoints(SP, proj4string=CRS("+proj=utm +zone=35M +datum=WGS84"))
spgeo <- spTransform(sputm, CRS("+proj=longlat +datum=WGS84"))
有了这个结果
spgeo
#SpatialPoints:
# coords.x1 coords.x2
#[1,] 23.25527 84.16145
#Coordinate Reference System (CRS) arguments: +proj=longlat +datum=WGS84 +no_defs
但这是错误的。结果应该是 lat=-5.90303 long=26.616044
这段代码有什么问题导致结果如此不同谢谢你的帮助。
解决方案
您必须使用+zone=35 +south
而不是+zone=35M
.
library(rgdal)
SP <- SpatialPoints(cbind(457500, 9347500))
sputm <- SpatialPoints(SP, proj4string=CRS("+proj=utm +zone=35 +south +datum=WGS84"))
spTransform(sputm, CRS("+proj=longlat +datum=WGS84"))
#SpatialPoints:
# coords.x1 coords.x2
#[1,] 26.61604 -5.90303
#Coordinate Reference System (CRS) arguments: +proj=longlat +datum=WGS84
#+ellps=WGS84 +towgs84=0,0,0