[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