[Mapbender-commits] r1376 - branches/mapbender_sld/http/javascripts

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Wed May 30 03:34:35 EDT 2007


Author: uli
Date: 2007-05-30 03:34:35 -0400 (Wed, 30 May 2007)
New Revision: 1376

Modified:
   branches/mapbender_sld/http/javascripts/map_obj.js
Log:
new layer-method checkScale

Modified: branches/mapbender_sld/http/javascripts/map_obj.js
===================================================================
--- branches/mapbender_sld/http/javascripts/map_obj.js	2007-05-29 14:33:18 UTC (rev 1375)
+++ branches/mapbender_sld/http/javascripts/map_obj.js	2007-05-30 07:34:35 UTC (rev 1376)
@@ -92,6 +92,44 @@
 }
 
 /**
+ * rephrases the mapRequest
+ *
+ * @member wms_const
+ * @param Object mapObj the mapbender mapObject of the wms  
+ * @return mapRequest, onlineresource + params
+ * @type string
+ */
+wms_const.prototype.getMapRequest = function(mapObj){	
+	console.log()
+	//check visible layers first
+	var layers = this.getLayers(mapObj);
+	if(!layers){
+		return false;
+	}
+	
+	var rq = this.wms_getmap;
+	rq += mb_getConjunctionCharacter(this.wms_getmap);
+	if(this.wms_version === "1.0.0"){
+		rq += "WMTVER=" + this.wms_version + "&REQUEST=map";
+	}
+	else{
+		rq += "VERSION=" + this.wms_version + "&REQUEST=getMap&SERVICE=WMS";
+	}
+	
+	rq += "&LAYERS=" + layers.join(",");
+	rq += "&WIDTH=" + mapObj.getWidth();
+	rq += "&HEIGHT=" + mapObj.getHeight();
+	rq += "&SRS=" + mapObj.getSRS();
+	rq += "&BBOX=" + mapObj.getExtent();
+	rq += "&STYLES=" + this.getLayerstyles(mapObj).join(",");
+	rq += "&FORMAT=" + this.gui_wms_mapformat;
+	rq += "&EXCEPTIONS=";
+	console.log(rq);
+	return rq;
+};
+
+
+/**
  * rephrases the featureInfoRequest
  *
  * @member wms_const
@@ -103,7 +141,7 @@
 wms_const.prototype.getFeatureInfoRequest = function(mapObj, clickPoint){	
 	
 	//check layers and querylayers first 
-	var layers = this.getLayers();
+	var layers = this.getLayers(mapObj);
 	var querylayers = this.getQuerylayers();
 	
 	if(!layers || !querylayers){
@@ -141,18 +179,20 @@
  * @return array of layernames 
  * @type string[]
  */
-wms_const.prototype.getLayers = function(){
+wms_const.prototype.getLayers = function(mapObj){
 	
 	//visibility of the wms
 	var wmsIsVisible = (this.gui_wms_visible > 0);
 	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 !== null ){
-			visibleLayers.push(this.objLayer[i].layer_name);
+		if(this.objLayer[i].gui_layer_visible === 1 && this.objLayer[i].layer_parent !== ''){
+			if(this.objLayer[i].checkScale(mapObj)){
+				//console.log("checkLayer: " + this.objLayer[i].layer_name);
+				visibleLayers.push(this.objLayer[i].layer_name);
+			}
 		}
 	}
 	if(visibleLayers.length === 0){
@@ -161,6 +201,7 @@
 	return visibleLayers;
 };
 
+
 /**
  * get the actual style of all visible layers
  *
@@ -168,8 +209,8 @@
  * @return commaseparated list of actual layerstyles
  * @type string
  */
-wms_const.prototype.getLayerstyles = function(){
-	var layers = this.getLayers();
+wms_const.prototype.getLayerstyles = function(mapObj){
+	var layers = this.getLayers(mapObj);
 	var layerstyles = '';
 	var styles = [];
 	if(layers){
@@ -207,7 +248,7 @@
 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 !== null ){
+		if(this.objLayer[i].gui_layer_querylayer === 1 && this.objLayer[i].layer_parent !== '' ){
 			queryLayers.push(this.objLayer[i].layer_name);
 		}
 	}
@@ -286,8 +327,8 @@
 											parseInt(gui_layer_visible),
 											parseInt(gui_layer_queryable),
 											parseInt(gui_layer_querylayer),
-											gui_layer_minscale,
-											gui_layer_maxscale,
+											parseInt(gui_layer_minscale),
+											parseInt(gui_layer_maxscale),
 											gui_layer_wfs_featuretype );
 }
 function layer_addEpsg(epsg,minx,miny,maxx,maxy){
@@ -345,4 +386,24 @@
 	this.gui_layer_style;
 	this.layer_style = [];
 	wms_layer_count++;
-}
\ No newline at end of file
+}
+/**
+ * check the scale of the layer
+ *
+ * @member wms_layer 
+ * @param Object mapObj the mapbender mapObject of the layer
+ * @return boolean if the layer is in scale or not
+ * @type boolean
+ */
+wms_layer.prototype.checkScale = function(mapObj){
+	var minScale = this.gui_layer_minscale;
+	var maxScale = this.gui_layer_maxscale;
+	var currentScale = mapObj.getScale();
+	if(minScale === 0 && maxScale === 0){
+		return true;
+	}
+	if(minScale < currentScale || maxScale > currentScale){
+		return false;
+	}	
+	return true;
+};
\ No newline at end of file



More information about the Mapbender_commits mailing list