[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