Added geometry parsing for Mapserver output. Thanks bartvde for the
patch. r=elemoine,me (closes #1976) git-svn-id: http://svn.openlayers.org/trunk/openlayers@9178 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -40,6 +40,13 @@ OpenLayers.Format.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Format.XML, {
|
||||
trimComma: (/\s*,\s*/g)
|
||||
},
|
||||
|
||||
/**
|
||||
* Property: gmlFormat
|
||||
* {<OpenLayers.Format.GML>} internal GML format for parsing geometries
|
||||
* in msGMLOutput
|
||||
*/
|
||||
gmlFormat: null,
|
||||
|
||||
/**
|
||||
* Constructor: OpenLayers.Format.WMSGetFeatureInfo
|
||||
* Create a new parser for WMS GetFeatureInfo responses
|
||||
@@ -110,7 +117,7 @@ OpenLayers.Format.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Format.XML, {
|
||||
if (featureNodes) {
|
||||
for (var j = 0; j < featureNodes.length; j++) {
|
||||
var featureNode = featureNodes[j];
|
||||
var geom = null;
|
||||
var geom = this.parseGeometry(featureNode);
|
||||
var attributes = this.parseAttributes(featureNode);
|
||||
var feature = new OpenLayers.Feature.Vector(geom,
|
||||
attributes, null);
|
||||
@@ -239,6 +246,31 @@ OpenLayers.Format.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Format.XML, {
|
||||
return attributes;
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: parseGeometry
|
||||
* Parse the geometry out of the node using Format.GML
|
||||
*
|
||||
* Parameters:
|
||||
* node - {<DOMElement>}
|
||||
*
|
||||
* Returns:
|
||||
* {<OpenLayers.Geometry>} the geometry object
|
||||
*/
|
||||
parseGeometry: function(node) {
|
||||
// we need to use the old Format.GML parser since we do not know the
|
||||
// geometry name
|
||||
if (!this.gmlFormat) {
|
||||
this.gmlFormat = new OpenLayers.Format.GML();
|
||||
}
|
||||
var feature = this.gmlFormat.parseFeature(node);
|
||||
var geometry = null;
|
||||
if (feature && feature.geometry) {
|
||||
geometry = feature.geometry.clone();
|
||||
feature.destroy();
|
||||
}
|
||||
return geometry;
|
||||
},
|
||||
|
||||
CLASS_NAME: "OpenLayers.Format.WMSGetFeatureInfo"
|
||||
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user