麻烦将UTM转换为南半球的纬度

时间:2013-04-18 09:58:15

标签: latitude-longitude coordinate-transformation utm

我在秘鲁的UTM 19区有大约40分,我想转换为lat / long投射到Google Earth上。我在使用PBSmapping时遇到了一些问题,似乎无法找到解决方案。我已经搜索了论坛并尝试了几种不同的方法,包括proj4中的项目命令,但仍然无法使其工作。这是我目前编写的代码

library(PBSmapping)
#just two example UTM coordinates
data<-as.data.frame(matrix(c(214012,197036,8545520,8567292),nrow=2))
attr(data,"projection") <- "UTM"
attr(data, "zone") <- 19
colnames(data)<-c("X","Y")
convUL(data,km=FALSE)

相应的纬度/长度应该位于介于-12.9XXXXX和-13.0XXXXX之间,长度介于-71.8XXXX和-71.4XXXX之间。 convUL给出的值似乎没有了。

1 个答案:

答案 0 :(得分:0)

获得有效的坐标对后,您可以执行以下操作:

library(rgdal)
data <- data.frame(id = c(1:2), x = c(214012,197036) , y = c(8545520,8567292))
coordinates(data) = ~x+y

Asign投影

# Use the appropriate EPSG Code
proj4string(data) = CRS('+init=epsg:24891') # 24891 or 24893

转换为地理坐标 enter code here data_wgs84&lt; - spTransform(data,CRS('+ init = epsg:4326'))

获取一些有效的背景数据以将其绘制成

# Country data
package(dismo)
peru <-getData('GADM', country='PER', level=0)
plot(peru, axes = T)
plot(data, add = T)

编写您的KML文件

# Export kml
tmpd <- 'D:\\'
writeOGR(data_wgs84, paste(tmpd, "peru_data.kml", sep="/"), 'id', driver="KML")