2017-02-15 16 views
0

У меня есть несколько объектов OL3 MultiLineString какОбъединения MultiLineStrings

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?

+0

Какой тип объекта MultiLineString? Это 'JSONObject' или' ol.geom.MultiLineString' –

+0

Я думаю, что это «ol.geom.Geometry» –

ответ

1

Вы смотрите в библиотеке JSTS

Personnaly, я использую эту библиотеку, чтобы сделать союз на две геометрии.

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)); 
+0

Очень хорошо. Благодарю. –

0

До лучшего решения:

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;