【发布时间】:2015-02-09 22:27:23
【问题描述】:
我正在尝试在 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)
【问题讨论】:
-
你试过
plot(basemap, xlim = long_lims, ylim = lat_lims); plot(refineries, add = T)吗?