move srsName and axisOrientation from the instance to the read and write functions as discussed with @ahocevar
This commit is contained in:
committed by
ahocevar
parent
6f3fa14c53
commit
2f4f508d1a
@@ -356,10 +356,6 @@
|
||||
|
||||
/**
|
||||
* @typedef {Object} ol.parser.GMLOptions
|
||||
* @property {string|undefined} axisOrientation The axis orientation as
|
||||
* specified in Proj4. If this is not provided, the projection's axis
|
||||
* orientation will be used if `projection` is not overridden (i.e. the
|
||||
* projection defined in the data is used). Otherwise the default is 'enu'.
|
||||
* @property {boolean|undefined} curve Write gml:Curve instead of
|
||||
* gml:LineString elements. This also affects the elements in multi-part
|
||||
* geometries. Default is `false´. This only applies to GML version 3.
|
||||
@@ -380,11 +376,6 @@
|
||||
* default is `true´. This only applies to GML version 3.
|
||||
* @property {string|undefined} schemaLocation Optional schemaLocation to use
|
||||
* when writing out the GML, this will override the default provided.
|
||||
* @property {string|undefined} srsName URI for spatial reference system.
|
||||
* This is optional for single part geometries and mandatory for
|
||||
* collections and multis. If set, the srsName attribute will be written
|
||||
* for all geometries. Default is null. For reading only, no `srsName` needs
|
||||
* to be provided.
|
||||
* @property {boolean|undefined} surface Write gml:Surface instead of
|
||||
* gml:Polygon elements. This also affects the elements in multi-part
|
||||
* geometries. Default is `false´. This only applies to GML version 3.
|
||||
|
||||
@@ -28,8 +28,6 @@ goog.require('ol.proj');
|
||||
ol.parser.ogc.GML = function(opt_options) {
|
||||
var options = /** @type {ol.parser.GMLOptions} */
|
||||
(goog.isDef(opt_options) ? opt_options : {});
|
||||
this.axisOrientation = goog.isDef(options.axisOrientation) ?
|
||||
options.axisOrientation : null;
|
||||
this.extractAttributes = goog.isDef(options.extractAttributes) ?
|
||||
options.extractAttributes : true;
|
||||
this.surface = goog.isDef(options.surface) ?
|
||||
@@ -40,20 +38,18 @@ ol.parser.ogc.GML = function(opt_options) {
|
||||
options.multiCurve : true;
|
||||
this.multiSurface = goog.isDef(options.multiSurface) ?
|
||||
options.multiSurface : true;
|
||||
this.srsName = goog.isDef(options.srsName) ?
|
||||
options.srsName : null;
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @protected
|
||||
* @type {string|undefined}
|
||||
*/
|
||||
this.srsName_;
|
||||
this.srsName;
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @protected
|
||||
* @type {string|undefined}
|
||||
*/
|
||||
this.axisOrientation_;
|
||||
this.axisOrientation;
|
||||
|
||||
if (goog.isDef(options.schemaLocation)) {
|
||||
this.schemaLocation = options.schemaLocation;
|
||||
@@ -319,21 +315,21 @@ ol.parser.ogc.GML = function(opt_options) {
|
||||
// TODO: Deal with GML documents that do not have the same SRS for all
|
||||
// geometries.
|
||||
var srsName;
|
||||
if (!goog.isDef(this.srsName_)) {
|
||||
if (!goog.isDef(this.srsName)) {
|
||||
for (var i = node.childNodes.length - 1; i >= 0; --i) {
|
||||
var child = node.childNodes[i];
|
||||
if (child.nodeType == 1) {
|
||||
srsName = child.getAttribute('srsName');
|
||||
if (goog.isDef(srsName)) {
|
||||
this.srsName_ = srsName;
|
||||
this.srsName = srsName;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!goog.isDef(this.axisOrientation_)) {
|
||||
if (!goog.isDef(this.axisOrientation)) {
|
||||
if (goog.isDef(srsName)) {
|
||||
this.axisOrientation_ = ol.proj.get(srsName).getAxisOrientation();
|
||||
this.axisOrientation = ol.proj.get(srsName).getAxisOrientation();
|
||||
}
|
||||
}
|
||||
this.readChildNodes(node, obj);
|
||||
@@ -349,9 +345,9 @@ ol.parser.ogc.GML = function(opt_options) {
|
||||
}
|
||||
this.writers = {
|
||||
'http://www.opengis.net/gml': {
|
||||
'featureMember': function(feature) {
|
||||
'featureMember': function(obj) {
|
||||
var node = this.createElementNS('gml:featureMember');
|
||||
this.writeNode('_typeName', feature, this.featureNS, node);
|
||||
this.writeNode('_typeName', obj, this.featureNS, node);
|
||||
return node;
|
||||
},
|
||||
'MultiPoint': function(geometry) {
|
||||
@@ -468,8 +464,9 @@ ol.parser.ogc.GML = function(opt_options) {
|
||||
} else if (type === ol.geom.GeometryType.GEOMETRYCOLLECTION) {
|
||||
child = this.writeNode('GeometryCollection', geometry, null, node);
|
||||
}
|
||||
if (goog.isDef(this.srsName)) {
|
||||
this.setAttributeNS(child, null, 'srsName', this.srsName);
|
||||
if (goog.isDef(this.getSrsName())) {
|
||||
this.setAttributeNS(child, null, 'srsName',
|
||||
ol.proj.get(this.getSrsName()).getCode());
|
||||
}
|
||||
return node;
|
||||
},
|
||||
@@ -491,16 +488,16 @@ goog.inherits(ol.parser.ogc.GML, ol.parser.XML);
|
||||
* @return {string?} Axis orientation.
|
||||
*/
|
||||
ol.parser.ogc.GML.prototype.getAxisOrientation = function() {
|
||||
return goog.isDef(this.axisOrientation_) ? this.axisOrientation_ : 'enu';
|
||||
return goog.isDef(this.axisOrientation) ? this.axisOrientation : 'enu';
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @return {string?} SRS name.
|
||||
* @return {string|undefined} SRS name.
|
||||
*/
|
||||
ol.parser.ogc.GML.prototype.getSrsName = function() {
|
||||
return this.srsName_;
|
||||
}
|
||||
return this.srsName;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
@@ -514,13 +511,10 @@ ol.parser.ogc.GML.prototype.read = function(data) {
|
||||
if (data && data.nodeType == 9) {
|
||||
data = data.documentElement;
|
||||
}
|
||||
this.srsName_ = goog.isNull(this.srsName) ? undefined : this.srsName;
|
||||
this.axisOrientation_ = goog.isNull(this.axisOrientation) ?
|
||||
undefined : this.axisOrientation;
|
||||
var obj = /** @type {ol.parser.ReadFeaturesResult} */
|
||||
({features: [], metadata: {}});
|
||||
this.readNode(data, obj, true);
|
||||
obj.metadata.projection = this.srsName_;
|
||||
obj.metadata.projection = this.srsName;
|
||||
return obj;
|
||||
};
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ goog.provide('ol.parser.ogc.GML_v2');
|
||||
goog.require('goog.array');
|
||||
goog.require('goog.object');
|
||||
goog.require('ol.parser.ogc.GML');
|
||||
goog.require('ol.proj');
|
||||
|
||||
|
||||
|
||||
@@ -112,17 +113,21 @@ goog.inherits(ol.parser.ogc.GML_v2, ol.parser.ogc.GML);
|
||||
|
||||
|
||||
/**
|
||||
* @param {Object} obj Object structure to write out as XML.
|
||||
* @return {string} An string representing the XML document.
|
||||
* @param {ol.parser.ReadFeaturesResult} obj Object structure to write out as
|
||||
* GML.
|
||||
* @return {string} A string representing the GML document.
|
||||
*/
|
||||
ol.parser.ogc.GML_v2.prototype.write = function(obj) {
|
||||
if (goog.isDef(obj.metadata)) {
|
||||
this.srsName = goog.isDef(obj.metadata.projection) ?
|
||||
ol.proj.get(obj.metadata.projection).getCode() : undefined;
|
||||
}
|
||||
var root = this.writeNode('FeatureCollection', obj.features,
|
||||
'http://www.opengis.net/wfs');
|
||||
this.setAttributeNS(
|
||||
root, 'http://www.w3.org/2001/XMLSchema-instance',
|
||||
'xsi:schemaLocation', this.schemaLocation);
|
||||
this.srsName_ = goog.isNull(this.srsName) ? undefined : this.srsName;
|
||||
this.axisOrientation_ = goog.isNull(this.axisOrientation) ?
|
||||
undefined : this.axisOrientation;
|
||||
return this.serialize(root);
|
||||
var gml = this.serialize(root);
|
||||
delete this.srsName;
|
||||
return gml;
|
||||
};
|
||||
|
||||
@@ -4,6 +4,7 @@ goog.require('goog.array');
|
||||
goog.require('goog.object');
|
||||
goog.require('ol.geom.GeometryType');
|
||||
goog.require('ol.parser.ogc.GML');
|
||||
goog.require('ol.proj');
|
||||
|
||||
|
||||
|
||||
@@ -56,7 +57,8 @@ ol.parser.ogc.GML_v3 = function(opt_options) {
|
||||
child = this.writeNode('MultiGeometry', geometry, null, node);
|
||||
}
|
||||
if (goog.isDef(this.getSrsName())) {
|
||||
this.setAttributeNS(child, null, 'srsName', this.getSrsName());
|
||||
this.setAttributeNS(child, null, 'srsName',
|
||||
ol.proj.get(this.getSrsName()).getCode());
|
||||
}
|
||||
return node;
|
||||
};
|
||||
@@ -412,12 +414,15 @@ goog.inherits(ol.parser.ogc.GML_v3, ol.parser.ogc.GML);
|
||||
* @return {string} An string representing the XML document.
|
||||
*/
|
||||
ol.parser.ogc.GML_v3.prototype.write = function(obj) {
|
||||
if (goog.isDef(obj.metadata)) {
|
||||
this.srsName = goog.isDef(obj.metadata.projection) ?
|
||||
ol.proj.get(obj.metadata.projection).getCode() : undefined;
|
||||
}
|
||||
var root = this.writeNode('featureMembers', obj.features);
|
||||
this.setAttributeNS(
|
||||
root, 'http://www.w3.org/2001/XMLSchema-instance',
|
||||
'xsi:schemaLocation', this.schemaLocation);
|
||||
this.srsName_ = goog.isNull(this.srsName) ? undefined : this.srsName;
|
||||
this.axisOrientation_ = goog.isNull(this.axisOrientation) ?
|
||||
undefined : this.axisOrientation;
|
||||
return this.serialize(root);
|
||||
var gml = this.serialize(root);
|
||||
delete this.srsName;
|
||||
return gml;
|
||||
};
|
||||
|
||||
@@ -18,12 +18,12 @@ describe('ol.parser.gml_v2', function() {
|
||||
var url = 'spec/ol/parser/ogc/xml/gml_v2/point-coordinates.xml';
|
||||
afterLoadXml(url, function(xml) {
|
||||
var obj = parser.read(xml);
|
||||
parser.srsName = 'foo';
|
||||
var geom = parser.createGeometry_({geometry: obj.geometry});
|
||||
parser.srsName = 'EPSG:4326';
|
||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||
[geom]).firstChild;
|
||||
delete parser.srsName;
|
||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||
parser.srsName = null;
|
||||
expect(obj.geometry.type).to.eql('point');
|
||||
expect(obj.geometry.coordinates).to.eql([1, 2]);
|
||||
done();
|
||||
@@ -46,12 +46,12 @@ describe('ol.parser.gml_v2', function() {
|
||||
var url = 'spec/ol/parser/ogc/xml/gml_v2/multipoint-coordinates.xml';
|
||||
afterLoadXml(url, function(xml) {
|
||||
var obj = parser.read(xml);
|
||||
parser.srsName = 'foo';
|
||||
var geom = parser.createGeometry_({geometry: obj.geometry});
|
||||
parser.srsName = 'EPSG:4326';
|
||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||
[geom]).firstChild;
|
||||
delete parser.srsName;
|
||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||
parser.srsName = null;
|
||||
expect(obj.geometry.type).to.eql('multipoint');
|
||||
expect(obj.geometry.parts.length).to.eql(3);
|
||||
expect(obj.geometry.parts[0].type).to.eql('point');
|
||||
@@ -75,12 +75,12 @@ describe('ol.parser.gml_v2', function() {
|
||||
var url = 'spec/ol/parser/ogc/xml/gml_v2/linestring-coordinates.xml';
|
||||
afterLoadXml(url, function(xml) {
|
||||
var obj = parser.read(xml);
|
||||
parser.srsName = 'foo';
|
||||
var geom = parser.createGeometry_({geometry: obj.geometry});
|
||||
parser.srsName = 'EPSG:4326';
|
||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||
[geom]).firstChild;
|
||||
delete parser.srsName;
|
||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||
parser.srsName = null;
|
||||
expect(obj.geometry.type).to.eql('linestring');
|
||||
expect(obj.geometry.coordinates.length).to.eql(2);
|
||||
expect(obj.geometry.coordinates).to.eql([[1, 2], [3, 4]]);
|
||||
@@ -103,12 +103,12 @@ describe('ol.parser.gml_v2', function() {
|
||||
var url = 'spec/ol/parser/ogc/xml/gml_v2/multilinestring-coordinates.xml';
|
||||
afterLoadXml(url, function(xml) {
|
||||
var obj = parser.read(xml);
|
||||
parser.srsName = 'foo';
|
||||
var geom = parser.createGeometry_({geometry: obj.geometry});
|
||||
parser.srsName = 'EPSG:4326';
|
||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||
[geom]).firstChild;
|
||||
delete parser.srsName;
|
||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||
parser.srsName = null;
|
||||
expect(obj.geometry.type).to.eql('multilinestring');
|
||||
expect(obj.geometry.parts.length).to.eql(2);
|
||||
expect(obj.geometry.parts[0].type).to.eql('linestring');
|
||||
@@ -137,12 +137,12 @@ describe('ol.parser.gml_v2', function() {
|
||||
var url = 'spec/ol/parser/ogc/xml/gml_v2/polygon-coordinates.xml';
|
||||
afterLoadXml(url, function(xml) {
|
||||
var obj = parser.read(xml);
|
||||
parser.srsName = 'foo';
|
||||
var geom = parser.createGeometry_({geometry: obj.geometry});
|
||||
parser.srsName = 'EPSG:4326';
|
||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||
[geom]).firstChild;
|
||||
delete parser.srsName;
|
||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||
parser.srsName = null;
|
||||
expect(obj.geometry.type).to.eql('polygon');
|
||||
done();
|
||||
});
|
||||
@@ -161,12 +161,12 @@ describe('ol.parser.gml_v2', function() {
|
||||
var url = 'spec/ol/parser/ogc/xml/gml_v2/multipolygon-coordinates.xml';
|
||||
afterLoadXml(url, function(xml) {
|
||||
var obj = parser.read(xml);
|
||||
parser.srsName = 'foo';
|
||||
var geom = parser.createGeometry_({geometry: obj.geometry});
|
||||
parser.srsName = 'EPSG:4326';
|
||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||
[geom]).firstChild;
|
||||
delete parser.srsName;
|
||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||
parser.srsName = null;
|
||||
expect(obj.geometry.type).to.eql('multipolygon');
|
||||
expect(obj.geometry.parts.length).to.eql(2);
|
||||
expect(obj.geometry.parts[0].type).to.eql('polygon');
|
||||
@@ -177,12 +177,13 @@ describe('ol.parser.gml_v2', function() {
|
||||
var url = 'spec/ol/parser/ogc/xml/gml_v2/' +
|
||||
'geometrycollection-coordinates.xml';
|
||||
afterLoadXml(url, function(xml) {
|
||||
var p = new ol.parser.ogc.GML_v2({srsName: 'foo',
|
||||
featureNS: 'http://foo'});
|
||||
var p = new ol.parser.ogc.GML_v2({featureNS: 'http://foo'});
|
||||
var obj = p.read(xml);
|
||||
var geom = p.createGeometry_({geometry: obj.geometry});
|
||||
p.srsName = 'EPSG:4326';
|
||||
var node = p.featureNSWiters_['_geometry'].apply(p,
|
||||
[geom]).firstChild;
|
||||
delete p.srsName;
|
||||
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
|
||||
expect(obj.geometry.type).to.eql('geometrycollection');
|
||||
expect(obj.geometry.parts.length).to.eql(3);
|
||||
@@ -222,12 +223,12 @@ describe('ol.parser.gml_v2', function() {
|
||||
var url = 'spec/ol/parser/ogc/xml/gml_v2/linearring-coordinates.xml';
|
||||
afterLoadXml(url, function(xml) {
|
||||
var obj = parser.read(xml);
|
||||
parser.srsName = 'foo';
|
||||
var geom = parser.createGeometry_({geometry: obj.geometry});
|
||||
parser.srsName = 'EPSG:4326';
|
||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||
[geom]).firstChild;
|
||||
delete parser.srsName;
|
||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||
parser.srsName = null;
|
||||
expect(obj.geometry.type).to.eql('linearring');
|
||||
expect(obj.geometry.coordinates).to.eql([[1, 2], [3, 4], [5, 6],
|
||||
[1, 2]]);
|
||||
@@ -243,12 +244,14 @@ describe('ol.parser.gml_v2', function() {
|
||||
'http://www.opengis.net/wfs http://demo.opengeo.org/' +
|
||||
'geoserver/schemas/wfs/1.0.0/WFS-basic.xsd';
|
||||
var p = new ol.parser.ogc.GML_v2({
|
||||
axisOrientation: 'enu',
|
||||
featureType: 'states',
|
||||
featureNS: 'http://www.openplans.org/topp',
|
||||
schemaLocation: schemaLoc});
|
||||
// overwrite the axis orientation of the projection, since WFS 1.0.0
|
||||
// always uses enu
|
||||
p.axisOrientation = 'enu';
|
||||
var obj = p.read(xml);
|
||||
p.srsName = 'http://www.opengis.net/gml/srs/epsg.xml#4326';
|
||||
delete p.axisOrientation;
|
||||
var output = p.write(obj);
|
||||
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
|
||||
expect(obj.features.length).to.eql(3);
|
||||
@@ -329,3 +332,5 @@ goog.require('ol.parser.ogc.GML_v2');
|
||||
goog.require('ol.geom.MultiLineString');
|
||||
goog.require('ol.geom.MultiPoint');
|
||||
goog.require('ol.geom.MultiPolygon');
|
||||
goog.require('ol.proj');
|
||||
goog.require('ol.proj.EPSG4326');
|
||||
|
||||
@@ -2,8 +2,7 @@ goog.provide('ol.test.parser.gml_v3');
|
||||
|
||||
describe('ol.parser.gml_v3', function() {
|
||||
|
||||
var parser = new ol.parser.ogc.GML_v3(
|
||||
{srsName: 'foo', axisOrientation: 'enu'});
|
||||
var parser = new ol.parser.ogc.GML_v3();
|
||||
|
||||
describe('Test GML v3 parser', function() {
|
||||
it('Envelope read correctly', function(done) {
|
||||
@@ -19,8 +18,10 @@ describe('ol.parser.gml_v3', function() {
|
||||
afterLoadXml(url, function(xml) {
|
||||
var obj = parser.read(xml);
|
||||
var geom = parser.createGeometry_({geometry: obj.geometry});
|
||||
parser.srsName = 'EPSG:4326';
|
||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||
[geom]).firstChild;
|
||||
delete parser.srsName;
|
||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||
expect(obj.geometry.type).to.eql('linearring');
|
||||
expect(obj.geometry.coordinates).to.eql([[1, 2], [3, 4], [5, 6],
|
||||
@@ -33,8 +34,10 @@ describe('ol.parser.gml_v3', function() {
|
||||
afterLoadXml(url, function(xml) {
|
||||
var obj = parser.read(xml);
|
||||
var geom = parser.createGeometry_({geometry: obj.geometry});
|
||||
parser.srsName = 'EPSG:4326';
|
||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||
[geom]).firstChild;
|
||||
delete parser.srsName;
|
||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||
expect(obj.geometry.type).to.eql('linestring');
|
||||
expect(obj.geometry.coordinates).to.eql([[1, 2], [3, 4]]);
|
||||
@@ -54,11 +57,13 @@ describe('ol.parser.gml_v3', function() {
|
||||
it('Curve read / written correctly', function(done) {
|
||||
var url = 'spec/ol/parser/ogc/xml/gml_v3/curve.xml';
|
||||
afterLoadXml(url, function(xml) {
|
||||
var p = new ol.parser.ogc.GML_v3({curve: true, srsName: 'foo'});
|
||||
var p = new ol.parser.ogc.GML_v3({curve: true});
|
||||
var obj = p.read(xml);
|
||||
var geom = p.createGeometry_({geometry: obj.geometry});
|
||||
p.srsName = 'EPSG:4326';
|
||||
var node = p.featureNSWiters_['_geometry'].apply(p,
|
||||
[geom]).firstChild;
|
||||
delete p.srsName;
|
||||
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
|
||||
expect(obj.geometry.type).to.eql('linestring');
|
||||
expect(obj.geometry.coordinates).to.eql([[1, 2], [3, 4]]);
|
||||
@@ -79,11 +84,13 @@ describe('ol.parser.gml_v3', function() {
|
||||
it('MultiLineString singular read / written correctly', function(done) {
|
||||
var url = 'spec/ol/parser/ogc/xml/gml_v3/multilinestring-singular.xml';
|
||||
afterLoadXml(url, function(xml) {
|
||||
var p = new ol.parser.ogc.GML_v3({multiCurve: false, srsName: 'foo'});
|
||||
var p = new ol.parser.ogc.GML_v3({multiCurve: false});
|
||||
var obj = p.read(xml);
|
||||
var geom = p.createGeometry_({geometry: obj.geometry});
|
||||
p.srsName = 'EPSG:4326';
|
||||
var node = p.featureNSWiters_['_geometry'].apply(p,
|
||||
[geom]).firstChild;
|
||||
delete p.srsName;
|
||||
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
|
||||
expect(obj.geometry.type).to.eql('multilinestring');
|
||||
expect(obj.geometry.parts.length).to.eql(2);
|
||||
@@ -96,8 +103,10 @@ describe('ol.parser.gml_v3', function() {
|
||||
afterLoadXml(url, function(xml) {
|
||||
var obj = parser.read(xml);
|
||||
var geom = parser.createGeometry_({geometry: obj.geometry});
|
||||
parser.srsName = 'EPSG:4326';
|
||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||
[geom]).firstChild;
|
||||
delete parser.srsName;
|
||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||
expect(obj.geometry.type).to.eql('multilinestring');
|
||||
expect(obj.geometry.parts.length).to.eql(2);
|
||||
@@ -109,11 +118,13 @@ describe('ol.parser.gml_v3', function() {
|
||||
it('MultiCurve curve read / written correctly', function(done) {
|
||||
var url = 'spec/ol/parser/ogc/xml/gml_v3/multicurve-curve.xml';
|
||||
afterLoadXml(url, function(xml) {
|
||||
var p = new ol.parser.ogc.GML_v3({curve: true, srsName: 'foo'});
|
||||
var p = new ol.parser.ogc.GML_v3({curve: true});
|
||||
var obj = p.read(xml);
|
||||
var geom = p.createGeometry_({geometry: obj.geometry});
|
||||
p.srsName = 'EPSG:4326';
|
||||
var node = p.featureNSWiters_['_geometry'].apply(p,
|
||||
[geom]).firstChild;
|
||||
delete p.srsName;
|
||||
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
|
||||
expect(obj.geometry.type).to.eql('multilinestring');
|
||||
expect(obj.geometry.parts.length).to.eql(2);
|
||||
@@ -138,8 +149,10 @@ describe('ol.parser.gml_v3', function() {
|
||||
afterLoadXml(url, function(xml) {
|
||||
var obj = parser.read(xml);
|
||||
var geom = parser.createGeometry_({geometry: obj.geometry});
|
||||
parser.srsName = 'EPSG:4326';
|
||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||
[geom]).firstChild;
|
||||
delete parser.srsName;
|
||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||
expect(obj.geometry.type).to.eql('multipoint');
|
||||
expect(obj.geometry.parts.length).to.eql(3);
|
||||
@@ -161,11 +174,13 @@ describe('ol.parser.gml_v3', function() {
|
||||
it('MultiPolygon singular read / written correctly', function(done) {
|
||||
var url = 'spec/ol/parser/ogc/xml/gml_v3/multipolygon-singular.xml';
|
||||
afterLoadXml(url, function(xml) {
|
||||
var p = new ol.parser.ogc.GML_v3({multiSurface: false, srsName: 'foo'});
|
||||
var p = new ol.parser.ogc.GML_v3({multiSurface: false});
|
||||
var obj = p.read(xml);
|
||||
var geom = p.createGeometry_({geometry: obj.geometry});
|
||||
p.srsName = 'EPSG:4326';
|
||||
var node = p.featureNSWiters_['_geometry'].apply(p,
|
||||
[geom]).firstChild;
|
||||
delete p.srsName;
|
||||
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
|
||||
expect(obj.geometry.type).to.eql('multipolygon');
|
||||
expect(obj.geometry.parts.length).to.eql(2);
|
||||
@@ -188,8 +203,10 @@ describe('ol.parser.gml_v3', function() {
|
||||
afterLoadXml(url, function(xml) {
|
||||
var obj = parser.read(xml);
|
||||
var geom = parser.createGeometry_({geometry: obj.geometry});
|
||||
parser.srsName = 'EPSG:4326';
|
||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||
[geom]).firstChild;
|
||||
delete parser.srsName;
|
||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||
expect(obj.geometry.type).to.eql('multipolygon');
|
||||
expect(obj.geometry.parts.length).to.eql(2);
|
||||
@@ -200,11 +217,13 @@ describe('ol.parser.gml_v3', function() {
|
||||
it('MultiSurface surface read / written correctly', function(done) {
|
||||
var url = 'spec/ol/parser/ogc/xml/gml_v3/multisurface-surface.xml';
|
||||
afterLoadXml(url, function(xml) {
|
||||
var p = new ol.parser.ogc.GML_v3({surface: true, srsName: 'foo'});
|
||||
var p = new ol.parser.ogc.GML_v3({surface: true});
|
||||
var obj = p.read(xml);
|
||||
var geom = p.createGeometry_({geometry: obj.geometry});
|
||||
p.srsName = 'EPSG:4326';
|
||||
var node = p.featureNSWiters_['_geometry'].apply(p,
|
||||
[geom]).firstChild;
|
||||
delete p.srsName;
|
||||
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
|
||||
expect(obj.geometry.type).to.eql('multipolygon');
|
||||
expect(obj.geometry.parts.length).to.eql(2);
|
||||
@@ -217,8 +236,10 @@ describe('ol.parser.gml_v3', function() {
|
||||
afterLoadXml(url, function(xml) {
|
||||
var obj = parser.read(xml);
|
||||
var geom = parser.createGeometry_({geometry: obj.geometry});
|
||||
parser.srsName = 'EPSG:4326';
|
||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||
[geom]).firstChild;
|
||||
delete parser.srsName;
|
||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||
expect(obj.geometry.type).to.eql('point');
|
||||
expect(obj.geometry.coordinates).to.eql([1, 2]);
|
||||
@@ -230,8 +251,10 @@ describe('ol.parser.gml_v3', function() {
|
||||
afterLoadXml(url, function(xml) {
|
||||
var obj = parser.read(xml);
|
||||
var geom = parser.createGeometry_({geometry: obj.geometry});
|
||||
parser.srsName = 'EPSG:4326';
|
||||
var node = parser.featureNSWiters_['_geometry'].apply(parser,
|
||||
[geom]).firstChild;
|
||||
delete parser.srsName;
|
||||
expect(goog.dom.xml.loadXml(parser.serialize(node))).to.xmleql(xml);
|
||||
expect(obj.geometry.type).to.eql('polygon');
|
||||
done();
|
||||
@@ -240,11 +263,13 @@ describe('ol.parser.gml_v3', function() {
|
||||
it('Surface read / written correctly', function(done) {
|
||||
var url = 'spec/ol/parser/ogc/xml/gml_v3/surface.xml';
|
||||
afterLoadXml(url, function(xml) {
|
||||
var p = new ol.parser.ogc.GML_v3({surface: true, srsName: 'foo'});
|
||||
var p = new ol.parser.ogc.GML_v3({surface: true});
|
||||
var obj = p.read(xml);
|
||||
var geom = p.createGeometry_({geometry: obj.geometry});
|
||||
p.srsName = 'EPSG:4326';
|
||||
var node = p.featureNSWiters_['_geometry'].apply(p,
|
||||
[geom]).firstChild;
|
||||
delete p.srsName;
|
||||
expect(goog.dom.xml.loadXml(p.serialize(node))).to.xmleql(xml);
|
||||
expect(obj.geometry.type).to.eql('polygon');
|
||||
done();
|
||||
@@ -259,7 +284,6 @@ describe('ol.parser.gml_v3', function() {
|
||||
'http://www.opengis.net/gml ' +
|
||||
'http://schemas.opengis.net/gml/3.2.1/gml.xsd';
|
||||
var p = new ol.parser.ogc.GML_v3({schemaLocation: schemaLoc});
|
||||
debugger
|
||||
var obj = p.read(xml);
|
||||
var output = p.write(obj);
|
||||
expect(goog.dom.xml.loadXml(output)).to.xmleql(xml);
|
||||
@@ -283,7 +307,6 @@ describe('ol.parser.gml_v3', function() {
|
||||
it('FeatureCollection from WFS read correctly', function(done) {
|
||||
var url = 'spec/ol/parser/ogc/xml/gml_v3/topp-states-wfs.xml';
|
||||
afterLoadXml(url, function(xml) {
|
||||
parser.srsName = null;
|
||||
var obj = parser.read(xml);
|
||||
expect(obj.features.length).to.eql(3);
|
||||
var feature = obj.features[0];
|
||||
@@ -298,7 +321,6 @@ describe('ol.parser.gml_v3', function() {
|
||||
expect(attributes['LAND_KM']).to.eql('143986.61');
|
||||
expect(ol.proj.get(obj.metadata.projection) instanceof ol.proj.EPSG4326)
|
||||
.to.be.ok();
|
||||
parser.srsName = "foo";
|
||||
done();
|
||||
});
|
||||
});
|
||||
@@ -344,3 +366,5 @@ describe('ol.parser.gml_v3', function() {
|
||||
goog.require('goog.dom.xml');
|
||||
goog.require('ol.geom.MultiPolygon');
|
||||
goog.require('ol.parser.ogc.GML_v3');
|
||||
goog.require('ol.proj');
|
||||
goog.require('ol.proj.EPSG4326');
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
<gml:GeometryCollection xmlns:gml="http://www.opengis.net/gml" srsName="foo">
|
||||
<gml:GeometryCollection xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
|
||||
<gml:geometryMember>
|
||||
<gml:Point srsName="foo">
|
||||
<gml:Point srsName="EPSG:4326">
|
||||
<gml:coordinates decimal="." cs="," ts=" ">1,2</gml:coordinates>
|
||||
</gml:Point>
|
||||
</gml:geometryMember>
|
||||
<gml:geometryMember>
|
||||
<gml:LineString srsName="foo">
|
||||
<gml:LineString srsName="EPSG:4326">
|
||||
<gml:coordinates decimal="." cs="," ts=" ">1,2 3,4</gml:coordinates>
|
||||
</gml:LineString>
|
||||
</gml:geometryMember>
|
||||
<gml:geometryMember>
|
||||
<gml:Polygon srsName="foo">
|
||||
<gml:Polygon srsName="EPSG:4326">
|
||||
<gml:outerBoundaryIs>
|
||||
<gml:LinearRing>
|
||||
<gml:coordinates decimal="." cs="," ts=" ">1,2 3,2 3,4 1,2</gml:coordinates>
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<gml:LinearRing xmlns:gml="http://www.opengis.net/gml" srsName="foo">
|
||||
<gml:LinearRing xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
|
||||
<gml:coordinates decimal="." cs="," ts=" ">1,2 3,4 5,6 1,2</gml:coordinates>
|
||||
</gml:LinearRing>
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<gml:LineString xmlns:gml="http://www.opengis.net/gml" srsName="foo">
|
||||
<gml:LineString xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
|
||||
<gml:coordinates decimal="." cs="," ts=" ">1,2 3,4</gml:coordinates>
|
||||
</gml:LineString>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<gml:MultiLineString xmlns:gml="http://www.opengis.net/gml" srsName="foo">
|
||||
<gml:MultiLineString xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
|
||||
<gml:lineStringMember>
|
||||
<gml:LineString>
|
||||
<gml:coordinates decimal="." cs="," ts=" ">1,2 2,3</gml:coordinates>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<gml:MultiPoint xmlns:gml="http://www.opengis.net/gml" srsName="foo">
|
||||
<gml:MultiPoint xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
|
||||
<gml:pointMember>
|
||||
<gml:Point>
|
||||
<gml:coordinates decimal="." cs="," ts=" ">1,2</gml:coordinates>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<gml:MultiPolygon xmlns:gml="http://www.opengis.net/gml" srsName="foo">
|
||||
<gml:MultiPolygon xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
|
||||
<gml:polygonMember>
|
||||
<gml:Polygon>
|
||||
<gml:outerBoundaryIs>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<gml:Point xmlns:gml="http://www.opengis.net/gml" srsName="foo">
|
||||
<gml:Point xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
|
||||
<gml:coord>
|
||||
<gml:X>1</gml:X>
|
||||
<gml:Y>2</gml:Y>
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<gml:Point xmlns:gml="http://www.opengis.net/gml" srsName="foo">
|
||||
<gml:Point xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
|
||||
<gml:coordinates decimal="." cs="," ts=" ">1,2</gml:coordinates>
|
||||
</gml:Point>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<gml:Polygon xmlns:gml="http://www.opengis.net/gml" srsName="foo">
|
||||
<gml:Polygon xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
|
||||
<gml:outerBoundaryIs>
|
||||
<gml:LinearRing>
|
||||
<gml:coordinates decimal="." cs="," ts=" ">1,2 5,2 5,6 1,2</gml:coordinates>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<gml:Curve xmlns:gml="http://www.opengis.net/gml" srsName="foo">
|
||||
<gml:Curve xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
|
||||
<gml:segments>
|
||||
<gml:LineStringSegment>
|
||||
<gml:posList>1 2 3 4</gml:posList>
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<gml:LinearRing xmlns:gml="http://www.opengis.net/gml" srsName="foo">
|
||||
<gml:LinearRing xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
|
||||
<gml:posList>1 2 3 4 5 6 1 2</gml:posList>
|
||||
</gml:LinearRing>
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<gml:LineString xmlns:gml="http://www.opengis.net/gml" srsName="foo">
|
||||
<gml:LineString xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
|
||||
<gml:posList>1 2 3 4</gml:posList>
|
||||
</gml:LineString>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<gml:MultiCurve xmlns:gml="http://www.opengis.net/gml" srsName="foo">
|
||||
<gml:MultiCurve xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
|
||||
<gml:curveMember>
|
||||
<gml:Curve>
|
||||
<gml:segments>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<gml:MultiCurve xmlns:gml="http://www.opengis.net/gml" srsName="foo">
|
||||
<gml:MultiCurve xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
|
||||
<gml:curveMember>
|
||||
<gml:LineString>
|
||||
<gml:posList>1 2 2 3</gml:posList>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<gml:MultiLineString xmlns:gml="http://www.opengis.net/gml" srsName="foo">
|
||||
<gml:MultiLineString xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
|
||||
<gml:lineStringMember>
|
||||
<gml:LineString>
|
||||
<gml:posList>1 2 2 3</gml:posList>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<gml:MultiPoint xmlns:gml="http://www.opengis.net/gml" srsName="foo">
|
||||
<gml:MultiPoint xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
|
||||
<gml:pointMember>
|
||||
<gml:Point>
|
||||
<gml:pos>1 2</gml:pos>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<gml:MultiPolygon xmlns:gml="http://www.opengis.net/gml" srsName="foo">
|
||||
<gml:MultiPolygon xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
|
||||
<gml:polygonMember>
|
||||
<gml:Polygon>
|
||||
<gml:exterior>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<gml:MultiSurface xmlns:gml="http://www.opengis.net/gml" srsName="foo">
|
||||
<gml:MultiSurface xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
|
||||
<gml:surfaceMember>
|
||||
<gml:Polygon>
|
||||
<gml:exterior>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<gml:MultiSurface xmlns:gml="http://www.opengis.net/gml" srsName="foo">
|
||||
<gml:MultiSurface xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
|
||||
<gml:surfaceMember>
|
||||
<gml:Surface>
|
||||
<gml:patches>
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<gml:Point xmlns:gml="http://www.opengis.net/gml" srsName="foo">
|
||||
<gml:Point xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
|
||||
<gml:pos>1 2</gml:pos>
|
||||
</gml:Point>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<gml:Polygon xmlns:gml="http://www.opengis.net/gml" srsName="foo">
|
||||
<gml:Polygon xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
|
||||
<gml:exterior>
|
||||
<gml:LinearRing>
|
||||
<gml:posList>1 2 3 2 3 4 1 2</gml:posList>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<gml:Surface xmlns:gml="http://www.opengis.net/gml" srsName="foo">
|
||||
<gml:Surface xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
|
||||
<gml:patches>
|
||||
<gml:PolygonPatch interpolation="planar">
|
||||
<gml:exterior>
|
||||
|
||||
Reference in New Issue
Block a user