[Mapbender-commits] r6719 - trunk/mapbender/http/classes

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Tue Aug 10 03:47:54 EDT 2010


Author: verenadiewald
Date: 2010-08-10 07:47:54 +0000 (Tue, 10 Aug 2010)
New Revision: 6719

Modified:
   trunk/mapbender/http/classes/class_map.php
Log:
changed function mergeWmsArray for initWMCObj

Modified: trunk/mapbender/http/classes/class_map.php
===================================================================
--- trunk/mapbender/http/classes/class_map.php	2010-08-09 12:00:55 UTC (rev 6718)
+++ trunk/mapbender/http/classes/class_map.php	2010-08-10 07:47:54 UTC (rev 6719)
@@ -266,8 +266,8 @@
 		if (func_num_args() > 1 
 			&& is_array($wmsArray) 
 			&& count($wmsArray) > 0) {
-			
 			$options = func_get_arg(1);
+
 			if ($options["zoom"]) {
 				$ext = $this->getExtent();
 				$srs = $ext->epsg;
@@ -308,7 +308,7 @@
 					$newEPSG = preg_replace("/EPSG:/","", $srs);
 
 					// calculate bbox via PostGIS
-					if(SYS_DBTYPE=='pgsql'){
+					if(SYS_DBTYPE=='pgsql') {
 						$con = db_connect($DBSERVER,$OWNER,$PW);
 						$sqlMinx = "SELECT X(transform(GeometryFromText('POINT(".$extArray[0]." ".$extArray[1].")',".$oldEPSG."),".$newEPSG.")) as minx";
 						$resMinx = db_query($sqlMinx);
@@ -326,7 +326,7 @@
 						$resMaxy = db_query($sqlMaxy);
 						$maxy = floatval(db_result($resMaxy,0,"maxy"));
 					}
-					else{
+					else {
 						$con_string = "host=$GEOS_DBSERVER port=$GEOS_PORT dbname=$GEOS_DB user=$GEOS_OWNER password=$GEOS_PW";
 						$con = pg_connect($con_string) or die ("Error while connecting database");
 						
@@ -355,15 +355,51 @@
 						$srs
 					));
 				}
+				
 				if (!$bboxExists) {
 					$e = new mb_exception(__FILE__ . ": mergeWmsArray: Could not determine bounding box of WMS in SRS " . $srs);
 				}
 			}
-			if ($options["show"] && is_numeric($options["show"])) {
+			
+			// visibility of WMS
+			if (isset($options["visible"])) {
+				if ($options["visible"]) {
+					// set all layers of WMS to visible
+					for ($i = 0; $i < count($wmsArray); $i++) {
+						$numLayers = count($wmsArray[$i]->objLayer);
+	
+						// using option show is dependent to option visible = true
+						if ($options["show"] && is_numeric($options["show"])) {
+							// do not display if layer count is too big
+							if ($numLayers > intval($options["show"])) {
+								continue;
+							}
+						}
+						
+						for ($j = 0; $j < $numLayers; $j++) {
+							$wmsArray[$i]->objLayer[$j]->gui_layer_visible = 1;
+						}
+					}
+				}
+				else {
+					// set all layers of WMS to visible
+					for ($i = 0; $i < count($wmsArray); $i++) {
+						$numLayers = count($wmsArray[$i]->objLayer);
+	
+						for ($j = 0; $j < $numLayers; $j++) {
+							$wmsArray[$i]->objLayer[$j]->gui_layer_visible = 0;
+						}
+					}
+				}
+			}
+			
+			
+			if ($options["show"] && is_numeric($options["show"]) && !isset($options["visible"])) {
+				$e = new mb_exception("show");
 				// set all layers of WMS to visible
 				for ($i = 0; $i < count($wmsArray); $i++) {
 					$numLayers = count($wmsArray[$i]->objLayer);
-
+					
 					// do not display if layer count is too big
 					if ($numLayers > intval($options["show"])) {
 						continue;
@@ -375,6 +411,7 @@
 				}
 			}
 		}
+		
 		$this->wmsArray = wms::merge(array_merge($this->wmsArray, $wmsArray));
 	}
 



More information about the Mapbender_commits mailing list