【问题标题】:Clipping polygons in R在 R 中裁剪多边形
【发布时间】:2015-10-01 11:50:35
【问题描述】:

我有两个带有地理编码的数据框。第一个看起来像这样:

spoints<- data.frame(x=c(1,2,3,4,5,6),y=c(6,5,4,3,2,1)) 

点映射一个国家。

我的第二个数据框如下所示:

polyData<-data.frame(x=c(1,2,3,4,5,6,7,8,9,10),y=c(10,9,8,7,6,5,4,3,2,1),
col=c("a","b","c",etc.), id=c("a","b","c",etc.), average=c(44,33,66,55,etc))

这个包含创建 voronoi 簇/多边形的坐标。但这些都是重叠在海洋中的多边形草图。所以,我想避免这种情况,让他们在国界停下来。

但是现在,我在使用 GPC 库或其他库时遇到了困难。

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 您可以使用rgeos 库吗? gIntersection 函数就是你想要的。
  • 那么,它会使用两个数据框并指示重叠吗?

标签: r gpc


【解决方案1】:

这是一个使用我在评论中提到的rgeos 库的示例。

library(rgeos)
library(sp)

#making set of polygons for illustration
d1 <- readWKT("POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))")
Tri <- c("POLYGON((0.3 0.6, 0.6 0.6, 0.5 1.3, 0.3 0.6))",
         "POLYGON((0.7 0.3, 1.3 0.3, 1.1 0.6, 0.7 0.3))")
d2 <- readWKT(text=paste0("GEOMETRYCOLLECTION(",paste0(Tri,collapse=","),")"),
      id=c("a","b"))

plot(d1,xlim=c(0, 1.4), ylim=c(0, 1.4))
plot(d2,col='red',add=TRUE)

#now taking the intersection
d3 <- gIntersection(d1,d2,byid=TRUE)
plot(d3,col='blue',add=TRUE)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    相关资源
    最近更新 更多