Skip to content

Documentation / @geoverse/editor-core / splitPolygonByLine

Function: splitPolygonByLine()

ts
function splitPolygonByLine(polygon, line): Polygon[];

Defined in: packages/editor-core/src/geometry/jsts.ts:136

用一条线把多边形拆成多块(JSTS 稳健):只用外环 boundary∪line → polygonize → 过滤落在外环外的碎片。含洞面:若把洞环也喂给 polygonize,洞会被当成独立面生成 新多边形(且原本的洞语义丢失);故洞环不参与拆分拓扑,改在最后让每块与原面(含洞) 求交,把洞裁回到所属块——穿洞则各块保留半洞、洞整体在某块内则该块保留为洞。

切分约束(按设计):切割线必须完整贯穿外环(外边界一侧进、另一侧出)才能把面 分成 2+ 块。终点落在面内或洞内(未出对侧)、或仅进入洞而未穿出,都不构成切分, 返回 SPLIT_NO_EFFECT——这是正确行为而非缺陷;"穿过洞"既非必要(不碰洞的贯穿线照样切) 也非充分(进洞但没穿出对侧外环仍不切)。不相交/未拆开/几何异常均以 EditError 收场。

Parameters

polygon

Polygon

line

LineString

Returns

Polygon[]