[Mapbender-commits] r6687 - in trunk/mapbender/http: classes javascripts

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Wed Aug 4 06:17:00 EDT 2010


Author: verenadiewald
Date: 2010-08-04 10:17:00 +0000 (Wed, 04 Aug 2010)
New Revision: 6687

Added:
   trunk/mapbender/http/javascripts/initWmcObj.php
Modified:
   trunk/mapbender/http/classes/class_wmc.php
Log:
create init wmc for map settings

Modified: trunk/mapbender/http/classes/class_wmc.php
===================================================================
--- trunk/mapbender/http/classes/class_wmc.php	2010-08-04 09:56:04 UTC (rev 6686)
+++ trunk/mapbender/http/classes/class_wmc.php	2010-08-04 10:17:00 UTC (rev 6687)
@@ -880,6 +880,18 @@
 		return $this->xml;
 	}
 
+	public function wmsToJavaScript() {
+		$wmsArray = $this->mainMap->getWmsArray();
+
+		$wmcJsArray = array();
+		for ($i = 0; $i < count($wmsArray); $i++) {
+			$currentWms = $wmsArray[$i];
+	
+			$wmcJsArray[] = $currentWms->createJsObjFromWMS_();
+		}
+		return $wmcJsArray;
+	}
+	
 	/**
 	 * Returns an array of JavaScript statements
 	 * 
@@ -942,7 +954,7 @@
 			}
 			array_push($wmcJsArray, $wmsArray[$i]->createJsObjFromWMS_());
 		}
-
+		
 		// delete existing map objects...
 //		array_push($wmcJsArray, "mb_mapObj = [];");
 

Added: trunk/mapbender/http/javascripts/initWmcObj.php
===================================================================
--- trunk/mapbender/http/javascripts/initWmcObj.php	                        (rev 0)
+++ trunk/mapbender/http/javascripts/initWmcObj.php	2010-08-04 10:17:00 UTC (rev 6687)
@@ -0,0 +1,93 @@
+<?php
+//
+// Load WMS via WMC
+// 
+require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+require_once(dirname(__FILE__)."/../classes/class_wmc.php");
+require_once(dirname(__FILE__)."/../classes/class_administration.php");
+
+$wmc = new wmc();
+$wmc->createFromApplication(Mapbender::session()->get("mb_user_gui"));
+
+//validate GET params from Mapbender Url
+$getParams = $_GET;
+
+if ($getParams['WMS']) {
+	// WMS param given as array
+	if (is_array($getParams['WMS'])) {
+		$inputWmsArray = $getParams['WMS'];
+	}
+	// WMS param given as comma separated list
+	else {
+		$inputWmsArray = split(",",$getParams['WMS']); 
+	}
+	
+	$wmsArray = array();
+	$singleAssocArray = array();
+	$multipleAssocArray = array();
+	
+	foreach ($inputWmsArray as $key=>$val) {
+		if (is_array($val)) {
+			foreach ($val as $attr=>$value) {
+				$multipleAssocArray[$attr] = $value;
+			}
+			//get WMS by ID with settings of given application
+			if (array_key_exists('application', $multipleAssocArray) && 
+				array_key_exists('id', $multipleAssocArray)) {
+				$currentWms = new wms();	
+				$currentWms->createObjFromDB($multipleAssocArray['application'], $multipleAssocArray['id']);
+			}
+			//get WMS by URL
+			elseif (array_key_exists('url', $multipleAssocArray)) {
+				$currentWms = new wms();
+				$currentWms->createObjFromXML($multipleAssocArray['url']);
+			}
+			else {
+				continue;
+			}
+			array_push($wmsArray, $currentWms);
+		}
+		else {
+			$currentWms = new wms();
+			if(is_numeric($key)) {
+				//get WMS by URL
+				if (is_string($val)) {
+					$currentWms->createObjFromXML($val);
+				}
+				//get WMS by ID
+				if (is_numeric($val)) {
+					$currentWms->createObjFromDBNoGui($val);
+				}
+				array_push($wmsArray, $currentWms);
+			} 
+			else {
+				$singleAssocArray[$key] = $val;
+			}
+		}
+	}
+	
+	//get WMS by ID with settings of given application
+	if (array_key_exists('application', $singleAssocArray) && 
+		array_key_exists('id', $singleAssocArray)) {
+		$currentWms = new wms();	
+		$currentWms->createObjFromDB($singleAssocArray['application'], $singleAssocArray['id']);
+		array_push($wmsArray, $currentWms);
+	}
+	//get WMS by URL
+	elseif (array_key_exists('url', $singleAssocArray)) {
+		$currentWms = new wms();
+		$currentWms->createObjFromXML($singleAssocArray['url']);
+		array_push($wmsArray, $currentWms);
+	}
+
+	$wmc->mergeWmsArray($wmsArray);
+}
+
+$output = $wmc->wmsToJavaScript();
+
+for ($i = 0; $i < count($output); $i++) {
+	echo administration::convertOutgoingString($output[$i]);
+}
+unset($output);
+unset($wmc);
+?>



More information about the Mapbender_commits mailing list