Merge pull request #3423 from gberaudo/parse_extrude_and_altitudeMode
Parse extrude and altitude mode
This commit is contained in:
@@ -802,11 +802,15 @@ ol.format.KML.readLineString_ = function(node, objectStack) {
|
|||||||
'node.nodeType should be ELEMENT');
|
'node.nodeType should be ELEMENT');
|
||||||
goog.asserts.assert(node.localName == 'LineString',
|
goog.asserts.assert(node.localName == 'LineString',
|
||||||
'localName should be LineString');
|
'localName should be LineString');
|
||||||
|
var properties = ol.xml.pushParseAndPop(/** @type {Object<string,*>} */ ({}),
|
||||||
|
ol.format.KML.EXTRUDE_AND_ALTITUDE_MODE_PARSERS_, node,
|
||||||
|
objectStack);
|
||||||
var flatCoordinates =
|
var flatCoordinates =
|
||||||
ol.format.KML.readFlatCoordinatesFromNode_(node, objectStack);
|
ol.format.KML.readFlatCoordinatesFromNode_(node, objectStack);
|
||||||
if (goog.isDef(flatCoordinates)) {
|
if (goog.isDef(flatCoordinates)) {
|
||||||
var lineString = new ol.geom.LineString(null);
|
var lineString = new ol.geom.LineString(null);
|
||||||
lineString.setFlatCoordinates(ol.geom.GeometryLayout.XYZ, flatCoordinates);
|
lineString.setFlatCoordinates(ol.geom.GeometryLayout.XYZ, flatCoordinates);
|
||||||
|
lineString.setProperties(properties);
|
||||||
return lineString;
|
return lineString;
|
||||||
} else {
|
} else {
|
||||||
return undefined;
|
return undefined;
|
||||||
@@ -825,12 +829,16 @@ ol.format.KML.readLinearRing_ = function(node, objectStack) {
|
|||||||
'node.nodeType should be ELEMENT');
|
'node.nodeType should be ELEMENT');
|
||||||
goog.asserts.assert(node.localName == 'LinearRing',
|
goog.asserts.assert(node.localName == 'LinearRing',
|
||||||
'localName should be LinearRing');
|
'localName should be LinearRing');
|
||||||
|
var properties = ol.xml.pushParseAndPop(/** @type {Object<string,*>} */ ({}),
|
||||||
|
ol.format.KML.EXTRUDE_AND_ALTITUDE_MODE_PARSERS_, node,
|
||||||
|
objectStack);
|
||||||
var flatCoordinates =
|
var flatCoordinates =
|
||||||
ol.format.KML.readFlatCoordinatesFromNode_(node, objectStack);
|
ol.format.KML.readFlatCoordinatesFromNode_(node, objectStack);
|
||||||
if (goog.isDef(flatCoordinates)) {
|
if (goog.isDef(flatCoordinates)) {
|
||||||
var polygon = new ol.geom.Polygon(null);
|
var polygon = new ol.geom.Polygon(null);
|
||||||
polygon.setFlatCoordinates(ol.geom.GeometryLayout.XYZ, flatCoordinates,
|
polygon.setFlatCoordinates(ol.geom.GeometryLayout.XYZ, flatCoordinates,
|
||||||
[flatCoordinates.length]);
|
[flatCoordinates.length]);
|
||||||
|
polygon.setProperties(properties);
|
||||||
return polygon;
|
return polygon;
|
||||||
} else {
|
} else {
|
||||||
return undefined;
|
return undefined;
|
||||||
@@ -889,14 +897,17 @@ ol.format.KML.readMultiGeometry_ = function(node, objectStack) {
|
|||||||
}
|
}
|
||||||
var multiPoint = new ol.geom.MultiPoint(null);
|
var multiPoint = new ol.geom.MultiPoint(null);
|
||||||
multiPoint.setFlatCoordinates(layout, flatCoordinates);
|
multiPoint.setFlatCoordinates(layout, flatCoordinates);
|
||||||
|
ol.format.KML.setCommonGeometryProperties_(multiPoint, geometries);
|
||||||
return multiPoint;
|
return multiPoint;
|
||||||
} else if (type == ol.geom.GeometryType.LINE_STRING) {
|
} else if (type == ol.geom.GeometryType.LINE_STRING) {
|
||||||
var multiLineString = new ol.geom.MultiLineString(null);
|
var multiLineString = new ol.geom.MultiLineString(null);
|
||||||
multiLineString.setLineStrings(geometries);
|
multiLineString.setLineStrings(geometries);
|
||||||
|
ol.format.KML.setCommonGeometryProperties_(multiLineString, geometries);
|
||||||
return multiLineString;
|
return multiLineString;
|
||||||
} else if (type == ol.geom.GeometryType.POLYGON) {
|
} else if (type == ol.geom.GeometryType.POLYGON) {
|
||||||
var multiPolygon = new ol.geom.MultiPolygon(null);
|
var multiPolygon = new ol.geom.MultiPolygon(null);
|
||||||
multiPolygon.setPolygons(geometries);
|
multiPolygon.setPolygons(geometries);
|
||||||
|
ol.format.KML.setCommonGeometryProperties_(multiPolygon, geometries);
|
||||||
return multiPolygon;
|
return multiPolygon;
|
||||||
} else if (type == ol.geom.GeometryType.GEOMETRY_COLLECTION) {
|
} else if (type == ol.geom.GeometryType.GEOMETRY_COLLECTION) {
|
||||||
return new ol.geom.GeometryCollection(geometries);
|
return new ol.geom.GeometryCollection(geometries);
|
||||||
@@ -920,6 +931,9 @@ ol.format.KML.readPoint_ = function(node, objectStack) {
|
|||||||
goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT,
|
goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT,
|
||||||
'node.nodeType should be ELEMENT');
|
'node.nodeType should be ELEMENT');
|
||||||
goog.asserts.assert(node.localName == 'Point', 'localName should be Point');
|
goog.asserts.assert(node.localName == 'Point', 'localName should be Point');
|
||||||
|
var properties = ol.xml.pushParseAndPop(/** @type {Object<string,*>} */ ({}),
|
||||||
|
ol.format.KML.EXTRUDE_AND_ALTITUDE_MODE_PARSERS_, node,
|
||||||
|
objectStack);
|
||||||
var flatCoordinates =
|
var flatCoordinates =
|
||||||
ol.format.KML.readFlatCoordinatesFromNode_(node, objectStack);
|
ol.format.KML.readFlatCoordinatesFromNode_(node, objectStack);
|
||||||
if (goog.isDefAndNotNull(flatCoordinates)) {
|
if (goog.isDefAndNotNull(flatCoordinates)) {
|
||||||
@@ -927,6 +941,7 @@ ol.format.KML.readPoint_ = function(node, objectStack) {
|
|||||||
goog.asserts.assert(flatCoordinates.length == 3,
|
goog.asserts.assert(flatCoordinates.length == 3,
|
||||||
'flatCoordinates should have a length of 3');
|
'flatCoordinates should have a length of 3');
|
||||||
point.setFlatCoordinates(ol.geom.GeometryLayout.XYZ, flatCoordinates);
|
point.setFlatCoordinates(ol.geom.GeometryLayout.XYZ, flatCoordinates);
|
||||||
|
point.setProperties(properties);
|
||||||
return point;
|
return point;
|
||||||
} else {
|
} else {
|
||||||
return undefined;
|
return undefined;
|
||||||
@@ -945,6 +960,9 @@ ol.format.KML.readPolygon_ = function(node, objectStack) {
|
|||||||
'node.nodeType should be ELEMENT');
|
'node.nodeType should be ELEMENT');
|
||||||
goog.asserts.assert(node.localName == 'Polygon',
|
goog.asserts.assert(node.localName == 'Polygon',
|
||||||
'localName should be Polygon');
|
'localName should be Polygon');
|
||||||
|
var properties = ol.xml.pushParseAndPop(/** @type {Object<string,*>} */ ({}),
|
||||||
|
ol.format.KML.EXTRUDE_AND_ALTITUDE_MODE_PARSERS_, node,
|
||||||
|
objectStack);
|
||||||
var flatLinearRings = ol.xml.pushParseAndPop(
|
var flatLinearRings = ol.xml.pushParseAndPop(
|
||||||
/** @type {Array.<Array.<number>>} */ ([null]),
|
/** @type {Array.<Array.<number>>} */ ([null]),
|
||||||
ol.format.KML.FLAT_LINEAR_RINGS_PARSERS_, node, objectStack);
|
ol.format.KML.FLAT_LINEAR_RINGS_PARSERS_, node, objectStack);
|
||||||
@@ -960,6 +978,7 @@ ol.format.KML.readPolygon_ = function(node, objectStack) {
|
|||||||
}
|
}
|
||||||
polygon.setFlatCoordinates(
|
polygon.setFlatCoordinates(
|
||||||
ol.geom.GeometryLayout.XYZ, flatCoordinates, ends);
|
ol.geom.GeometryLayout.XYZ, flatCoordinates, ends);
|
||||||
|
polygon.setProperties(properties);
|
||||||
return polygon;
|
return polygon;
|
||||||
} else {
|
} else {
|
||||||
return undefined;
|
return undefined;
|
||||||
@@ -1010,6 +1029,37 @@ ol.format.KML.readStyle_ = function(node, objectStack) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reads an array of geometries and creates arrays for common geometry
|
||||||
|
* properties. Then sets them to the multi geometry.
|
||||||
|
* @param {ol.geom.MultiPoint|ol.geom.MultiLineString|ol.geom.MultiPolygon}
|
||||||
|
* multiGeometry
|
||||||
|
* @param {Array.<ol.geom.Geometry>} geometries
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
ol.format.KML.setCommonGeometryProperties_ = function(multiGeometry,
|
||||||
|
geometries) {
|
||||||
|
var ii = geometries.length;
|
||||||
|
var extrudes = new Array(geometries.length);
|
||||||
|
var altitudeModes = new Array(geometries.length);
|
||||||
|
var geometry, i, hasExtrude, hasAltitudeMode;
|
||||||
|
hasExtrude = hasAltitudeMode = false;
|
||||||
|
for (i = 0; i < ii; ++i) {
|
||||||
|
geometry = geometries[i];
|
||||||
|
extrudes[i] = geometry.get('extrude');
|
||||||
|
altitudeModes[i] = geometry.get('altitudeMode');
|
||||||
|
hasExtrude = hasExtrude || goog.isDef(extrudes[i]);
|
||||||
|
hasAltitudeMode = hasAltitudeMode || goog.isDef(altitudeModes[i]);
|
||||||
|
}
|
||||||
|
if (hasExtrude) {
|
||||||
|
multiGeometry.set('extrude', extrudes);
|
||||||
|
}
|
||||||
|
if (hasAltitudeMode) {
|
||||||
|
multiGeometry.set('altitudeMode', altitudeModes);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {Node} node Node.
|
* @param {Node} node Node.
|
||||||
* @param {Array.<*>} objectStack Object stack.
|
* @param {Array.<*>} objectStack Object stack.
|
||||||
@@ -1266,6 +1316,18 @@ ol.format.KML.EXTENDED_DATA_PARSERS_ = ol.xml.makeParsersNS(
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @const
|
||||||
|
* @type {Object.<string, Object.<string, ol.xml.Parser>>}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
ol.format.KML.EXTRUDE_AND_ALTITUDE_MODE_PARSERS_ = ol.xml.makeParsersNS(
|
||||||
|
ol.format.KML.NAMESPACE_URIS_, {
|
||||||
|
'extrude': ol.xml.makeObjectPropertySetter(ol.format.XSD.readBoolean),
|
||||||
|
'altitudeMode': ol.xml.makeObjectPropertySetter(ol.format.XSD.readString)
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @const
|
* @const
|
||||||
* @type {Object.<string, Object.<string, ol.xml.Parser>>}
|
* @type {Object.<string, Object.<string, ol.xml.Parser>>}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ goog.provide('ol.geom.Geometry');
|
|||||||
goog.provide('ol.geom.GeometryType');
|
goog.provide('ol.geom.GeometryType');
|
||||||
|
|
||||||
goog.require('goog.functions');
|
goog.require('goog.functions');
|
||||||
goog.require('ol.Observable');
|
goog.require('ol.Object');
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
goog.require('ol.proj');
|
goog.require('ol.proj');
|
||||||
|
|
||||||
@@ -50,7 +50,7 @@ ol.geom.GeometryLayout = {
|
|||||||
* Base class for vector geometries.
|
* Base class for vector geometries.
|
||||||
*
|
*
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.Observable}
|
* @extends {ol.Object}
|
||||||
* @fires change Triggered when the geometry changes.
|
* @fires change Triggered when the geometry changes.
|
||||||
* @api stable
|
* @api stable
|
||||||
*/
|
*/
|
||||||
@@ -89,7 +89,7 @@ ol.geom.Geometry = function() {
|
|||||||
this.simplifiedGeometryRevision = 0;
|
this.simplifiedGeometryRevision = 0;
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.geom.Geometry, ol.Observable);
|
goog.inherits(ol.geom.Geometry, ol.Object);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+1
-1
@@ -679,7 +679,7 @@ ol.xml.parseNode = function(parsersNS, node, objectStack, opt_this) {
|
|||||||
* @param {Node} node Node.
|
* @param {Node} node Node.
|
||||||
* @param {Array.<*>} objectStack Object stack.
|
* @param {Array.<*>} objectStack Object stack.
|
||||||
* @param {*=} opt_this The object to use as `this`.
|
* @param {*=} opt_this The object to use as `this`.
|
||||||
* @return {T|undefined} Object.
|
* @return {T} Object.
|
||||||
* @template T
|
* @template T
|
||||||
*/
|
*/
|
||||||
ol.xml.pushParseAndPop = function(
|
ol.xml.pushParseAndPop = function(
|
||||||
|
|||||||
@@ -133,6 +133,8 @@ describe('ol.format.KML', function() {
|
|||||||
' <Placemark>' +
|
' <Placemark>' +
|
||||||
' <Point>' +
|
' <Point>' +
|
||||||
' <coordinates>1,2,3</coordinates>' +
|
' <coordinates>1,2,3</coordinates>' +
|
||||||
|
' <extrude>0</extrude>' +
|
||||||
|
' <altitudeMode>absolute</altitudeMode>' +
|
||||||
' </Point>' +
|
' </Point>' +
|
||||||
' </Placemark>' +
|
' </Placemark>' +
|
||||||
'</kml>';
|
'</kml>';
|
||||||
@@ -143,6 +145,8 @@ describe('ol.format.KML', function() {
|
|||||||
var g = f.getGeometry();
|
var g = f.getGeometry();
|
||||||
expect(g).to.be.an(ol.geom.Point);
|
expect(g).to.be.an(ol.geom.Point);
|
||||||
expect(g.getCoordinates()).to.eql([1, 2, 3]);
|
expect(g.getCoordinates()).to.eql([1, 2, 3]);
|
||||||
|
expect(g.get('extrude')).to.be(false);
|
||||||
|
expect(g.get('altitudeMode')).to.be('absolute');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('can transform and read Point geometries', function() {
|
it('can transform and read Point geometries', function() {
|
||||||
@@ -338,6 +342,8 @@ describe('ol.format.KML', function() {
|
|||||||
' <Placemark>' +
|
' <Placemark>' +
|
||||||
' <LineString>' +
|
' <LineString>' +
|
||||||
' <coordinates>1,2,3 4,5,6</coordinates>' +
|
' <coordinates>1,2,3 4,5,6</coordinates>' +
|
||||||
|
' <extrude>0</extrude>' +
|
||||||
|
' <altitudeMode>absolute</altitudeMode>' +
|
||||||
' </LineString>' +
|
' </LineString>' +
|
||||||
' </Placemark>' +
|
' </Placemark>' +
|
||||||
'</kml>';
|
'</kml>';
|
||||||
@@ -348,6 +354,8 @@ describe('ol.format.KML', function() {
|
|||||||
var g = f.getGeometry();
|
var g = f.getGeometry();
|
||||||
expect(g).to.be.an(ol.geom.LineString);
|
expect(g).to.be.an(ol.geom.LineString);
|
||||||
expect(g.getCoordinates()).to.eql([[1, 2, 3], [4, 5, 6]]);
|
expect(g.getCoordinates()).to.eql([[1, 2, 3], [4, 5, 6]]);
|
||||||
|
expect(g.get('extrude')).to.be(false);
|
||||||
|
expect(g.get('altitudeMode')).to.be('absolute');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('can write XY LineString geometries', function() {
|
it('can write XY LineString geometries', function() {
|
||||||
@@ -540,6 +548,8 @@ describe('ol.format.KML', function() {
|
|||||||
'<kml xmlns="http://earth.google.com/kml/2.2">' +
|
'<kml xmlns="http://earth.google.com/kml/2.2">' +
|
||||||
' <Placemark>' +
|
' <Placemark>' +
|
||||||
' <Polygon>' +
|
' <Polygon>' +
|
||||||
|
' <extrude>0</extrude>' +
|
||||||
|
' <altitudeMode>absolute</altitudeMode>' +
|
||||||
' <outerBoundaryIs>' +
|
' <outerBoundaryIs>' +
|
||||||
' <LinearRing>' +
|
' <LinearRing>' +
|
||||||
' <coordinates>0,0,1 0,5,1 5,5,2 5,0,3</coordinates>' +
|
' <coordinates>0,0,1 0,5,1 5,5,2 5,0,3</coordinates>' +
|
||||||
@@ -556,6 +566,8 @@ describe('ol.format.KML', function() {
|
|||||||
expect(g).to.be.an(ol.geom.Polygon);
|
expect(g).to.be.an(ol.geom.Polygon);
|
||||||
expect(g.getCoordinates()).to.eql(
|
expect(g.getCoordinates()).to.eql(
|
||||||
[[[0, 0, 1], [0, 5, 1], [5, 5, 2], [5, 0, 3]]]);
|
[[[0, 0, 1], [0, 5, 1], [5, 5, 2], [5, 0, 3]]]);
|
||||||
|
expect(g.get('extrude')).to.be(false);
|
||||||
|
expect(g.get('altitudeMode')).to.be('absolute');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('can write XY Polygon geometries', function() {
|
it('can write XY Polygon geometries', function() {
|
||||||
@@ -742,9 +754,13 @@ describe('ol.format.KML', function() {
|
|||||||
' <MultiGeometry>' +
|
' <MultiGeometry>' +
|
||||||
' <Point>' +
|
' <Point>' +
|
||||||
' <coordinates>1,2,3</coordinates>' +
|
' <coordinates>1,2,3</coordinates>' +
|
||||||
|
' <extrude>0</extrude>' +
|
||||||
|
' <altitudeMode>absolute</altitudeMode>' +
|
||||||
' </Point>' +
|
' </Point>' +
|
||||||
' <Point>' +
|
' <Point>' +
|
||||||
' <coordinates>4,5,6</coordinates>' +
|
' <coordinates>4,5,6</coordinates>' +
|
||||||
|
' <extrude>1</extrude>' +
|
||||||
|
' <altitudeMode>clampToGround</altitudeMode>' +
|
||||||
' </Point>' +
|
' </Point>' +
|
||||||
' </MultiGeometry>' +
|
' </MultiGeometry>' +
|
||||||
' </Placemark>' +
|
' </Placemark>' +
|
||||||
@@ -756,6 +772,14 @@ describe('ol.format.KML', function() {
|
|||||||
var g = f.getGeometry();
|
var g = f.getGeometry();
|
||||||
expect(g).to.be.an(ol.geom.MultiPoint);
|
expect(g).to.be.an(ol.geom.MultiPoint);
|
||||||
expect(g.getCoordinates()).to.eql([[1, 2, 3], [4, 5, 6]]);
|
expect(g.getCoordinates()).to.eql([[1, 2, 3], [4, 5, 6]]);
|
||||||
|
expect(g.get('extrude')).to.be.an('array');
|
||||||
|
expect(g.get('extrude')).to.have.length(2);
|
||||||
|
expect(g.get('extrude')[0]).to.be(false);
|
||||||
|
expect(g.get('extrude')[1]).to.be(true);
|
||||||
|
expect(g.get('altitudeMode')).to.be.an('array');
|
||||||
|
expect(g.get('altitudeMode')).to.have.length(2);
|
||||||
|
expect(g.get('altitudeMode')[0]).to.be('absolute');
|
||||||
|
expect(g.get('altitudeMode')[1]).to.be('clampToGround');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('can write MultiPoint geometries', function() {
|
it('can write MultiPoint geometries', function() {
|
||||||
@@ -790,6 +814,8 @@ describe('ol.format.KML', function() {
|
|||||||
' <Placemark>' +
|
' <Placemark>' +
|
||||||
' <MultiGeometry>' +
|
' <MultiGeometry>' +
|
||||||
' <LineString>' +
|
' <LineString>' +
|
||||||
|
' <extrude>0</extrude>' +
|
||||||
|
' <altitudeMode>absolute</altitudeMode>' +
|
||||||
' <coordinates>1,2,3 4,5,6</coordinates>' +
|
' <coordinates>1,2,3 4,5,6</coordinates>' +
|
||||||
' </LineString>' +
|
' </LineString>' +
|
||||||
' <LineString>' +
|
' <LineString>' +
|
||||||
@@ -806,6 +832,14 @@ describe('ol.format.KML', function() {
|
|||||||
expect(g).to.be.an(ol.geom.MultiLineString);
|
expect(g).to.be.an(ol.geom.MultiLineString);
|
||||||
expect(g.getCoordinates()).to.eql(
|
expect(g.getCoordinates()).to.eql(
|
||||||
[[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]);
|
[[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]);
|
||||||
|
expect(g.get('extrude')).to.be.an('array');
|
||||||
|
expect(g.get('extrude')).to.have.length(2);
|
||||||
|
expect(g.get('extrude')[0]).to.be(false);
|
||||||
|
expect(g.get('extrude')[1]).to.be(undefined);
|
||||||
|
expect(g.get('altitudeMode')).to.be.an('array');
|
||||||
|
expect(g.get('altitudeMode')).to.have.length(2);
|
||||||
|
expect(g.get('altitudeMode')[0]).to.be('absolute');
|
||||||
|
expect(g.get('altitudeMode')[1]).to.be(undefined);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('can write MultiLineString geometries', function() {
|
it('can write MultiLineString geometries', function() {
|
||||||
@@ -840,6 +874,8 @@ describe('ol.format.KML', function() {
|
|||||||
' <Placemark>' +
|
' <Placemark>' +
|
||||||
' <MultiGeometry>' +
|
' <MultiGeometry>' +
|
||||||
' <Polygon>' +
|
' <Polygon>' +
|
||||||
|
' <extrude>0</extrude>' +
|
||||||
|
' <altitudeMode>absolute</altitudeMode>' +
|
||||||
' <outerBoundaryIs>' +
|
' <outerBoundaryIs>' +
|
||||||
' <LinearRing>' +
|
' <LinearRing>' +
|
||||||
' <coordinates>0,0,0 0,1,0 1,1,0 1,0,0</coordinates>' +
|
' <coordinates>0,0,0 0,1,0 1,1,0 1,0,0</coordinates>' +
|
||||||
@@ -865,6 +901,14 @@ describe('ol.format.KML', function() {
|
|||||||
expect(g.getCoordinates()).to.eql(
|
expect(g.getCoordinates()).to.eql(
|
||||||
[[[[0, 0, 0], [0, 1, 0], [1, 1, 0], [1, 0, 0]]],
|
[[[[0, 0, 0], [0, 1, 0], [1, 1, 0], [1, 0, 0]]],
|
||||||
[[[3, 0, 0], [3, 1, 0], [4, 1, 0], [4, 0, 0]]]]);
|
[[[3, 0, 0], [3, 1, 0], [4, 1, 0], [4, 0, 0]]]]);
|
||||||
|
expect(g.get('extrude')).to.be.an('array');
|
||||||
|
expect(g.get('extrude')).to.have.length(2);
|
||||||
|
expect(g.get('extrude')[0]).to.be(false);
|
||||||
|
expect(g.get('extrude')[1]).to.be(undefined);
|
||||||
|
expect(g.get('altitudeMode')).to.be.an('array');
|
||||||
|
expect(g.get('altitudeMode')).to.have.length(2);
|
||||||
|
expect(g.get('altitudeMode')[0]).to.be('absolute');
|
||||||
|
expect(g.get('altitudeMode')[1]).to.be(undefined);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('can write MultiPolygon geometries', function() {
|
it('can write MultiPolygon geometries', function() {
|
||||||
|
|||||||
Reference in New Issue
Block a user