Fire change events for multi-part geometries
This commit is contained in:
@@ -315,8 +315,9 @@ ol.parser.GeoJSON.prototype.encodeGeometry_ = function(geometry) {
|
||||
*/
|
||||
ol.parser.GeoJSON.prototype.encodeGeometryCollection_ = function(collection) {
|
||||
var geometries = [];
|
||||
for (var i = 0, ii = collection.components.length; i < ii; ++i) {
|
||||
geometries.push(this.encodeGeometry_(collection.components[i]));
|
||||
var components = collection.getComponents();
|
||||
for (var i = 0, ii = components.length; i < ii; ++i) {
|
||||
geometries.push(this.encodeGeometry_(components[i]));
|
||||
}
|
||||
return /** @type {GeoJSONGeometryCollection} */({
|
||||
type: 'GeometryCollection',
|
||||
|
||||
@@ -159,8 +159,9 @@ ol.parser.GPX = function(opt_options) {
|
||||
if (geom instanceof ol.geom.LineString) {
|
||||
this.writeNode('trkseg', feature.getGeometry(), undefined, node);
|
||||
} else if (geom instanceof ol.geom.MultiLineString) {
|
||||
for (i = 0, ii = geom.components.length; i < ii; ++i) {
|
||||
this.writeNode('trkseg', geom.components[i], undefined, node);
|
||||
var components = geom.getComponents();
|
||||
for (i = 0, ii = components.length; i < ii; ++i) {
|
||||
this.writeNode('trkseg', components[i], undefined, node);
|
||||
}
|
||||
} else if (geom instanceof ol.geom.Polygon) {
|
||||
rings = geom.getRings();
|
||||
|
||||
@@ -823,8 +823,9 @@ ol.parser.KML = function(opt_options) {
|
||||
},
|
||||
'MultiGeometry': function(geometry) {
|
||||
var node = this.createElementNS('MultiGeometry');
|
||||
for (var i = 0, ii = geometry.components.length; i < ii; ++i) {
|
||||
this.writeNode('_geometry', geometry.components[i], null, node);
|
||||
var components = geometry.getComponents();
|
||||
for (var i = 0, ii = components.length; i < ii; ++i) {
|
||||
this.writeNode('_geometry', components[i], null, node);
|
||||
}
|
||||
return node;
|
||||
},
|
||||
|
||||
@@ -340,8 +340,9 @@ ol.parser.ogc.GML = function(opt_options) {
|
||||
},
|
||||
'MultiPoint': function(geometry) {
|
||||
var node = this.createElementNS('gml:MultiPoint');
|
||||
for (var i = 0, ii = geometry.components.length; i < ii; ++i) {
|
||||
this.writeNode('pointMember', geometry.components[i], null, node);
|
||||
var components = geometry.getComponents();
|
||||
for (var i = 0, ii = components.length; i < ii; ++i) {
|
||||
this.writeNode('pointMember', components[i], null, node);
|
||||
}
|
||||
return node;
|
||||
},
|
||||
@@ -352,9 +353,9 @@ ol.parser.ogc.GML = function(opt_options) {
|
||||
},
|
||||
'MultiLineString': function(geometry) {
|
||||
var node = this.createElementNS('gml:MultiLineString');
|
||||
for (var i = 0, ii = geometry.components.length; i < ii; ++i) {
|
||||
this.writeNode('lineStringMember', geometry.components[i], null,
|
||||
node);
|
||||
var components = geometry.getComponents();
|
||||
for (var i = 0, ii = components.length; i < ii; ++i) {
|
||||
this.writeNode('lineStringMember', components[i], null, node);
|
||||
}
|
||||
return node;
|
||||
},
|
||||
@@ -365,8 +366,9 @@ ol.parser.ogc.GML = function(opt_options) {
|
||||
},
|
||||
'MultiPolygon': function(geometry) {
|
||||
var node = this.createElementNS('gml:MultiPolygon');
|
||||
for (var i = 0, ii = geometry.components.length; i < ii; ++i) {
|
||||
this.writeNode('polygonMember', geometry.components[i], null, node);
|
||||
var components = geometry.getComponents();
|
||||
for (var i = 0, ii = components.length; i < ii; ++i) {
|
||||
this.writeNode('polygonMember', components[i], null, node);
|
||||
}
|
||||
return node;
|
||||
},
|
||||
@@ -377,8 +379,9 @@ ol.parser.ogc.GML = function(opt_options) {
|
||||
},
|
||||
'GeometryCollection': function(geometry) {
|
||||
var node = this.createElementNS('gml:GeometryCollection');
|
||||
for (var i = 0, ii = geometry.components.length; i < ii; ++i) {
|
||||
this.writeNode('geometryMember', geometry.components[i], null, node);
|
||||
var components = geometry.getComponents();
|
||||
for (var i = 0, ii = components.length; i < ii; ++i) {
|
||||
this.writeNode('geometryMember', components[i], null, node);
|
||||
}
|
||||
return node;
|
||||
},
|
||||
|
||||
@@ -349,8 +349,9 @@ ol.parser.ogc.GML_v3 = function(opt_options) {
|
||||
},
|
||||
'MultiCurve': function(geometry) {
|
||||
var node = this.createElementNS('gml:MultiCurve');
|
||||
for (var i = 0, len = geometry.components.length; i < len; ++i) {
|
||||
this.writeNode('curveMember', geometry.components[i], null, node);
|
||||
var components = geometry.getComponents();
|
||||
for (var i = 0, len = components.length; i < len; ++i) {
|
||||
this.writeNode('curveMember', components[i], null, node);
|
||||
}
|
||||
return node;
|
||||
},
|
||||
@@ -365,8 +366,9 @@ ol.parser.ogc.GML_v3 = function(opt_options) {
|
||||
},
|
||||
'MultiSurface': function(geometry) {
|
||||
var node = this.createElementNS('gml:MultiSurface');
|
||||
for (var i = 0, len = geometry.components.length; i < len; ++i) {
|
||||
this.writeNode('surfaceMember', geometry.components[i], null, node);
|
||||
var components = geometry.getComponents();
|
||||
for (var i = 0, len = components.length; i < len; ++i) {
|
||||
this.writeNode('surfaceMember', components[i], null, node);
|
||||
}
|
||||
return node;
|
||||
},
|
||||
|
||||
@@ -171,8 +171,9 @@ ol.parser.WKT.prototype.encodePoint_ = function(geom) {
|
||||
*/
|
||||
ol.parser.WKT.prototype.encodeMultiPoint_ = function(geom) {
|
||||
var array = [];
|
||||
for (var i = 0, ii = geom.components.length; i < ii; ++i) {
|
||||
array.push('(' + this.encodePoint_.apply(this, [geom.components[i]]) + ')');
|
||||
var components = geom.getComponents();
|
||||
for (var i = 0, ii = components.length; i < ii; ++i) {
|
||||
array.push('(' + this.encodePoint_.apply(this, [components[i]]) + ')');
|
||||
}
|
||||
return array.join(',');
|
||||
};
|
||||
@@ -185,8 +186,9 @@ ol.parser.WKT.prototype.encodeMultiPoint_ = function(geom) {
|
||||
*/
|
||||
ol.parser.WKT.prototype.encodeGeometryCollection_ = function(geom) {
|
||||
var array = [];
|
||||
for (var i = 0, ii = geom.components.length; i < ii; ++i) {
|
||||
array.push(this.encode_.apply(this, [geom.components[i]]));
|
||||
var components = geom.getComponents();
|
||||
for (var i = 0, ii = components.length; i < ii; ++i) {
|
||||
array.push(this.encode_.apply(this, [components[i]]));
|
||||
}
|
||||
return array.join(',');
|
||||
};
|
||||
@@ -214,9 +216,10 @@ ol.parser.WKT.prototype.encodeLineString_ = function(geom) {
|
||||
*/
|
||||
ol.parser.WKT.prototype.encodeMultiLineString_ = function(geom) {
|
||||
var array = [];
|
||||
for (var i = 0, ii = geom.components.length; i < ii; ++i) {
|
||||
var components = geom.getComponents();
|
||||
for (var i = 0, ii = components.length; i < ii; ++i) {
|
||||
array.push('(' + this.encodeLineString_.apply(this,
|
||||
[geom.components[i]]) + ')');
|
||||
[components[i]]) + ')');
|
||||
}
|
||||
return array.join(',');
|
||||
};
|
||||
@@ -245,9 +248,9 @@ ol.parser.WKT.prototype.encodePolygon_ = function(geom) {
|
||||
*/
|
||||
ol.parser.WKT.prototype.encodeMultiPolygon_ = function(geom) {
|
||||
var array = [];
|
||||
for (var i = 0, ii = geom.components.length; i < ii; ++i) {
|
||||
array.push('(' + this.encodePolygon_.apply(this,
|
||||
[geom.components[i]]) + ')');
|
||||
var components = geom.getComponents();
|
||||
for (var i = 0, ii = components.length; i < ii; ++i) {
|
||||
array.push('(' + this.encodePolygon_.apply(this, [components[i]]) + ')');
|
||||
}
|
||||
return array.join(',');
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user