diff --git a/src/ol/format/gml2.js b/src/ol/format/gml2.js index 1d7334b48a..dce88074e3 100644 --- a/src/ol/format/gml2.js +++ b/src/ol/format/gml2.js @@ -633,6 +633,18 @@ ol.format.GML2.prototype.writeSurfaceOrPolygonMember_ = function(node, polygon, * @private */ ol.format.GML2.prototype.writeEnvelope = function(node, extent, objectStack) { + var context = objectStack[objectStack.length - 1]; + var srsName = context['srsName']; + if (srsName) { + node.setAttribute('srsName', srsName); + } + var keys = ['lowerCorner', 'upperCorner']; + var values = [extent[0] + ' ' + extent[1], extent[2] + ' ' + extent[3]]; + ol.xml.pushSerializeAndPop(/** @type {ol.XmlNodeStackItem} */ + ({node: node}), ol.format.GML2.ENVELOPE_SERIALIZERS_, + ol.xml.OBJECT_PROPERTY_NODE_FACTORY, + values, + objectStack, keys, this); }; @@ -748,3 +760,15 @@ ol.format.GML2.SURFACEORPOLYGONMEMBER_SERIALIZERS_ = { ol.format.GML2.prototype.writeSurfaceOrPolygonMember_) } }; + + +/** + * @type {Object.>} + * @private + */ +ol.format.GML2.ENVELOPE_SERIALIZERS_ = { + 'http://www.opengis.net/gml': { + 'lowerCorner': ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode), + 'upperCorner': ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode) + } +};