我在秘鲁的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给出的值似乎没有了。
答案 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")