如何使用polyclip::polysimplify处理多边形自相交问题
消除ggplot2州多边形自相交的问题
问题描述
我正尝试消除从ggplot2获取的州多边形中的自相交情况,使用的代码如下:
library("ggplot2") states <- map_data("state") states<-states[states$region=="washington"|states$region=="oregon"|states$region=="california",] statesPoly<-Polygon(as.matrix(cbind(states$long,states$lat)),hole = F) crdref <- CRS('+proj=longlat +datum=WGS84') p1 <- SpatialPolygons(list(Polygons(list(statesPoly), "p1")),proj4string=crdref) plot(p1)
运行后得到的多边形存在自相交问题,效果如下:
尝试解决的困境
我了解polyclip::polysimplify函数可用于处理这类自相交问题,但尝试多种调用方式均无法正常运行:
library(polyclip) polysimplify(list(cbind(states$long,states$lat))) polysimplify(list(statesPoly)) polysimplify(list(p1))
每次调用都会返回错误:
Error in polysimplify(list(matrix(cbind(states$long, states$lat)))) :
Argument A should be a list of lists, each containing vectors x,y
即使将参数嵌套多层列表(如polysimplify(list(list(p1))))也无法解决这个错误。
内容的提问来源于stack exchange,提问作者Dylan_Gomes
相关产品推荐
相关产品推荐

