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

tou*_*oor 4 javascript openlayers

我正在做一个项目,如果它们的边相交,我必须合并许多多边形。多边形可能超过 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);
Run Code Online (Sandbox Code Playgroud)

就这样

小智 6

查看JSTS union的代码

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]);
}
Run Code Online (Sandbox Code Playgroud)