[OpenLayers-Users] Difficulties with GetFeatureInfo

Rick Wayne fewayne at wisc.edu
Tue Jul 8 16:01:07 EDT 2008


Hullo all,

I'm using OpenLayers and GeoServer, and am having some trouble with  
getting XML data out of GetFeatureInfo. If I ask GeoServer for  
INFO_FORMAT of application/vnd.ogc.gml, I get a response back, and it  
has the data I desire. But I cannot access those data as XML. I have  
to get them via responseText and parse that looking for angle brackets  
and the like, which is all very boring, not to say fragile as a dried  
leaf.

Of course, I should be able to make use of the responseXML property,  
but that obstinately persists in being NULL, even when the text  
response is fine. In fact, the text response is perfectly good XML. As  
a big honkin' string.

I'm using GeoServer 1.5.3 and, er, whichever OL version came with  
that. :-)

Below are the relevant calls. If anyone can assuage my ignorance, good  
cheer to them!

TIA,

Rick Wayne
UW Soil Science

         [...]
	map.events.register('click', map, function (e) {
		var url =  map.baseLayer.getFullRequestString({
			REQUEST: "GetFeatureInfo",
			EXCEPTIONS: "application/vnd.ogc.se_xml",
			BBOX: map.getExtent().toBBOX(),
			X: e.xy.x,
			Y: e.xy.y,
			INFO_FORMAT: 'application/vnd.ogc.gml',
			// INFO_FORMAT: 'text/plain',
			QUERY_LAYERS: map.baseLayer.params.LAYERS,
			FEATURE_COUNT: 1,
			srs: 'EPSG:26916',
			styles: '',
			layers: 'mmas:civil',
			WIDTH: map.size.w,
			HEIGHT: map.size.h},
			"/geoserver/wms"
	  );
		OpenLayers.loadURL(url, '', this, zoomToFeature, zoomToFeature);
		Event.stop(e);
	});

function zoomToFeature(response) {
	// lines = response.responseText.split('\n');
	var txt;
	var tag;
	var coord_index;
	var rest;
	var coord_text;
	var coords;
	var coord_pairs,ll,ur;

	txt = response.responseText; // here should be xml =  
response.responseXML;
	tag = 'gml:coordinates decimal="." cs="," ts=" ">';
	coord_index = txt.indexOf(tag);
	rest = txt.substr(coord_index + tag.length);
	end_coord_index = rest.indexOf('<');
         // And so on, too ugly to reveal the rest!





More information about the Users mailing list