[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