合并多行字符串

Merging MultiLineStrings

我有几个像

这样的 OL3 MultiLineString 对象
Object { type: "MultiLineString", coordinates: Array[2] }
Object { type: "MultiLineString", coordinates: Array[3] }
Object { type: "MultiLineString", coordinates: Array[4] }
Object { type: "MultiLineString", coordinates: Array[3] }

现在我想将它们全部合并到一个新的大 MultiLineString 中(如 PostGIS ST_Union 函数)。有什么方法可以使用 OL3 来做到这一点,或者我必须处理 JS 数组?

直到更好的解决方案:

var newMultiline = {};
newMultiline.type = 'MultiLineString';
var newCoordinates = [];


for(x=0; x < routeData.length; x++ ) {

    var geom = routeData[x].geometry;
    for (z=0; z<geom.coordinates.length; z++   ) {
        newCoordinates.push( geom.coordinates[z] )
    }

}
newMultiline.coordinates = newCoordinates;

你看过图书馆吗JSTS

就个人而言,我使用这个库在两个几何体上建立并集。

var parser = new jsts.io.OL3Parser();

var a = parser.read(first_OlFeature.getGeometry());
var b = parser.read(second_OlFeature.getGeometry());

var unionGeometry = a.union(b);

var featureFromUnion = new ol.Feature().setGeometry(parser.write(unionGeometry));