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

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Thu Aug 19 12:05:55 EDT 2010


Author: christoph
Date: 2010-08-19 16:05:55 +0000 (Thu, 19 Aug 2010)
New Revision: 6770

Modified:
   trunk/mapbender/http/classes/class_map.php
   trunk/mapbender/http/classes/class_wmc.php
   trunk/mapbender/http/classes/class_wmcToXml.php
   trunk/mapbender/http/javascripts/initWmcObj.php
   trunk/mapbender/http/javascripts/map_obj.js
Log:
added root layer to WMC

changed interface of Mapbender.Map

Modified: trunk/mapbender/http/classes/class_map.php
===================================================================
--- trunk/mapbender/http/classes/class_map.php	2010-08-19 16:03:36 UTC (rev 6769)
+++ trunk/mapbender/http/classes/class_map.php	2010-08-19 16:05:55 UTC (rev 6770)
@@ -66,14 +66,14 @@
 	 * @param $value String
 	 */
 	public function setFrameName ($value) {
-		$this->frameName = $value;
+		$this->frameName = strval($value);
 	}
 
 	/**
 	 * @param $value String
 	 */
 	public function setElementName ($value) {
-		$this->elementName = $value;
+		$this->elementName = strval($value);
 	}
 
 	/**
@@ -574,14 +574,9 @@
 	 * Returns an array of string, which are JS statements.
 	 * @return String[]
 	 */
-	public function toJavaScript ($wmsIndex) {
+	public function toJavaScript ($wmsJson) {
 		$jsCodeArray = array();
 
-		// initialise map object
-		if ($wmsIndex === null) {
-			$wmsIndex = "null";
-		}
-
 		// syntax has changed in 2.6! Map is no longer a frame
 		$registerMapString = "var currentWmcMap = Mapbender.modules['" . 
 			$this->frameName . "'];" .
@@ -607,7 +602,7 @@
 			$this->extent->max->y . ")});"; 
 		array_push($jsCodeArray, $calcExtentString);
 		
-		$setWmsString = "currentWmcMap.setWms(" . $wmsIndex . ");";
+		$setWmsString = "currentWmcMap.setWms(" . $wmsJson . ");";
 		array_push($jsCodeArray, $setWmsString);
 		
 		$initWmsString = "currentWmcMap.initializeWms();";

Modified: trunk/mapbender/http/classes/class_wmc.php
===================================================================
--- trunk/mapbender/http/classes/class_wmc.php	2010-08-19 16:03:36 UTC (rev 6769)
+++ trunk/mapbender/http/classes/class_wmc.php	2010-08-19 16:05:55 UTC (rev 6770)
@@ -201,7 +201,7 @@
 		// set extension data		
 		$this->generalExtensionArray = $extensionData;
 
-		if ($id !== null) {
+		if ($id) {
 			//set id
 			$this->wmc_id = $id;
 		}
@@ -288,7 +288,7 @@
 			$sql .=	"ORDER BY wmc_timestamp DESC";
 		
 			$res = db_prep_query($sql, $v, $t);
-			while($row = db_fetch_array($res)){
+			while($row = db_fetch_assoc($res)){
 				$currentResult = array();
 				$currentResult["id"] = $row["wmc_id"];
 				$currentResult["abstract"] = $row["abstract"];
@@ -796,6 +796,24 @@
 		return false;
 	}
 
+	/**
+	 * Returns a WMC document
+	 * @return String|boolean The document if it exists; else false
+	 * @param $id String the WMC id
+	 */
+	public static function getDocumentByTitle ($title) {
+		$sql = "SELECT wmc FROM mb_user_wmc WHERE wmc_title = $1 AND " . 
+			"(fkey_user_id = $2 OR wmc_public = 1)";
+		$v = array($title, Mapbender::session()->get("mb_user_id"));
+		$t = array('s', 'i');
+		$res = db_prep_query($sql,$v,$t);
+		$row = db_fetch_array($res);
+		if ($row) {
+			return $row["wmc"];
+		}
+		return false;
+	}
+
     /*
     * sets the WMC's public flag
     * @param $public boolean wether access should be public
@@ -958,11 +976,21 @@
 
 		// .. and add the overview map (if exists) and set map request
 		if ($this->overviewMap !== null) {
-			$wmcJsArray = array_merge($wmcJsArray, $this->overviewMap->toJavaScript($overviewWmsIndex));
+			$wmcJsArray = array_merge(
+				$wmcJsArray, 
+				$this->overviewMap->toJavaScript(
+					"{wms:wms,wmsIndexOverview:" . $overviewWmsIndex . "}"
+				)
+			);
 		}
 
 		// .. and add main map ..
-		$wmcJsArray = array_merge($wmcJsArray, $this->mainMap->toJavaScript(null));
+		$wmcJsArray = array_merge(
+			$wmcJsArray, 
+			$this->mainMap->toJavaScript(
+				"{wms:wms,wmsIndexOverview:null}"
+			)
+		);
 
 		// set visibility of ov map WMS (may be different from main)
 		if ($this->overviewMap !== null) {
@@ -1086,7 +1114,7 @@
 		$layerlistArray = array();
 		$layerlistArray["main"] = array();
 		$layerlistArray["overview"] = array();
-			 
+
 		foreach ($values as $element) {
 			$tag = strtoupper(administration::sepNameSpace($element[tag]));
 			$tagLowerCase = administration::sepNameSpace($element[tag]);
@@ -1580,93 +1608,6 @@
 				array_push($wms->data_format, $currentLayer["format"][$i]["name"]);							
 			}
 
-			// set root layer
-			$wms->addLayer(0, "");
-			$wms->objLayer[0]->layer_uid = $currentLayer["extension"]["WMS_LAYER_ID"];
-			$wms->objLayer[0]->layer_name = $currentLayer["extension"]["WMS_NAME"];
-			$wms->objLayer[0]->layer_title = $currentLayer["wms_title"];
-			$wms->objLayer[0]->layer_pos = 0;
-			$wms->objLayer[0]->layer_queryable = 0;
-			$wms->objLayer[0]->layer_minscale = 0;
-			$wms->objLayer[0]->layer_maxscale = 0;
-			$wms->objLayer[0]->gui_layer_wms_id = $currentLayer["extension"]["WMS_ID"];
-			$wms->objLayer[0]->gui_layer_status = 1;
-			$wms->objLayer[0]->gui_layer_selectable = $currentLayer["extension"]["WMS_SELECTABLE"];
-			$wms->objLayer[0]->gui_layer_visible = 1;
-			$wms->objLayer[0]->gui_layer_queryable = 0;
-			$wms->objLayer[0]->gui_layer_querylayer = 0;
-			$wms->objLayer[0]->gui_layer_minscale = 0;
-			$wms->objLayer[0]->gui_layer_maxscale = 0;
-
-			// layer epsg
-			if ($currentLayer["extension"]["EPSG"]) {
-				$layerEpsgArray = array();
-				$layerMinXArray = array();
-				$layerMinYArray = array();
-				$layerMaxXArray = array();
-				$layerMaxYArray = array();
-				if (!is_array($currentLayer["extension"]["EPSG"])) {
-					$layerEpsgArray[0] = $currentLayer["extension"]["EPSG"];
-					$layerMinXArray[0] = $currentLayer["extension"]["MINX"];
-					$layerMinYArray[0] = $currentLayer["extension"]["MINY"];
-					$layerMaxXArray[0] = $currentLayer["extension"]["MAXX"];
-					$layerMaxYArray[0] = $currentLayer["extension"]["MAXY"];
-				}
-				else {
-					$layerEpsgArray = $currentLayer["extension"]["EPSG"];
-					$layerMinXArray = $currentLayer["extension"]["MINX"];
-					$layerMinYArray = $currentLayer["extension"]["MINY"];
-					$layerMaxXArray = $currentLayer["extension"]["MAXX"];
-					$layerMaxYArray = $currentLayer["extension"]["MAXY"];
-				}
-
-				$wmcExtent = $this->mainMap->getExtent();
-				$wmcEpsg = $wmcExtent->epsg;
-	
-				$found = false;
-				for ($i=0; $i < count($layerEpsgArray); $i++) {
-					$currentLayerEpsg = array();
-					$currentLayerEpsg["epsg"] = $layerEpsgArray[$i];
-
-					if ($currentLayerEpsg["epsg"] === $wmcEpsg) {
-						$found = true;
-					}
-					if ($layerMinXArray[$i] == 0
-						&& $layerMinYArray[$i] == 0
-						&& $layerMaxXArray[$i] == 0
-						&& $layerMaxYArray[$i] == 0
-						) {
-						$currentLayerEpsg["minx"] = null;
-						$currentLayerEpsg["miny"] = null; 
-						$currentLayerEpsg["maxx"] = null;
-						$currentLayerEpsg["maxy"] = null;
-					}
-					else {
-						$currentLayerEpsg["minx"] = floatval($layerMinXArray[$i]);
-						$currentLayerEpsg["miny"] = floatval($layerMinYArray[$i]); 
-						$currentLayerEpsg["maxx"] = floatval($layerMaxXArray[$i]);
-						$currentLayerEpsg["maxy"] = floatval($layerMaxYArray[$i]);
-					}
-					array_push($wms->objLayer[0]->layer_epsg, $currentLayerEpsg);
-				}
-				if (!$found) {
-					$sourceExtent = new Mapbender_bbox(
-						$wms->objLayer[0]->layer_epsg[0]["minx"],
-						$wms->objLayer[0]->layer_epsg[0]["maxx"],
-						$wms->objLayer[0]->layer_epsg[0]["miny"],
-						$wms->objLayer[0]->layer_epsg[0]["maxy"],
-						$wms->objLayer[0]->layer_epsg[0]["epsg"]
-					);
-					$sourceExtent->transform($wmcEpsg);
-					array_push($wms->objLayer[0]->layer_epsg, array(
-						"minx" => $sourceExtent->min->x,
-						"miny" => $sourceExtent->min->y,
-						"maxx" => $sourceExtent->max->x,
-						"maxy" => $sourceExtent->max->y,
-						"epsg" => $sourceExtent->epsg
-					));
-				}
-			}			
 			// add WMS
 			array_push($wmsArray, $wms);
 
@@ -1697,9 +1638,30 @@
 			$this->generalExtensionArray["OV_SRS"]) {
 			
 			$this->overviewMap = new Map();
-			$this->overviewMap->setWidth($this->generalExtensionArray["OV_WIDTH"]);
-			$this->overviewMap->setHeight($this->generalExtensionArray["OV_HEIGHT"]);
-			$this->overviewMap->setFrameName($this->generalExtensionArray["OV_FRAMENAME"]);
+			$this->overviewMap->setWidth(
+				// this should not be an array, but sometimes it is.
+				// I can't find the reason at the moment, consider
+				// this a workaround
+				is_array($this->generalExtensionArray["OV_WIDTH"]) ?
+					$this->generalExtensionArray["OV_WIDTH"][0] : 
+					$this->generalExtensionArray["OV_WIDTH"]
+			);
+			$this->overviewMap->setHeight(
+				// this should not be an array, but sometimes it is.
+				// I can't find the reason at the moment, consider
+				// this a workaround
+				is_array($this->generalExtensionArray["OV_HEIGHT"]) ? 
+					$this->generalExtensionArray["OV_HEIGHT"][0] :
+					$this->generalExtensionArray["OV_HEIGHT"]
+			);
+			$this->overviewMap->setFrameName(
+				// this should not be an array, but sometimes it is.
+				// I can't find the reason at the moment, consider
+				// this a workaround
+				is_array($this->generalExtensionArray["OV_FRAMENAME"]) ?
+					$this->generalExtensionArray["OV_FRAMENAME"][0] :
+					$this->generalExtensionArray["OV_FRAMENAME"]
+			);
 			$this->overviewMap->setIsOverview(true);
 
 			$bbox = new Mapbender_bbox($this->generalExtensionArray["OV_MINX"], $this->generalExtensionArray["OV_MINY"], $this->generalExtensionArray["OV_MAXX"], $this->generalExtensionArray["OV_MAXY"], $this->generalExtensionArray["OV_SRS"]);
@@ -1742,7 +1704,14 @@
 		}			
 
 		if ($this->generalExtensionArray["MAIN_FRAMENAME"]) {
-			$this->mainMap->setFrameName($this->generalExtensionArray["MAIN_FRAMENAME"]);
+			$this->mainMap->setFrameName(
+				// this should not be an array, but sometimes it is.
+				// I can't find the reason at the moment, consider
+				// this a workaround
+				is_array($this->generalExtensionArray["MAIN_FRAMENAME"]) ?
+					$this->generalExtensionArray["MAIN_FRAMENAME"][0] :
+					$this->generalExtensionArray["MAIN_FRAMENAME"]
+			);
 		}
 		else {
 			$this->mainMap->setFrameName("mapframe1");

Modified: trunk/mapbender/http/classes/class_wmcToXml.php
===================================================================
--- trunk/mapbender/http/classes/class_wmcToXml.php	2010-08-19 16:03:36 UTC (rev 6769)
+++ trunk/mapbender/http/classes/class_wmcToXml.php	2010-08-19 16:05:55 UTC (rev 6770)
@@ -271,99 +271,91 @@
 			return null;
 		}
 
-		if ($currentLayer->layer_parent !== '' && !is_null($currentLayer->layer_parent)) {
-		
-			// Layer
-			$e_layer = $this->doc->createElement("Layer");
-			$e_layer->setAttribute("queryable", $currentLayer->layer_queryable);
-			$e_layer->setAttribute("hidden", ($currentLayer->gui_layer_visible ? 0 : 1));
+		// Layer
+		$e_layer = $this->doc->createElement("Layer");
+		$e_layer->setAttribute("queryable", $currentLayer->layer_queryable);
+		$e_layer->setAttribute("hidden", ($currentLayer->gui_layer_visible ? 0 : 1));
 
-			// Server
-			$e_service = $this->doc->createElement("Server");
-			$e_service->setAttribute("service", "OGC:WMS");
-			$e_service->setAttribute("version", $currentWms->wms_version);
-			$e_service->setAttribute("title", 
-				$currentWms->objLayer[0]->gui_layer_title != "" ? 
-					$currentWms->objLayer[0]->gui_layer_title : 
-					$currentWms->wms_title
-			);
+		// Server
+		$e_service = $this->doc->createElement("Server");
+		$e_service->setAttribute("service", "OGC:WMS");
+		$e_service->setAttribute("version", $currentWms->wms_version);
+		$e_service->setAttribute("title", $currentWms->wms_title);
 
-			// Online resource
-			$e_service_or = $this->doc->createElement("OnlineResource");
-			$e_service_or->setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink");
-			$e_service_or->setAttribute("xlink:type", "simple");
-			$e_service_or->setAttribute("xlink:href", $currentWms->wms_getmap);
-			$e_service->appendChild($e_service_or);
-			$e_layer->appendChild($e_service);
+		// Online resource
+		$e_service_or = $this->doc->createElement("OnlineResource");
+		$e_service_or->setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink");
+		$e_service_or->setAttribute("xlink:type", "simple");
+		$e_service_or->setAttribute("xlink:href", $currentWms->wms_getmap);
+		$e_service->appendChild($e_service_or);
+		$e_layer->appendChild($e_service);
 
-			// Name
-			$currentLayerName = $currentLayer->layer_name;
-			$e_layer_name = $this->doc->createElement("Name", $currentLayerName);
-			$e_layer->appendChild($e_layer_name);
+		// Name
+		$currentLayerName = $currentLayer->layer_name;
+		$e_layer_name = $this->doc->createElement("Name", $currentLayerName);
+		$e_layer->appendChild($e_layer_name);
 
-			// Title
-			$currentLayerTitle = $currentLayer->gui_layer_title;
-			$e_layer_title = $this->doc->createElement("Title", $currentLayerTitle);
-			$e_layer->appendChild($e_layer_title);
+		// Title
+		$currentLayerTitle = $currentLayer->gui_layer_title;
+		$e_layer_title = $this->doc->createElement("Title", $currentLayerTitle);
+		$e_layer->appendChild($e_layer_title);
+		
+		// Abstract
+		if ($currentWms->wms_abstract){
+			$e_layer_abstract = $this->doc->createElement("Abstract", $currentWms->wms_abstract);
+			$e_layer->appendChild($e_layer_abstract);
+		}
+
+		// Data URL
+		if ($currentLayer->layer_dataurl_href){
+			$e_layer_data_url = $this->doc->createElement("DataURL");
+
+			$e_layer_data_url_or = $this->doc->createElement("OnlineResource");
+			$e_layer_data_url_or->setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink");
+			$e_layer_data_url_or->setAttribute("xlink:type", "simple");
+			$e_layer_data_url_or->setAttribute("xlink:href", $currentLayer->layer_dataurl_href);
 			
-			// Abstract
-			if ($currentWms->wms_abstract){
-				$e_layer_abstract = $this->doc->createElement("Abstract", $currentWms->wms_abstract);
-				$e_layer->appendChild($e_layer_abstract);
-			}
+			$e_layer_data_url->appendChild($e_layer_data_url_or);
+			$e_layer->appendChild($e_layer_data_url);
+		}
 
-			// Data URL
-			if ($currentLayer->layer_dataurl_href){
-				$e_layer_data_url = $this->doc->createElement("DataURL");
-	
-				$e_layer_data_url_or = $this->doc->createElement("OnlineResource");
-				$e_layer_data_url_or->setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink");
-				$e_layer_data_url_or->setAttribute("xlink:type", "simple");
-				$e_layer_data_url_or->setAttribute("xlink:href", $currentLayer->layer_dataurl_href);
-				
-				$e_layer_data_url->appendChild($e_layer_data_url_or);
-				$e_layer->appendChild($e_layer_data_url);
-			}
+		// Metadata URL
+		if ($currentLayer->layer_metadataurl){
+			$e_layer_metadata_url = $this->doc->createElement("MetadataURL");
 
-			// Metadata URL
-			if ($currentLayer->layer_metadataurl){
-				$e_layer_metadata_url = $this->doc->createElement("MetadataURL");
+			// Metadata URL online resource
+			$e_layer_metadata_url_or = $this->doc->createElement("OnlineResource");
+			$e_layer_metadata_url_or->setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink");
+			$e_layer_metadata_url_or->setAttribute("xlink:type", "simple");
+			$e_layer_metadata_url_or->setAttribute("xlink:href", $currentLayer->layer_metadataurl);
+			$e_layer_metadata_url->appendChild($e_layer_metadata_url_or);
+			$e_layer->appendChild($e_layer_metadata_url);
+		}
 
-				// Metadata URL online resource
-				$e_layer_metadata_url_or = $this->doc->createElement("OnlineResource");
-				$e_layer_metadata_url_or->setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink");
-				$e_layer_metadata_url_or->setAttribute("xlink:type", "simple");
-				$e_layer_metadata_url_or->setAttribute("xlink:href", $currentLayer->layer_metadataurl);
-				$e_layer_metadata_url->appendChild($e_layer_metadata_url_or);
-				$e_layer->appendChild($e_layer_metadata_url);
-			}
+		// SRS		
+		$srsNode = $this->createSrsNode($currentMap, $currentWms);
+		if ($srsNode !== null) {
+			$e_layer->appendChild($srsNode);
+		}
 
-			// SRS		
-			$srsNode = $this->createSrsNode($currentMap, $currentWms);
-			if ($srsNode !== null) {
-				$e_layer->appendChild($srsNode);
-			}
-	
-			// Layer format
-			$formatListNode = $this->createLayerFormatListNode($currentWms);
-			if ($formatListNode !== null) {
-				$e_layer->appendChild($formatListNode);
-			}
+		// Layer format
+		$formatListNode = $this->createLayerFormatListNode($currentWms);
+		if ($formatListNode !== null) {
+			$e_layer->appendChild($formatListNode);
+		}
 
-			// Layer style
-			$layerStyleListNode = $this->createLayerStyleNode($currentWms, $currentLayer);
-			if ($layerStyleListNode !== null) {
-				$e_layer->appendChild($layerStyleListNode);
-			}
+		// Layer style
+		$layerStyleListNode = $this->createLayerStyleNode($currentWms, $currentLayer);
+		if ($layerStyleListNode !== null) {
+			$e_layer->appendChild($layerStyleListNode);
+		}
 
-			// Extension
-			$extensionNode = $this->createLayerExtensionNode($currentMap, $currentWms, $currentLayer, $currentOverviewLayer);
-			if ($extensionNode !== null) {
-				$e_layer->appendChild($extensionNode);
-			}
-			return $e_layer;
+		// Extension
+		$extensionNode = $this->createLayerExtensionNode($currentMap, $currentWms, $currentLayer, $currentOverviewLayer);
+		if ($extensionNode !== null) {
+			$e_layer->appendChild($extensionNode);
 		}
-		return null;	
+		return $e_layer;
 	}
 
 	private function createSrsNode ($currentMap, $currentWms) {

Modified: trunk/mapbender/http/javascripts/initWmcObj.php
===================================================================
--- trunk/mapbender/http/javascripts/initWmcObj.php	2010-08-19 16:03:36 UTC (rev 6769)
+++ trunk/mapbender/http/javascripts/initWmcObj.php	2010-08-19 16:05:55 UTC (rev 6770)
@@ -218,6 +218,7 @@
 //workaround to have a fully merged WMS for loading
 
 $xml = $wmc->toXml();
+
 $wmc = new wmc();
 $wmc->createFromXml($xml);
 
@@ -225,9 +226,7 @@
 
 //workaround for zoom to WMS
 $extent = $wmc->mainMap->getExtent();
-if (!Mapbender::session()->exists("mb_myBBOX")) {
-	Mapbender::session()->set("mb_myBBOX", $extent->min->x . "," . $extent->min->y . "," . $extent->max->x . "," . $extent->max->y);
-}
+Mapbender::session()->set("mb_myBBOX", $extent->min->x . "," . $extent->min->y . "," . $extent->max->x . "," . $extent->max->y);
 
 for ($i = 0; $i < count($output); $i++) {
 	echo administration::convertOutgoingString($output[$i]);

Modified: trunk/mapbender/http/javascripts/map_obj.js
===================================================================
--- trunk/mapbender/http/javascripts/map_obj.js	2010-08-19 16:03:36 UTC (rev 6769)
+++ trunk/mapbender/http/javascripts/map_obj.js	2010-08-19 16:05:55 UTC (rev 6770)
@@ -19,8 +19,19 @@
  * wms_index		- restrict the WMS in the map to the WMS with this ID
  * 						(useful for overview maps)
  */
-Mapbender.Map = function(frameName, elementName, width, height, wms_index){
+Mapbender.Map = function (options) {
 
+	var defaults = {
+		width: 400,
+		height: 300,
+		id: "mapframe1",
+		wms: [],
+		wmsIndexOverview: null
+	};
+	
+	var o = $.extend({}, defaults, options || {});
+
+console.log(o);
     var mapMsgObj;
 	var extentHasChanged = false;
 	var srsHasChanged = false;
@@ -127,13 +138,8 @@
      */
     this.setWidth = function(width){
         this.width = parseInt(width, 10);
-        
-        //apply new width
-        if (this.frameName) {
-            document.getElementById(this.frameName).style.width = this.width;
-        }
-        var domElement = this.getDomElement();
-        domElement.style.width = this.width;
+
+        $("#" + this.elementName).width(this.width);
 		
 		this.events.dimensionsChanged.trigger({
 			width: this.width,
@@ -145,14 +151,10 @@
 		this.width = parseInt(w, 10);
         this.height = parseInt(h, 10);
 
-        if (this.frameName) {
-            document.getElementById(this.frameName).style.width = this.width + "px";
-            document.getElementById(this.frameName).style.height = this.height + "px";
-        }
-        var domElement = this.getDomElement();
-        domElement.style.width = this.width + "px";
-        domElement.style.height = this.height + "px";
-		
+        $("#" + this.elementName)
+			.width(this.width)
+			.height(this.height);
+
 		this.calculateExtent(this.extent);
 		this.setMapRequest();
 		
@@ -178,9 +180,6 @@
     };
     
     this.getDomElement = function(){
-        if (this.frameName) {
-            return window.frames[this.frameName].document.getElementById(this.elementName);
-        }
         return document.getElementById(this.elementName);
     };
     
@@ -191,12 +190,8 @@
      */
     this.setHeight = function(height){
         this.height = parseInt(height, 10);
-        //apply new height
-        if (this.frameName) {
-            document.getElementById(this.frameName).style.height = this.height + "px";
-        }
-        var domElement = this.getDomElement();
-        domElement.style.height = this.height + "px";
+
+        $("#" + this.elementName).height(this.height);
 		
 		this.events.dimensionsChanged.trigger({
 			width: this.width,
@@ -214,83 +209,13 @@
 	};
 	
   	this.getMousePosition = function (event) {
-		if (typeof event.originalEvent !== "undefined") {
-			return this.getPos(event);
-		}
-		
-		var pageX, pageY, offsetX, offsetY;
-		var e = event || window.event;
-		var target = e.target || e.srcElement;
-		
-		if (!e) {
-			return null;
-		}
-
-		// FIREFOX
-		if (typeof e.layerX !== "undefined") {
-			if (target.id === this.getDomElement().id) {
-				offsetX = e.layerX; 
-				offsetY = e.layerY; 
-				return new Point(offsetX, offsetY);
-			}
-		}
-
-		// FIREFOX w/ other target
-		if (typeof e.pageX !== "undefined") { 
-			pageX = e.pageX; 
-			pageY = e.pageY; 
-		}
-		// IE
-		else if (typeof e.clientX !== "undefined") { 
-			pageX = e.clientX + ((
-						window.document.body && 
-						typeof window.document.body.scrollLeft !== "undefined"
-					) ?
-						window.document.body.scrollLeft : 0);
-			pageY = e.clientY + ((
-						window.document.body && 
-						typeof window.document.body.scrollTop !== "undefined"
-					) ?
-						window.document.body.scrollTop : 0);
-		}
-		var x = 0;
-		var t = (typeof(target)=='string') ? 
-			(document.getElementById ? 
-				document.getElementById(e) : 
-					(document.all ? document.all[e] : null)
-			) : target;
-		t = this.getDomElement();
-		while (t) {
-			if ($(t).eq(0).attr("id") === this.getDomElement().id && typeof t.offsetLeft !== "undefined") {
-				x += t.offsetLeft;
-			}
-			t = (typeof t.offsetParent !== "undefined") ?
-				t.offsetParent : null;
-		}
-		pageX -= x;
-
-		var y = 0;
-		t = (typeof(target)=='string') ? 
-			(document.getElementById ? 
-				document.getElementById(e) : 
-					(document.all ? document.all[e] : null)
-			) : target;
-		t = this.getDomElement();
-		while (t) {
-			if ($(t).eq(0).attr("id") === this.getDomElement().id && typeof t.offsetTop !== "undefined") {
-				y += t.offsetTop;
-			}
-			t = (typeof t.offsetParent !== "undefined") ?
-				t.offsetParent : null;
-		}
-		pageY -= y; 
-		return new Point(pageX, pageY);
+		return this.getPos(event);
 	};
     
     /**
      * converts the extent of the mapobject so that the maximum	extent will be displayed
      */
-    this.calculateExtent = function(ext){
+    this.calculateExtent = function (ext) {
     	var relation_px_x = this.getWidth() / this.getHeight();
         var relation_px_y = this.getHeight() / this.getWidth();
         var relation_bbox_x = ext.extentx / ext.extenty;
@@ -316,29 +241,6 @@
 			));
         }
         
-        // Check if ext is within restricted extent
-        // If not, calculate a new extent according
-        // to restricted extent.
-        /*
-         if ( this.restrictedExtent ) {
-         if ( ext.minx  < this.restrictedExtent.minx ) {
-         ext.minx = this.restrictedExtent.minx;
-         ext.maxx = ext.minx + (relation_px_x * ext.extenty);
-         }
-         if ( ext.miny < this.restrictedExtent.miny ) {
-         ext.miny = this.restrictedExtent.miny;
-         ext.maxy = ext.miny + (relation_px_y * ext.extentx);
-         }
-         if ( ext.maxx > this.restrictedExtent.maxx ) {
-         ext.maxx = this.restrictedExtent.maxx;
-         ext.minx = ext.maxx - (relation_px_x * ext.extenty);
-         }
-         if ( ext.maxy > this.restrictedExtent.maxy ) {
-         ext.maxy = this.restrictedExtent.maxy;
-         ext.miny = ext.maxy - (relation_px_y * ext.extentx);
-         }
-         }
-         */
         this.setExtent(ext);
         return ext;
     };
@@ -499,20 +401,21 @@
     }; 
     
     
-    this.setWms = function(wms_index){
+    // If options.wmsIndexOverview is set (=map is overview), only this
+    // WMS is being pointed to.
+    this.setWms = function (options) {
         this.wms = [];
-        var index = 0;
-        for (var i = 0; i < wms.length; i++) {
-            var isValidWms = (wms_index === null) || (wms_index == i);
+        for (var i = 0; i < options.wms.length; i++) {
+            var isValidWms = options.wmsIndexOverview === null || 
+				options.wmsIndexOverview === i;
             if (isValidWms) {
                 // MAJOR CHANGE!
                 // formerly, this was a reference!
                 // Now, this is a copy!
                 // Each map object has its own set of WMS.
-                // I expect some things to break :-)
-                this.wms[index] = Mapbender.cloneObject(wms[i]);
-                this.wms[index].mapURL = false;
-                index++;
+                this.wms.push($.extend(true, {
+					mapURL: false
+				}, options.wms[i]));
             }
         }
     };
@@ -693,7 +596,6 @@
     };
     
     this.zoomFull = function(){
-    
 //        if (this.restrictedExtent) {
 //            this.calculateExtent(this.restrictedExtent);
 //            this.setMapRequest();
@@ -1498,7 +1400,7 @@
 	};
 	
     this.setMapRequest = function(wmsArray){
-		if (!wms || wms.length === 0) { 
+		if (!this.wms || this.wms.length === 0) { 
 			return; 
 		}         
  	
@@ -1719,12 +1621,11 @@
     
     var that = this;
     // private
-    this.width = width;
+    this.width = options.width;
     // private
-    this.height = height;
-    this.frameName = frameName;
-    this.type = (frameName !== "") ? "IFRAME" : "DIV";
-    this.elementName = elementName;
+    this.height = options.height;
+    this.type = "DIV";
+    this.elementName = options.id;
     this.mapURL = [];
     var domElement = this.getDomElement();
 	if (this.width) {
@@ -1757,10 +1658,8 @@
     
     //
     // Add pointers to WMS objects which are in this map.
-    // If wms_index is set (=map is overview), only this
-    // WMS is being pointed to.
     //
-    this.setWms(wms_index);
+    this.setWms(o);
     //
     // set list of visible layers, active querylayers 
     // and styles for each WMS in this map
@@ -1776,18 +1675,18 @@
 		}).text(errorMsg); 
 	}     
 	else {
-	    for (var i = 0; i < wms[0].gui_epsg.length; i++) {
-	        if (wms[0].gui_wms_epsg == wms[0].gui_epsg[i]) {
-	            bbox_minx = parseFloat(wms[0].gui_minx[i]);
-	            bbox_miny = parseFloat(wms[0].gui_miny[i]);
-	            bbox_maxx = parseFloat(wms[0].gui_maxx[i]);
-	            bbox_maxy = parseFloat(wms[0].gui_maxy[i]);
+	    for (var i = 0; i < this.wms[0].gui_epsg.length; i++) {
+	        if (this.wms[0].gui_wms_epsg == this.wms[0].gui_epsg[i]) {
+	            bbox_minx = parseFloat(this.wms[0].gui_minx[i]);
+	            bbox_miny = parseFloat(this.wms[0].gui_miny[i]);
+	            bbox_maxx = parseFloat(this.wms[0].gui_maxx[i]);
+	            bbox_maxy = parseFloat(this.wms[0].gui_maxy[i]);
 	            break;
 	        }
 	    }
 	    
 	    this.setSrs({
-	        srs: wms[0].gui_wms_epsg,
+	        srs: this.wms[0].gui_wms_epsg,
 	        extent: new Mapbender.Extent(bbox_minx, bbox_miny, bbox_maxx, bbox_maxy)
 	    });
 	}



More information about the Mapbender_commits mailing list