2015-04-22 35 views
1

我有两个shapefile - 我们称它们为shp1.shp和shp2.shp - 并且我想创建一个新的shapefile文件,它们之间有重叠。R中的空间加入

本质上,我试图确定shp1中的哪些地理区域属于shp2。大多数shp1多边形将包含shp2多边形,并且一些shp2多边形将落入多个shp1多边形内。

如果我开始

library(sp) large_list <- over(shp1,shp2, returnList = TRUE)

这让我共享地域的大名单。但是,如何获取该列表并使用它来执行空间连接,并创建一个新的shapefile?

我对R相对较新(特别是GIS),任何帮助将不胜感激。

+1

是[这](http://stackoverflow.com/a/23138742/980833)你在找什么呢? (请注意,即使它是作为** raster **包的一部分进行分发的,union()不会将两个“SpatialPolygons”对象作为参数。) –

+1

@ JoshO'Brien当我这样做时,出现以下错误:错误在RGEOSBinTopoFunc(spgeom1,spgeom2,byid,id,drop_lower_td,“rgeos_difference”): TopologyException:输入几何0是无效的:自相交在点或近点-120.76777118577075 37.538496877470358在-120.76777118577075 37.538496877470358 –

+0

你可以归零足以产生一个最小可重现的例子,你可以与我们分享?否则,除非有人遇到了完全相同的错误信息,并记得是什么原因造成的,否则我们将无法提供帮助。 (我确实有一种预感,那可能是导致我在另一个(未被接受的)答案中引入一个“eps”参数的相同问题)。 –

回答

0

您可能会发现在功能intersect答案,从包装raster

library(raster) 
newshape <- intersect(shape1, shape2)