JSTS:如何使用 JSTS 库在 openlayer2 中合并两个以上的多边形

JSTS : How to union of more then two polygons in openlayer2 using JSTS library

我正在做一个项目,在这个项目中,如果多边形的边数 intersecting.Polygons 可能超过 100 个,我必须将它们合并,但它们必须形成联合形状。直到现在我才发现在 jSTS 中我们可以使用

a=b.union(c);

但它对我不起作用,因为它只适用于 2 个多边形。

我的密码是

 

   var strGeom = new OpenLayers.Format.WKT(geom);
   var parseGeo = reader.read(strGeom.toString());
   union = parseGeo.union(parseGeo);
   var parser = new jsts.io.OpenLayersParser();
   union = parser.write(union);
   console.log(union);
   var strGeom = new OpenLayers.Format.WKT(union);

查看 JSTS 联合的代码

https://github.com/bjornharrtell/jsts/blob/master/src/org/locationtech/jts/operation/union/UnaryUnionOp.js(第 16/17 行)

您可以传递几何集合而不是单个几何。

否则,您可以为每个多边形执行并集。

像这样

for(var i = 0; i < polygonsLength; i++) {
    geom = geom.union(polygons[i]);
}