Mam kilka obiektów wielowarstwowych OL3

Object { type: "MultiLineString", coordinates: Array[2] }
Object { type: "MultiLineString", coordinates: Array[3] }
Object { type: "MultiLineString", coordinates: Array[4] }
Object { type: "MultiLineString", coordinates: Array[3] }

Teraz chcę połączyć je w nowym wielkim multilinestring (jak postgis ST_Union Funkcja). Czy istnieje jakiś sposób, aby to zrobić za pomocą OL3 lub muszę poradzić sobie z tablicami JS?

0
Magno C 15 luty 2017, 15:42

2 odpowiedzi

Najlepsza odpowiedź

Czy spojrzysz na bibliotekę JSTS

Osobiście używam tej biblioteki, aby stworzyć związek z dwóch geometrii.

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));
1
FatAl 15 luty 2017, 23:16

Dopóki lepsze rozwiązanie:

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;
0
Magno C 15 luty 2017, 13:21