[OpenLayers-Users] Handling of empty getFeatureInfoResults
Kai Behncke
Kai-Behncke at gmx.de
Tue Feb 24 06:02:22 EST 2009
Hello list,
I found a solution now via OpenLayers.Request.GET.
If somebody else might have the same problem, it works well with that code;
------>
map.events.register('click', map, function (e) {
var url = wms.getFullRequestString({
REQUEST: "GetFeatureInfo",
EXCEPTIONS:
"application/vnd.ogc.se_xml",
BBOX: wms.map.getExtent().toBBOX(),
X: e.xy.x,
Y: e.xy.y,
INFO_FORMAT: 'text/html',
QUERY_LAYERS: wms.params.LAYERS,
WIDTH: wms.map.size.w,
HEIGHT: wms.map.size.h});
function handler(request) {
answer=request.responseText.length;
if (answer==1) {
url=special_url_for_no_results;
new_window(url);
}else {
new_window(url);
}
}
var request = OpenLayers.Request.GET({
url: url,
callback: handler
});
});
Best regards, Kai
-------- Original-Nachricht --------
> Datum: Mon, 23 Feb 2009 17:32:51 +0100
> Von: "Kai Behncke" <Kai-Behncke at gmx.de>
> An: users at openlayers.org
> Betreff: [OpenLayers-Users] Handling of empty getFeatureInfoResults
> Dear list,
>
>
> I have got a question to the handling of "empty" getfeatureinfo-results.
>
>
> The "core" of getfeatureinfo.html (in the examples) is:
>
> var url = wms.getFullRequestString({
> REQUEST: "GetFeatureInfo",
> EXCEPTIONS: "application/vnd.ogc.se_xml",
> BBOX: wms.map.getExtent().toBBOX(),
> X: e.xy.x,
> Y: e.xy.y,
> INFO_FORMAT: 'text/html',
> QUERY_LAYERS: wms.params.LAYERS,
> WIDTH: wms.map.size.w,
> HEIGHT: wms.map.size.h});
> OpenLayers.loadURL(url, '', this, setHTML);
> OpenLayers.Event.stop(e);
> });
> function setHTML(response) {
> OpenLayers.Util.getElement('nodeList').innerHTML =
> response.responseText;
> }
>
>
> It works nice if I click on an existing wms-point.
>
> I wonder how to handle a empty "non-existing-response" (that comes if I
> click beside a wms-point).
>
> I try to write a function (new_window(url)) that opens a new window with
> an entry "You clicked besides the point" (or, if not, the result of the
> wms-point).
>
> like :
>
> function setHTML(response,url) {
> //"non existing response" -> click besides a point
> if (response.responseText.length==1) {
>
> url='http://noresult_url';
> new_window(url);
> }
> //response -> click on a point
> else
> {
> new_window(url);
> }
> }
>
>
> But the problem is: I don`t get it to transport the url to the function
> "setHTML", so that setHTML works with that ajax-response AND(!) the url.
>
> Has anybody an idea how to solve/handle that?
>
> Thank you very much, Kai
> --
> Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen:
> http://www.gmx.net/de/go/multimessenger01
> _______________________________________________
> Users mailing list
> Users at openlayers.org
> http://openlayers.org/mailman/listinfo/users
--
Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger01
More information about the Users
mailing list