You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 22:30:33