[OpenLayers-Users] Difficulties with GetFeatureInfo

mpriour mpriour at kestrelcomputer.com
Tue Jul 8 22:54:34 EDT 2008


I was actually struggling with this same problem this past month.
You should use:

var xmlResponse = new OpenLayers.Format.XML().read(response.responseText);

this will convert the text into a valid xml object.
>From there you can do whatever you want to it.

I am writing some convience methods that extend OpenLayers.Format.GML to
parse the GML GetFeatureInfo response into predictable js objects. The
current methods for Format.GML & Format.WFS are not designed to correctly
parse the entire GML GetFeatureInfo response. They can parse some geometry
or features from portions of the response.

Matt Priour
Kestrel Computer Consulting
www.kestrelcompter.com - homepage
priour.wordpress.com - blog


Eric Lemoine-3 wrote:
> 
> Hi. Have you tried using OpenLayers.Format.GML for de-serializing the
> response text into feature objects? Eric
> 
> 2008/7/8, Rick Wayne <fewayne at wisc.edu>:
>> 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!
>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at openlayers.org
>> http://openlayers.org/mailman/listinfo/users
>>
> _______________________________________________
> Users mailing list
> Users at openlayers.org
> http://openlayers.org/mailman/listinfo/users
> 
> 

-- 
View this message in context: http://www.nabble.com/Difficulties-with-GetFeatureInfo-tp18347813p18353488.html
Sent from the OpenLayers Users mailing list archive at Nabble.com.




More information about the Users mailing list