我试图在R中覆盖两种不同类型的地理空间数据(我无法访问ArcMap,也无法在我的工作站上安装任何其他软件)。我能够毫无问题地绘制多边形,但是我在这些多边形上绘制点时遇到了麻烦。这些点似乎是相对于不同的坐标系绘制的。如果我将包含所有绘制数据的图形窗口调整大小,则这些点不会保持相对于基础多边形的恒定位置(尽管所有多边形层保持相对于彼此的恒定对齐)。我的猜测是我在从.gdb文件导入点时做错了什么,但我不确定是什么。我已经尝试更改.gdb文件上的投影以匹配我的shapefile中的投影,但这似乎没有任何效果。
注意:我的一个图层有很多多边形。为了加快加载速度,我使用readShapeSpatial导入了数据,然后将生成的对象保存为.rdata文件。
代码如下:
require(RColorBrewer)
require(GISTools)
require(maps)
require(rgdal)
require(maptools)
# latitude and longitude limits
lat_lims = c( 26.2, 30.8)
long_lims = c(-98.2, -88.0)
load("map2100a1Hi5.rdata")
plot(map2100a1Hi5, lty=0, ylim=lat_lims, xlim=long_lims)
par(new=T)
basemap = readShapeSpatial("cb_2013_us_state_500k.shp")
plot(basemap, xlim = long_lims, ylim = lat_lims)
projection = CRS("+proj=longlat +datum=NAD83")
layers = ogrListLayers("RefineriesGulfCat1.gdb")
refineries = readOGR("RefineriesGulfCat1.gdb", layer=layers[4])
refineries = spTransform(refineries, projection)
par(new=T)
plot(refineries, ylim=lat_lims, xlim=long_lims)
答案 0 :(得分:0)
我最终将这些点转换为SpatialPoints,这使得它们能够正确绘制。不确定为什么这是必要的,但它确实有效。
plot(SpatialPoints(refineries@coords), ylims=lat_lims, xlims=long_lims)