Merge pull request #1294 from bartvde/gmlgeom
GML parser should write out all geometry attributes and respect their names (r=@ahocevar)
This commit is contained in:
@@ -538,9 +538,6 @@
|
|||||||
* will be automatically configured from the GML.
|
* will be automatically configured from the GML.
|
||||||
* @property {Array.<string>|string|undefined} featureType The local
|
* @property {Array.<string>|string|undefined} featureType The local
|
||||||
* (without prefix) feature typeName(s).
|
* (without prefix) feature typeName(s).
|
||||||
* @property {string|undefined} geometryName Name of geometry element.
|
|
||||||
* Defaults to `geometry`. If null, it will be set on <read> when the
|
|
||||||
* first geometry is parsed.
|
|
||||||
* @property {boolean|undefined} multiCurve Write gml:MultiCurve instead of
|
* @property {boolean|undefined} multiCurve Write gml:MultiCurve instead of
|
||||||
* gml:MultiLineString. Since the latter is deprecated in GML 3, the
|
* gml:MultiLineString. Since the latter is deprecated in GML 3, the
|
||||||
* default is `true`. This only applies to GML version 3.
|
* default is `true`. This only applies to GML version 3.
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ ol.parser.ogc.Filter_v1_0_0.prototype.writeSpatial_ = function(filter, name) {
|
|||||||
} else {
|
} else {
|
||||||
var child;
|
var child;
|
||||||
if (geom !== null) {
|
if (geom !== null) {
|
||||||
child = this.writeNode('_geometry', geom,
|
child = this.writeNode('_geometry', {value: geom},
|
||||||
this.gml_.featureNS).firstChild;
|
this.gml_.featureNS).firstChild;
|
||||||
} else if (bbox.length === 4) {
|
} else if (bbox.length === 4) {
|
||||||
child = this.writeNode('Box', bbox,
|
child = this.writeNode('Box', bbox,
|
||||||
|
|||||||
@@ -224,7 +224,7 @@ ol.parser.ogc.Filter_v1_1_0.prototype.writeSpatial_ = function(filter, name) {
|
|||||||
} else {
|
} else {
|
||||||
var child;
|
var child;
|
||||||
if (geom !== null) {
|
if (geom !== null) {
|
||||||
child = this.writeNode('_geometry', geom,
|
child = this.writeNode('_geometry', {value: geom},
|
||||||
this.gml_.featureNS).firstChild;
|
this.gml_.featureNS).firstChild;
|
||||||
} else if (bbox.length === 4) {
|
} else if (bbox.length === 4) {
|
||||||
child = this.writeNode('Envelope', bbox,
|
child = this.writeNode('Envelope', bbox,
|
||||||
|
|||||||
@@ -317,10 +317,10 @@ ol.parser.ogc.GML = function(opt_options) {
|
|||||||
obj.features.push(feature);
|
obj.features.push(feature);
|
||||||
},
|
},
|
||||||
'_geometry': function(node, obj) {
|
'_geometry': function(node, obj) {
|
||||||
if (!this.geometryName) {
|
var local = node.localName || node.nodeName.split(':').pop();
|
||||||
this.geometryName = node.nodeName.split(':').pop();
|
|
||||||
}
|
|
||||||
this.readChildNodes(node, obj);
|
this.readChildNodes(node, obj);
|
||||||
|
obj.properties[local] = this.createGeometry({geometry: obj.geometry});
|
||||||
|
delete obj.geometry;
|
||||||
},
|
},
|
||||||
'_attribute': function(node, obj) {
|
'_attribute': function(node, obj) {
|
||||||
var local = node.localName || node.nodeName.split(':').pop();
|
var local = node.localName || node.nodeName.split(':').pop();
|
||||||
@@ -387,7 +387,8 @@ ol.parser.ogc.GML = function(opt_options) {
|
|||||||
},
|
},
|
||||||
'geometryMember': function(geometry) {
|
'geometryMember': function(geometry) {
|
||||||
var node = this.createElementNS('gml:geometryMember');
|
var node = this.createElementNS('gml:geometryMember');
|
||||||
var child = this.writeNode('_geometry', geometry, this.featureNS);
|
var child = this.writeNode('_geometry', {value: geometry},
|
||||||
|
this.featureNS);
|
||||||
node.appendChild(child.firstChild);
|
node.appendChild(child.firstChild);
|
||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
@@ -418,23 +419,25 @@ ol.parser.ogc.GML = function(opt_options) {
|
|||||||
if (goog.isDef(fid)) {
|
if (goog.isDef(fid)) {
|
||||||
this.setAttributeNS(node, this.defaultNamespaceURI, 'fid', fid);
|
this.setAttributeNS(node, this.defaultNamespaceURI, 'fid', fid);
|
||||||
}
|
}
|
||||||
if (feature.getGeometry() !== null) {
|
var attributes = feature.getAttributes();
|
||||||
this.writeNode('_geometry', feature.getGeometry(), this.featureNS,
|
|
||||||
node);
|
|
||||||
}
|
|
||||||
var attributes = feature.getAttributes(true);
|
|
||||||
for (var name in attributes) {
|
for (var name in attributes) {
|
||||||
var value = attributes[name];
|
var value = attributes[name];
|
||||||
if (goog.isDefAndNotNull(value)) {
|
if (goog.isDefAndNotNull(value)) {
|
||||||
this.writeNode('_attribute', {name: name, value: value},
|
if (value instanceof ol.geom.Geometry) {
|
||||||
this.featureNS, node);
|
this.writeNode('_geometry', {name: name, value: value},
|
||||||
|
this.featureNS, node);
|
||||||
|
} else {
|
||||||
|
this.writeNode('_attribute', {name: name, value: value},
|
||||||
|
this.featureNS, node);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return node;
|
return node;
|
||||||
},
|
},
|
||||||
'_geometry': function(geometry) {
|
'_geometry': function(obj) {
|
||||||
var node = this.createElementNS('feature:' + this.geometryName,
|
var node = this.createElementNS('feature:' + obj.name,
|
||||||
this.featureNS);
|
this.featureNS);
|
||||||
|
var geometry = obj.value;
|
||||||
var type = geometry.getType(), child;
|
var type = geometry.getType(), child;
|
||||||
if (type === ol.geom.GeometryType.POINT) {
|
if (type === ol.geom.GeometryType.POINT) {
|
||||||
child = this.writeNode('Point', geometry, null, node);
|
child = this.writeNode('Point', geometry, null, node);
|
||||||
|
|||||||
@@ -22,9 +22,10 @@ ol.parser.ogc.GML_v3 = function(opt_options) {
|
|||||||
'http://schemas.opengis.net/gml/3.1.1/profiles/gmlsfProfile/' +
|
'http://schemas.opengis.net/gml/3.1.1/profiles/gmlsfProfile/' +
|
||||||
'1.0.0/gmlsf.xsd';
|
'1.0.0/gmlsf.xsd';
|
||||||
goog.base(this, opt_options);
|
goog.base(this, opt_options);
|
||||||
this.featureNSWiters_['_geometry'] = function(geometry) {
|
this.featureNSWiters_['_geometry'] = function(obj) {
|
||||||
var node = this.createElementNS('feature:' + this.geometryName,
|
var node = this.createElementNS('feature:' + obj.name,
|
||||||
this.featureNS);
|
this.featureNS);
|
||||||
|
var geometry = obj.value;
|
||||||
var type = geometry.getType(), child;
|
var type = geometry.getType(), child;
|
||||||
if (type === ol.geom.GeometryType.POINT) {
|
if (type === ol.geom.GeometryType.POINT) {
|
||||||
child = this.writeNode('Point', geometry, null, node);
|
child = this.writeNode('Point', geometry, null, node);
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ describe('ol.parser.gml_v2', function() {
|
|||||||
parser.applyWriteOptions(obj);
|
parser.applyWriteOptions(obj);
|
||||||
var geom = parser.createGeometry({geometry: obj.geometry});
|
var geom = parser.createGeometry({geometry: obj.geometry});
|
||||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||||
[geom]).firstChild;
|
[{value: geom}]).firstChild;
|
||||||
delete parser.srsName;
|
delete parser.srsName;
|
||||||
delete parser.axisOrientation;
|
delete parser.axisOrientation;
|
||||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||||
@@ -50,7 +50,7 @@ describe('ol.parser.gml_v2', function() {
|
|||||||
var geom = parser.createGeometry({geometry: obj.geometry});
|
var geom = parser.createGeometry({geometry: obj.geometry});
|
||||||
parser.applyWriteOptions(obj);
|
parser.applyWriteOptions(obj);
|
||||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||||
[geom]).firstChild;
|
[{value: geom}]).firstChild;
|
||||||
delete parser.srsName;
|
delete parser.srsName;
|
||||||
delete parser.axisOrientation;
|
delete parser.axisOrientation;
|
||||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||||
@@ -80,7 +80,7 @@ describe('ol.parser.gml_v2', function() {
|
|||||||
var geom = parser.createGeometry({geometry: obj.geometry});
|
var geom = parser.createGeometry({geometry: obj.geometry});
|
||||||
parser.applyWriteOptions(obj);
|
parser.applyWriteOptions(obj);
|
||||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||||
[geom]).firstChild;
|
[{value: geom}]).firstChild;
|
||||||
delete parser.srsName;
|
delete parser.srsName;
|
||||||
delete parser.axisOrientation;
|
delete parser.axisOrientation;
|
||||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||||
@@ -109,7 +109,7 @@ describe('ol.parser.gml_v2', function() {
|
|||||||
var geom = parser.createGeometry({geometry: obj.geometry});
|
var geom = parser.createGeometry({geometry: obj.geometry});
|
||||||
parser.applyWriteOptions(obj);
|
parser.applyWriteOptions(obj);
|
||||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||||
[geom]).firstChild;
|
[{value: geom}]).firstChild;
|
||||||
delete parser.srsName;
|
delete parser.srsName;
|
||||||
delete parser.axisOrientation;
|
delete parser.axisOrientation;
|
||||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||||
@@ -144,7 +144,7 @@ describe('ol.parser.gml_v2', function() {
|
|||||||
var geom = parser.createGeometry({geometry: obj.geometry});
|
var geom = parser.createGeometry({geometry: obj.geometry});
|
||||||
parser.applyWriteOptions(obj);
|
parser.applyWriteOptions(obj);
|
||||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||||
[geom]).firstChild;
|
[{value: geom}]).firstChild;
|
||||||
delete parser.srsName;
|
delete parser.srsName;
|
||||||
delete parser.axisOrientation;
|
delete parser.axisOrientation;
|
||||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||||
@@ -169,7 +169,7 @@ describe('ol.parser.gml_v2', function() {
|
|||||||
var geom = parser.createGeometry({geometry: obj.geometry});
|
var geom = parser.createGeometry({geometry: obj.geometry});
|
||||||
parser.applyWriteOptions(obj);
|
parser.applyWriteOptions(obj);
|
||||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||||
[geom]).firstChild;
|
[{value: geom}]).firstChild;
|
||||||
delete parser.srsName;
|
delete parser.srsName;
|
||||||
delete parser.axisOrientation;
|
delete parser.axisOrientation;
|
||||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||||
@@ -188,7 +188,7 @@ describe('ol.parser.gml_v2', function() {
|
|||||||
var geom = p.createGeometry({geometry: obj.geometry});
|
var geom = p.createGeometry({geometry: obj.geometry});
|
||||||
p.applyWriteOptions(obj);
|
p.applyWriteOptions(obj);
|
||||||
var node = p.featureNSWiters_['_geometry'].apply(p,
|
var node = p.featureNSWiters_['_geometry'].apply(p,
|
||||||
[geom]).firstChild;
|
[{value: geom}]).firstChild;
|
||||||
delete p.srsName;
|
delete p.srsName;
|
||||||
delete p.axisOrientation;
|
delete p.axisOrientation;
|
||||||
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
|
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
|
||||||
@@ -233,7 +233,7 @@ describe('ol.parser.gml_v2', function() {
|
|||||||
var geom = parser.createGeometry({geometry: obj.geometry});
|
var geom = parser.createGeometry({geometry: obj.geometry});
|
||||||
parser.applyWriteOptions(obj);
|
parser.applyWriteOptions(obj);
|
||||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||||
[geom]).firstChild;
|
[{value: geom}]).firstChild;
|
||||||
delete parser.srsName;
|
delete parser.srsName;
|
||||||
delete parser.axisOrientation;
|
delete parser.axisOrientation;
|
||||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ describe('ol.parser.gml_v3', function() {
|
|||||||
var geom = parser.createGeometry({geometry: obj.geometry});
|
var geom = parser.createGeometry({geometry: obj.geometry});
|
||||||
parser.applyWriteOptions(obj);
|
parser.applyWriteOptions(obj);
|
||||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||||
[geom]).firstChild;
|
[{value: geom}]).firstChild;
|
||||||
delete parser.srsName;
|
delete parser.srsName;
|
||||||
delete parser.axisOrientation;
|
delete parser.axisOrientation;
|
||||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||||
@@ -37,7 +37,7 @@ describe('ol.parser.gml_v3', function() {
|
|||||||
var geom = parser.createGeometry({geometry: obj.geometry});
|
var geom = parser.createGeometry({geometry: obj.geometry});
|
||||||
parser.applyWriteOptions(obj);
|
parser.applyWriteOptions(obj);
|
||||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||||
[geom]).firstChild;
|
[{value: geom}]).firstChild;
|
||||||
delete parser.srsName;
|
delete parser.srsName;
|
||||||
delete parser.axisOrientation;
|
delete parser.axisOrientation;
|
||||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||||
@@ -64,7 +64,7 @@ describe('ol.parser.gml_v3', function() {
|
|||||||
var geom = p.createGeometry({geometry: obj.geometry});
|
var geom = p.createGeometry({geometry: obj.geometry});
|
||||||
p.applyWriteOptions(obj);
|
p.applyWriteOptions(obj);
|
||||||
var node = p.featureNSWiters_['_geometry'].apply(p,
|
var node = p.featureNSWiters_['_geometry'].apply(p,
|
||||||
[geom]).firstChild;
|
[{value: geom}]).firstChild;
|
||||||
delete p.srsName;
|
delete p.srsName;
|
||||||
delete p.axisOrientation;
|
delete p.axisOrientation;
|
||||||
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
|
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
|
||||||
@@ -92,7 +92,7 @@ describe('ol.parser.gml_v3', function() {
|
|||||||
var geom = p.createGeometry({geometry: obj.geometry});
|
var geom = p.createGeometry({geometry: obj.geometry});
|
||||||
p.applyWriteOptions(obj);
|
p.applyWriteOptions(obj);
|
||||||
var node = p.featureNSWiters_['_geometry'].apply(p,
|
var node = p.featureNSWiters_['_geometry'].apply(p,
|
||||||
[geom]).firstChild;
|
[{value: geom}]).firstChild;
|
||||||
delete p.srsName;
|
delete p.srsName;
|
||||||
delete p.axisOrientation;
|
delete p.axisOrientation;
|
||||||
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
|
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
|
||||||
@@ -109,7 +109,7 @@ describe('ol.parser.gml_v3', function() {
|
|||||||
var geom = parser.createGeometry({geometry: obj.geometry});
|
var geom = parser.createGeometry({geometry: obj.geometry});
|
||||||
parser.applyWriteOptions(obj);
|
parser.applyWriteOptions(obj);
|
||||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||||
[geom]).firstChild;
|
[{value: geom}]).firstChild;
|
||||||
delete parser.srsName;
|
delete parser.srsName;
|
||||||
delete parser.axisOrientation;
|
delete parser.axisOrientation;
|
||||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||||
@@ -128,7 +128,7 @@ describe('ol.parser.gml_v3', function() {
|
|||||||
var geom = p.createGeometry({geometry: obj.geometry});
|
var geom = p.createGeometry({geometry: obj.geometry});
|
||||||
p.applyWriteOptions(obj);
|
p.applyWriteOptions(obj);
|
||||||
var node = p.featureNSWiters_['_geometry'].apply(p,
|
var node = p.featureNSWiters_['_geometry'].apply(p,
|
||||||
[geom]).firstChild;
|
[{value: geom}]).firstChild;
|
||||||
delete p.srsName;
|
delete p.srsName;
|
||||||
delete p.axisOrientation;
|
delete p.axisOrientation;
|
||||||
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
|
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
|
||||||
@@ -157,7 +157,7 @@ describe('ol.parser.gml_v3', function() {
|
|||||||
var geom = parser.createGeometry({geometry: obj.geometry});
|
var geom = parser.createGeometry({geometry: obj.geometry});
|
||||||
parser.applyWriteOptions(obj);
|
parser.applyWriteOptions(obj);
|
||||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||||
[geom]).firstChild;
|
[{value: geom}]).firstChild;
|
||||||
delete parser.srsName;
|
delete parser.srsName;
|
||||||
delete parser.axisOrientation;
|
delete parser.axisOrientation;
|
||||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||||
@@ -186,7 +186,7 @@ describe('ol.parser.gml_v3', function() {
|
|||||||
var geom = p.createGeometry({geometry: obj.geometry});
|
var geom = p.createGeometry({geometry: obj.geometry});
|
||||||
p.applyWriteOptions(obj);
|
p.applyWriteOptions(obj);
|
||||||
var node = p.featureNSWiters_['_geometry'].apply(p,
|
var node = p.featureNSWiters_['_geometry'].apply(p,
|
||||||
[geom]).firstChild;
|
[{value: geom}]).firstChild;
|
||||||
delete p.srsName;
|
delete p.srsName;
|
||||||
delete p.axisOrientation;
|
delete p.axisOrientation;
|
||||||
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
|
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
|
||||||
@@ -213,7 +213,7 @@ describe('ol.parser.gml_v3', function() {
|
|||||||
var geom = parser.createGeometry({geometry: obj.geometry});
|
var geom = parser.createGeometry({geometry: obj.geometry});
|
||||||
parser.applyWriteOptions(obj);
|
parser.applyWriteOptions(obj);
|
||||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||||
[geom]).firstChild;
|
[{value: geom}]).firstChild;
|
||||||
delete parser.srsName;
|
delete parser.srsName;
|
||||||
delete parser.axisOrientation;
|
delete parser.axisOrientation;
|
||||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||||
@@ -231,7 +231,7 @@ describe('ol.parser.gml_v3', function() {
|
|||||||
var geom = p.createGeometry({geometry: obj.geometry});
|
var geom = p.createGeometry({geometry: obj.geometry});
|
||||||
p.applyWriteOptions(obj);
|
p.applyWriteOptions(obj);
|
||||||
var node = p.featureNSWiters_['_geometry'].apply(p,
|
var node = p.featureNSWiters_['_geometry'].apply(p,
|
||||||
[geom]).firstChild;
|
[{value: geom}]).firstChild;
|
||||||
delete p.srsName;
|
delete p.srsName;
|
||||||
delete p.axisOrientation;
|
delete p.axisOrientation;
|
||||||
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
|
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
|
||||||
@@ -248,7 +248,7 @@ describe('ol.parser.gml_v3', function() {
|
|||||||
var geom = parser.createGeometry({geometry: obj.geometry});
|
var geom = parser.createGeometry({geometry: obj.geometry});
|
||||||
parser.applyWriteOptions(obj);
|
parser.applyWriteOptions(obj);
|
||||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||||
[geom]).firstChild;
|
[{value: geom}]).firstChild;
|
||||||
delete parser.srsName;
|
delete parser.srsName;
|
||||||
delete parser.axisOrientation;
|
delete parser.axisOrientation;
|
||||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||||
@@ -264,7 +264,7 @@ describe('ol.parser.gml_v3', function() {
|
|||||||
var geom = parser.createGeometry({geometry: obj.geometry});
|
var geom = parser.createGeometry({geometry: obj.geometry});
|
||||||
parser.applyWriteOptions(obj);
|
parser.applyWriteOptions(obj);
|
||||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||||
[geom]).firstChild;
|
[{value: geom}]).firstChild;
|
||||||
delete parser.srsName;
|
delete parser.srsName;
|
||||||
delete parser.axisOrientation;
|
delete parser.axisOrientation;
|
||||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||||
@@ -280,7 +280,7 @@ describe('ol.parser.gml_v3', function() {
|
|||||||
var geom = p.createGeometry({geometry: obj.geometry});
|
var geom = p.createGeometry({geometry: obj.geometry});
|
||||||
p.applyWriteOptions(obj, {srsName: 'foo'});
|
p.applyWriteOptions(obj, {srsName: 'foo'});
|
||||||
var node = p.featureNSWiters_['_geometry'].apply(p,
|
var node = p.featureNSWiters_['_geometry'].apply(p,
|
||||||
[geom]).firstChild;
|
[{value: geom}]).firstChild;
|
||||||
delete p.srsName;
|
delete p.srsName;
|
||||||
delete p.axisOrientation;
|
delete p.axisOrientation;
|
||||||
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
|
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
|
||||||
@@ -300,7 +300,6 @@ describe('ol.parser.gml_v3', function() {
|
|||||||
var obj = p.read(xml);
|
var obj = p.read(xml);
|
||||||
var output = p.write(obj);
|
var output = p.write(obj);
|
||||||
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
|
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
|
||||||
expect(p.geometryName).to.eql('the_geom');
|
|
||||||
expect(obj.features.length).to.eql(10);
|
expect(obj.features.length).to.eql(10);
|
||||||
var feature = obj.features[0];
|
var feature = obj.features[0];
|
||||||
expect(feature.getGeometry() instanceof
|
expect(feature.getGeometry() instanceof
|
||||||
@@ -373,10 +372,21 @@ describe('ol.parser.gml_v3', function() {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
it('More than one geometry', function(done) {
|
||||||
|
var url = 'spec/ol/parser/ogc/xml/gml_v3/more-geoms.xml';
|
||||||
|
afterLoadXml(url, function(xml) {
|
||||||
|
var obj = parser.read(xml);
|
||||||
|
var feature = obj.features[0];
|
||||||
|
expect(feature.get('center')).to.be.a(ol.geom.Point);
|
||||||
|
expect(feature.get('the_geom')).to.be.a(ol.geom.MultiPolygon);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
goog.require('goog.dom.xml');
|
goog.require('goog.dom.xml');
|
||||||
|
goog.require('ol.geom.Point');
|
||||||
goog.require('ol.geom.MultiPolygon');
|
goog.require('ol.geom.MultiPolygon');
|
||||||
goog.require('ol.parser.ogc.GML_v3');
|
goog.require('ol.parser.ogc.GML_v3');
|
||||||
goog.require('ol.proj');
|
goog.require('ol.proj');
|
||||||
|
|||||||
@@ -0,0 +1,47 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<wfs:FeatureCollection numberOfFeatures="1" timeStamp="2010-01-29T15:10:38.921-07:00"
|
||||||
|
xsi:schemaLocation="http://medford.opengeo.org http://localhost:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=medford%3Azoning http://www.opengis.net/wfs http://localhost:8080/geoserver/schemas/wfs/1.1.0/wfs.xsd"
|
||||||
|
xmlns:ogc="http://www.opengis.net/ogc"
|
||||||
|
xmlns:wfs="http://www.opengis.net/wfs"
|
||||||
|
xmlns:medford="http://opengeo.org/#medford"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:ows="http://www.opengis.net/ows"
|
||||||
|
xmlns:gml="http://www.opengis.net/gml"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<gml:featureMembers>
|
||||||
|
<medford:zoning gml:id="zoning.1">
|
||||||
|
<medford:the_geom>
|
||||||
|
<gml:MultiSurface srsName="urn:x-ogc:def:crs:EPSG:4326">
|
||||||
|
<gml:surfaceMember>
|
||||||
|
<gml:Polygon>
|
||||||
|
<gml:exterior>
|
||||||
|
<gml:LinearRing>
|
||||||
|
<gml:posList>42.397027571297585 -122.88465674265922 42.39702893980587 -122.88509730796012 42.397029086785146 -122.88511582432085 42.39702379767053 -122.88528111596624 42.39748517484964 -122.88529300380065 42.39748473847452 -122.88509914138723 42.39748482219041 -122.8849959517568 42.397485082635576 -122.8846741899541 42.3974853307826 -122.88436529392652 42.39702663751206 -122.88435664014142 42.397027571297585 -122.88465674265922</gml:posList>
|
||||||
|
</gml:LinearRing>
|
||||||
|
</gml:exterior>
|
||||||
|
</gml:Polygon>
|
||||||
|
</gml:surfaceMember>
|
||||||
|
</gml:MultiSurface>
|
||||||
|
</medford:the_geom>
|
||||||
|
<medford:center>
|
||||||
|
<gml:Point srsName="urn:x-ogc:def:crs:EPSG:4326">
|
||||||
|
<gml:pos>1 2</gml:pos>
|
||||||
|
</gml:Point>
|
||||||
|
</medford:center>
|
||||||
|
<medford:objectid>1</medford:objectid>
|
||||||
|
<medford:cityzone>YES</medford:cityzone>
|
||||||
|
<medford:zoning>I-L</medford:zoning>
|
||||||
|
<medford:revdate>2004-04-12T00:00:00-06:00</medford:revdate>
|
||||||
|
<medford:finord></medford:finord>
|
||||||
|
<medford:filenum></medford:filenum>
|
||||||
|
<medford:acres>0.95741118624</medford:acres>
|
||||||
|
<medford:misc></medford:misc>
|
||||||
|
<medford:shape_leng>835.705330224</medford:shape_leng>
|
||||||
|
<medford:perimeter>835.705330224</medford:perimeter>
|
||||||
|
<medford:area>41704.8312728</medford:area>
|
||||||
|
<medford:shape_le_1>835.705330224</medford:shape_le_1>
|
||||||
|
<medford:shape_area>41704.8312728</medford:shape_area>
|
||||||
|
<medford:hectares>0.38745056079</medford:hectares>
|
||||||
|
</medford:zoning>
|
||||||
|
</gml:featureMembers>
|
||||||
|
</wfs:FeatureCollection>
|
||||||
Reference in New Issue
Block a user