【发布时间】:2018-01-22 13:13:48
【问题描述】:
我正在尝试使用 plot() 函数覆盖 2 个空间对象。我知道 2 个对象(SpatialLinesDataFrame 和 SpatialPolygonsDataFrame 类)的投影需要相同,以便在同一个图中将它们可视化。我发现了类似的问题here 和here,但这些都不能帮助我实现我想要实现的目标。
这是 SpatialPolygonsDataFrame 的编码。 (v.map 是 .kml 文件的列表, loccoor 是存储位置和对应的 x 和 y 坐标的对象):
map.l<-list()
for (i in 1:length(v.map)){
ll<-ogrListLayers(paste(loccoor,"/",v.map[i],".kml",sep=""))
shp<-readOGR(paste(loccoor,"/",v.map[i],".kml",sep=""),layer=ll)
map<-spTransform(shp, CRS("+proj=longlat +datum=WGS84"))
map.l[[i]]<-map
}
plot(map.l[[1]],xlim=c(min(coor[,3]),max(coor[,3])),
ylim=c(min(coor[,2]),max(coor[,2])))
for (i in 2:length(v.map)){
plot(map.l[[i]],xlim=c(min(coor[,3]),max(coor[,3])),
ylim=c(min(coor[,2]),max(coor[,2])),add=T)
}
投影 SpatialPolygonsDataFrame "map": "+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0"
投影 SpatialLinesDataFrame “轮廓”:"+proj=aeqd +ellps=WGS84 +lon_0=-XX.XXXXX +lat_0=XX.XXXXX"。
我想转换“地图”对象的投影以匹配“轮廓”的投影。简单地用“轮廓”对象的投影替换“地图”对象的"CRS("+proj=longlat +datum=WGS84")" 似乎不起作用,因为那时多边形不再被绘制(可见)。
对此的任何想法将不胜感激!
【问题讨论】:
-
地图和等高线是否都可以独立绘制?
-
是的,没错。
标签: r map-projections