GetFeatureInfoWSR.js
Summary
No overview generated for 'GetFeatureInfoWSR.js'
mapbuilder.loadScript(baseDir+"/widget/ButtonBase.js");
function GetFeatureInfoWSR(widgetNode, model) {
ButtonBase.apply(this, new Array(widgetNode, model));
this.controller = this.getProperty("mb:controller");
this.tolerance = parseFloat(this.getProperty("mb:tolerance", 3));
this.createControl = function(objRef) {
var Control = OpenLayers.Class( OpenLayers.Control, {
CLASS_NAME: 'mbControl.GetFeatureInfoWSR',
type: OpenLayers.Control.TYPE_TOOL
});
return Control;
}
this.doSelect = function(objRef, selected) {
if (selected) {
objRef.targetModel.map.events.register('click', objRef, objRef.doOnClick);
} else {
objRef.targetModel.map.events.unregister('click', objRef, objRef.doOnClick);
}
}
this.doOnClick = function(e) {
objRef = this;
if (!objRef.enabled) return;
var controller = config.objects[objRef.controller];
var layerNameList = new Array();
var selectedLayer=objRef.targetModel.getParam("selectedLayer");
var queryList;
if (!selectedLayer) {
queryList = objRef.targetModel.getQueryableLayers();
if (queryList.length==0) {
alert(mbGetMessage("noQueryableLayers"));
return;
}
} else {
queryList = [objRef.targetModel.getLayer(selectedLayer)];
}
var llPx = e.xy.add(-objRef.tolerance, objRef.tolerance);
var urPx = e.xy.add(objRef.tolerance, -objRef.tolerance);
var ll = objRef.targetModel.map.getLonLatFromPixel(llPx);
var ur = objRef.targetModel.map.getLonLatFromPixel(urPx);
for (var i=0; i<queryList.length; ++i) {
var layerNode = queryList[i];
var layerName = Mapbuilder.getProperty(layerNode, "wmc:Name", "");
var hidden = objRef.targetModel.getHidden(layerName);
if (hidden == 0) { //query only visible layers
controller.requestStylesheet.setParameter("bBoxMinX", ll.lon);
controller.requestStylesheet.setParameter("bBoxMinY", ll.lat);
controller.requestStylesheet.setParameter("bBoxMaxX", ur.lon);
controller.requestStylesheet.setParameter("bBoxMaxY", ur.lat);
controller.requestStylesheet.setParameter("queryLayer", layerName);
objRef.targetModel.setParam(controller.requestName.replace(/:/,"_"), layerName);
}
}
}
}
Documentation generated by
JSDoc on Sun Apr 27 20:30:54 2008