GetFeatureInfo.js
Summary
No overview generated for 'GetFeatureInfo.js'
mapbuilder.loadScript(baseDir+"/widget/ButtonBase.js");
function GetFeatureInfo(widgetNode, model) {
ButtonBase.apply(this, new Array(widgetNode, model));
this.xsl = new XslProcessor(
this.getProperty("mb:stylesheet", baseDir+"/tool/GetFeatureInfo.xsl"));
this.infoFormat = this.getProperty("mb:infoFormat", "application/vnd.ogc.gml");
this.featureCount = this.getProperty("mb:featureCount", 1);
this.cursor = "pointer";
this.createControl = function(objRef) {
var Control = OpenLayers.Class( OpenLayers.Control, {
CLASS_NAME: 'mbControl.GetFeatureInfo',
type: OpenLayers.Control.TYPE_TOOL,
draw: function() {
this.handler = new OpenLayers.Handler.Box( this,
{done: this.zoomBox}, {keyMask: this.keyMask} );
},
zoomBox: function(position) {
var objRef = this.objRef
if (objRef.enabled) {
var x,y;
if (position instanceof OpenLayers.Bounds) {
x = position.left + (position.right - position.left) / 2;
y = position.top + (position.bottom - position.top) / 2;
} else {
x = position.x;
y = position.y;
}
objRef.targetModel.deleteTemplates();
var selectedLayer=objRef.targetContext.getParam("selectedLayer");
if (selectedLayer==null) {
var queryList=objRef.targetContext.getQueryableLayers();
if (queryList.length==0) {
alert(mbGetMessage("noQueryableLayers"));
return;
}
else {
for (var i=0; i<queryList.length; ++i) {
var layerNode = queryList[i];
var layerName = Mapbuilder.getProperty(layerNode, "wmc:Name", "");
var layerId = layerNode.getAttribute("id") || layerName;
var hidden = objRef.targetContext.getHidden(layerId);
if (hidden == 0) { //query only visible layers
objRef.xsl.setParameter("queryLayer", layerName);
objRef.xsl.setParameter("layer",layerName);
objRef.xsl.setParameter("xCoord", x);
objRef.xsl.setParameter("yCoord", y);
objRef.xsl.setParameter("infoFormat", objRef.infoFormat);
objRef.xsl.setParameter("featureCount", objRef.featureCount);
urlNode=objRef.xsl.transformNodeToObject(objRef.targetContext.doc);
url=getNodeValue(urlNode.documentElement);
httpPayload = new Object();
httpPayload.url = url;
httpPayload.method="get";
httpPayload.postData=null;
objRef.targetModel.newRequest(objRef.targetModel,httpPayload);
}
}
}
}
else {
objRef.xsl.setParameter("queryLayer", selectedLayer);
objRef.xsl.setParameter("layer", layerName);
objRef.xsl.setParameter("xCoord", x);
objRef.xsl.setParameter("yCoord", y);
objRef.xsl.setParameter("infoFormat", objRef.infoFormat);
objRef.xsl.setParameter("featureCount", objRef.featureCount);
var urlNode=objRef.xsl.transformNodeToObject(objRef.targetContext.doc);
var url=getNodeValue(urlNode.documentElement);
if (objRef.infoFormat=="text/html"){
window.open(url,'queryWin','height=200,width=300,scrollbars=yes');
} else {
var httpPayload = new Object();
httpPayload.url = url;
httpPayload.method="get";
httpPayload.postData=null;
objRef.targetModel.newRequest(objRef.targetModel,httpPayload);
}
}
}
}
});
return Control;
}
}
Documentation generated by
JSDoc on Sun Apr 27 20:30:54 2008