[Mapbender-commits] r1352 - branches/redesign/http/javascripts

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Thu May 24 10:59:52 EDT 2007


Author: uli
Date: 2007-05-24 10:59:52 -0400 (Thu, 24 May 2007)
New Revision: 1352

Modified:
   branches/redesign/http/javascripts/map.php
   branches/redesign/http/javascripts/map_obj.js
Log:
more oo methods etc

Modified: branches/redesign/http/javascripts/map.php
===================================================================
--- branches/redesign/http/javascripts/map.php	2007-05-24 14:58:41 UTC (rev 1351)
+++ branches/redesign/http/javascripts/map.php	2007-05-24 14:59:52 UTC (rev 1352)
@@ -182,7 +182,7 @@
 	 * @return width of the mapObj  
 	 * @type integer  
 	 */
-	this.getWidth = function(){
+	this.getHeight = function(){
 		return this.height;
 	};
 	
@@ -223,6 +223,10 @@
 		for(var i=0; i<this.wms.length; i++){
 			allRequests.push(this.wms[i].getFeatureInfoRequest(this, clickPoint));
 		}
+		if(allRequests.length > 0){
+			return allRequests;
+		}
+		return false;
 	};
 	
 	

Modified: branches/redesign/http/javascripts/map_obj.js
===================================================================
--- branches/redesign/http/javascripts/map_obj.js	2007-05-24 14:58:41 UTC (rev 1351)
+++ branches/redesign/http/javascripts/map_obj.js	2007-05-24 14:59:52 UTC (rev 1352)
@@ -94,33 +94,58 @@
 /**
  * rephrases the featureInfoRequest
  *
- * @member wms_const 
- * @param Point clickPoint map-click position (pixel x, pixel y)
+ * @member wms_const
+ * @param Object mapObj the mapbender mapObject of the wms  
+ * @param Point clickPoint map-click position 
  * @return featureInfoRequest, onlineresource + params
  * @type string
  */
 wms_const.prototype.getFeatureInfoRequest = function(mapObj, clickPoint){	
-	var rq = '';
 	
-	//Parameter LAYERS
+	//check layers and querylayers first 
 	var layers = this.getLayers();
 	var querylayers = this.getQuerylayers();
+	
 	if(!layers || !querylayers){
 		return false;
 	}
 	
-	rq += "LAYERS=" + layers;
-	rq += "&QUERY_LAYERS=" + querylayers;
-	 
-	alert(rq);
+	var rq = this.wms_getfeatureinfo;
+	rq += mb_getConjunctionCharacter(this.wms_getfeatureinfo);
+	if(this.wms_version === "1.0.0"){
+		rq += "WMTVER=" + this.wms_version + "&REQUEST=feature_info";
+	}
+	else{
+		rq += "VERSION=" + this.wms_version + "&REQUEST=GetFeatureInfo&SERVICE=WMS";
+	}
+	
+	rq += "&LAYERS=" + layers.join(",");
+	rq += "&QUERY_LAYERS=" + querylayers.join(",");
+	rq += "&WIDTH=" + mapObj.getWidth();
+	rq += "&HEIGHT=" + mapObj.getHeight();
+	rq += "&SRS=" + mapObj.getSRS();
+	rq += "&BBOX=" + mapObj.getExtent();
+	rq += "&STYLES=" + this.getLayerstyles().join(",");
+	rq += "&FORMAT=" + this.gui_wms_mapformat;
+	rq += "&INFO_FORMAT=" + this.gui_wms_featureinfoformat;
+	rq += "&EXCEPTIONS=application/vnd.ogc.se_xml";
+	rq += "&X=" + clickPoint.x;
+	rq += "&Y=" + clickPoint.y;
+	
+//TODO: handle FEATURE_COUNT AS ELEMENT_VAR IN EACH MODULE
+//	if(mb_feature_count > 0){             
+//		rq += "FEATURE_COUNT="+mb_feature_count+"&";
+//	}
+//	console.log(rq);
+
 };
 
 /**
  * get all visible layers
  *
  * @member wms_const 
- * @return commaseparated list of layernames
- * @type string
+ * @return array of layernames 
+ * @type string[]
  */
 wms_const.prototype.getLayers = function(){
 	
@@ -129,37 +154,73 @@
 	if(!wmsIsVisible){
 		return false;
 	}
-	
+	//TODO: consider scalehints	
 	visibleLayers = [];
 	for(var i=0; i< this.objLayer.length; i++){
-		if(this.objLayer[i].gui_layer_visible === 1 && this.objLayer[i].layer_parent !== '' ){
+		if(this.objLayer[i].gui_layer_visible === 1 && this.objLayer[i].layer_parent !== null ){
 			visibleLayers.push(this.objLayer[i].layer_name);
 		}
 	}
-	if(visibleLayers.length == 0){
+	if(visibleLayers.length === 0){
 		return false;
 	}
-	return visibleLayers.join(",");
+	return visibleLayers;
 };
 
 /**
- * get all querylayers
+ * get the actual style of all visible layers
  *
  * @member wms_const 
- * @return commaseparated list of layernames
+ * @return commaseparated list of actual layerstyles
  * @type string
  */
+wms_const.prototype.getLayerstyles = function(){
+	var layers = this.getLayers();
+	var layerstyles = '';
+	var styles = [];
+	if(layers){
+		for(i = 0; i < layers.length; i++){
+			var style = this.getStyleByLayerName(layers[i]);
+			if(!style){
+				style = '';
+			}
+			styles.push(style)
+		}
+		return styles;
+	}
+	return false;
+};
+
+/**
+ * get the style of the layer
+ *
+ * @member wms_const 
+ * @param layername
+ * @return the stylename of the given layer
+ * @type string
+ */
+wms_const.prototype.getStyleByLayerName = function(layername){
+	return false;
+};
+
+/**
+ * get all querylayers
+ *
+ * @member wms_const 
+ * @return array of layernames
+ * @type string[]
+ */
 wms_const.prototype.getQuerylayers = function(){
 	queryLayers = [];
 	for(var i=0; i< this.objLayer.length; i++){
-		if(this.objLayer[i].gui_layer_querylayer === 1 && this.objLayer[i].layer_parent !== '' ){
+		if(this.objLayer[i].gui_layer_querylayer === 1 && this.objLayer[i].layer_parent !== null ){
 			queryLayers.push(this.objLayer[i].layer_name);
 		}
 	}
-	if(visibleLayers.length == 0){
+	if(queryLayers.length === 0){
 		return false;
 	}
-	return visibleLayers.join(",");
+	return queryLayers;
 };
 
 function wms_add_data_type_format(datatype,dataformat){
@@ -191,7 +252,7 @@
 		currentLayer.layer_style[count]["legendurlformat"] = styleLegendUrlFormat;
 	}
 }
-
+//TODO: add layerstyle handling....
 //layer
 function wms_add_layer(
 			layer_parent,
@@ -227,23 +288,24 @@
 											layer_metadataurl,
 											gui_layer_wms_id,
 											gui_layer_status,
-											gui_layer_selectable,
-											gui_layer_visible,
-											gui_layer_queryable,
-											gui_layer_querylayer,
+											parseInt(gui_layer_selectable),
+											parseInt(gui_layer_visible),
+											parseInt(gui_layer_queryable),
+											parseInt(gui_layer_querylayer),
 											gui_layer_minscale,
 											gui_layer_maxscale,
 											gui_layer_wfs_featuretype );
 }
 function layer_addEpsg(epsg,minx,miny,maxx,maxy){
-	var j=wms[wms.length-1].objLayer.length-1;
-	var k=wms[wms.length-1].objLayer[j].layer_epsg.length;
-	wms[wms.length-1].objLayer[j].layer_epsg[k]=[];
-	wms[wms.length-1].objLayer[j].layer_epsg[k]["epsg"]=epsg;
-	wms[wms.length-1].objLayer[j].layer_epsg[k]["minx"]=minx;
-	wms[wms.length-1].objLayer[j].layer_epsg[k]["miny"]=miny;
-	wms[wms.length-1].objLayer[j].layer_epsg[k]["maxx"]=maxx;
-	wms[wms.length-1].objLayer[j].layer_epsg[k]["maxy"]=maxy;
+	var j = wms[wms.length-1].objLayer.length-1;
+	var k = wms[wms.length-1].objLayer[j].layer_epsg.length;
+	var currentLayer = wms[wms.length-1].objLayer[j];
+	currentLayer.layer_epsg[k]=[];
+	currentLayer.layer_epsg[k]["epsg"]=epsg;
+	currentLayer.layer_epsg[k]["minx"]=minx;
+	currentLayer.layer_epsg[k]["miny"]=miny;
+	currentLayer.layer_epsg[k]["maxx"]=maxx;
+	currentLayer.layer_epsg[k]["maxy"]=maxy;
 }
 function wms_layer(
 			layer_parent,
@@ -286,6 +348,7 @@
 	this.gui_layer_minscale = gui_layer_minscale;
 	this.gui_layer_maxscale = gui_layer_maxscale;
 	this.gui_layer_wfs_featuretype = gui_layer_wfs_featuretype;
+	this.gui_layer_style;
 	this.layer_style = [];
 	wms_layer_count++;
 }
\ No newline at end of file



More information about the Mapbender_commits mailing list