[Mapbender-commits] r5016 - in trunk/mapbender: http/javascripts lib

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Thu Nov 19 11:12:24 EST 2009


Author: christoph
Date: 2009-11-19 11:12:19 -0500 (Thu, 19 Nov 2009)
New Revision: 5016

Modified:
   trunk/mapbender/http/javascripts/map_obj.js
   trunk/mapbender/http/javascripts/mod_measure.php
   trunk/mapbender/http/javascripts/mod_pan.js
   trunk/mapbender/http/javascripts/mod_permanentHighlight.js
   trunk/mapbender/lib/basic.js
Log:
bug fix pan

Modified: trunk/mapbender/http/javascripts/map_obj.js
===================================================================
--- trunk/mapbender/http/javascripts/map_obj.js	2009-11-19 11:01:43 UTC (rev 5015)
+++ trunk/mapbender/http/javascripts/map_obj.js	2009-11-19 16:12:19 UTC (rev 5016)
@@ -957,10 +957,9 @@
     var drawMaps = function(idArray, index){
 		var numRequests = that.history.count();
 		var requestCnt = index;
-//		console.log(requestCnt + " - " + numRequests);
+
 		// existing history item
 		if (requestCnt + 1 < numRequests && numRequests > 1 || $("#" + that.elementName + "_request_" + requestCnt).size() > 0) {
-//			console.log("exist");
 	        $("#" + that.elementName + "_request_" + requestCnt).hide();
 			for (var i = 0; i < requestCnt; i++) {
 		        $("#" + that.elementName + "_request_" + i).hide();
@@ -968,19 +967,16 @@
 			for (var i = requestCnt + 1; i <= numRequests; i++) {
 		        $("#" + that.elementName + "_request_" + i).hide();
 			}
-//			console.log("#" + that.elementName + "_request_" + requestCnt);
 			$("#" + that.elementName + "_request_" + requestCnt + " div img").css({
 				visibility: "visible"
-			}).each(function () {
-//				console.log(this);
 			});
 		}
 		// new history item
 		else {
-//			console.log("new");
 	        var newMapRequest = "";
 	        for (var i = 0; i < idArray.length; i++) {
 	            var currentWms = that.wms[idArray[i]];
+/*
 				if (doAnimation && currentWms.gui_wms_visible === 2) {
 					// request larger background image
 					var bgExtent = calculateExtentAfterZoom(false, 2.0, that.extent.center.x, that.extent.center.y);
@@ -995,7 +991,7 @@
 					var html = getLayerHtmlCode(idArray[i], bgExtent, width, height, top, left, requestCnt);
 //					console.log(html);
 				}
-				
+*/				
 				newMapRequest += getLayerHtmlCode(
 					idArray[i], 
 					that.extent, 
@@ -1023,7 +1019,7 @@
 				});
 			}
 		}
-		$("#" + that.elementName + "_request_" + index).css().show();
+		$("#" + that.elementName + "_request_" + index).show();
 		
     };
     
@@ -1097,8 +1093,30 @@
 		});
 	};
 	
-	var doAnimation = false;
+	var doAnimation = true;
 	
+	this.moveMap = function (x, y) {
+		var index = this.history.getCurrentIndex();
+
+		// do not reset the map
+		if (typeof x !== "undefined") {
+			$("#" + this.elementName + "_request_" + index).css({
+				top: String(y) + "px",
+				left: String(x) + "px"
+			});
+		}
+		
+		// reset pan sub elements only
+		// TO DO: this looks awkward when animation is turned on
+		if (typeof x === "undefined") {
+			var x = 0;
+			var y = 0;			
+		}
+		for(var i = 0; i < mb_PanSubElements.length; i++) {
+			mb_arrangeElement("", mb_PanSubElements[i], x, y);
+		} 
+	};
+	
 	var animateMaps = function (index) {
 		
 		//
@@ -1106,6 +1124,10 @@
 		// 
 		
 		if (doAnimation) {
+			var previousRequest = $("#" + that.elementName + "_request_" + (index-1));
+			var wasPanned = parseInt(previousRequest.css("top"), 10) !== 0 ||
+				parseInt(previousRequest.css("left"), 10) !== 0;
+
 			var newWidth = that.oldExtentPix.max.x - that.oldExtentPix.min.x;
 			var newHeight = that.oldExtentPix.min.y - that.oldExtentPix.max.y;
 			var newTop = that.oldExtentPix.max.y;
@@ -1132,11 +1154,15 @@
 				this.style.visibility = "visible";
 				
 				$(this).data("loaded", true);
-				if ($(this).data("loaded") && $(this).data("animationFinished")) {
+				if ($(this).data("loaded") && (wasPanned || $(this).data("animationFinished"))) {
 					deactivatePreviousMapImg(this, index);
 				}
 			});
 
+			if (wasPanned) {
+				return;
+			}
+
 			//
 			// animate new images (zoom)
 			//
@@ -1151,7 +1177,7 @@
 						height: that.height + "px"
 					}, "normal", "linear", function () {
 						$(this).data("animationFinished", true);
-						if ($(this).data("loaded") && $(this).data("animationFinished")) {
+						if ($(this).data("loaded") && ($(this).data("animationFinished"))) {
 							deactivatePreviousMapImg(this, index);
 						}
 					}

Modified: trunk/mapbender/http/javascripts/mod_measure.php
===================================================================
--- trunk/mapbender/http/javascripts/mod_measure.php	2009-11-19 11:01:43 UTC (rev 5015)
+++ trunk/mapbender/http/javascripts/mod_measure.php	2009-11-19 16:12:19 UTC (rev 5016)
@@ -247,7 +247,7 @@
 	if(isNaN(dist) == false && clickX > 0 && clickX < mod_measure_width && clickY > 0 && clickY < mod_measure_height){
 		var str_display = "<span style='font-family:"+mod_measure_font+";font-size:"+mod_measure_fontsize+";color:"+mod_measure_color2+";'>"+(Math.round(dist*100)/100)+" m</span>";
 		writeTag(mod_measure_mapObj.frameName, mod_measure_target+"_measure_display",str_display);
-		mb_arrangeElement(mod_measure_mapObj.frameName,mod_measure_target+"_measure_display",clickX +2, clickY - 10);
+		mb_arrangeElement("",mod_measure_target+"_measure_display",clickX +2, clickY - 10);
 	}
 	else{
 		writeTag(mod_measure_mapObj.frameName,mod_measure_target+"_measure_display","");

Modified: trunk/mapbender/http/javascripts/mod_pan.js
===================================================================
--- trunk/mapbender/http/javascripts/mod_pan.js	2009-11-19 11:01:43 UTC (rev 5015)
+++ trunk/mapbender/http/javascripts/mod_pan.js	2009-11-19 16:12:19 UTC (rev 5016)
@@ -58,12 +58,7 @@
 				}
 				stopPos = map.getMousePosition(e);
 				var dif = stopPos.minus(startPos);
-				
-				mb_arrangeElement(map.frameName, options.target+"_maps", dif.x, dif.y);
-
-				for(var i = 0; i < mb_PanSubElements.length; i++) {
-					mb_arrangeElement(map.frameName, mb_PanSubElements[i], dif.x, dif.y);
-				} 
+				map.moveMap(dif.x, dif.y);
 				if (!$.browser.msie){
 					return true;
 				}
@@ -83,11 +78,7 @@
 				);
 				var center = widthHeight.times(0.5).minus(dif);
 				var realCenter = map.convertPixelToReal(center);   
-			
-				mb_arrangeElement(map.frameName, options.target + "_maps", 0, 0);
-				for (var i = 0; i < mb_PanSubElements.length; i++) {
-					mb_arrangeElement(map.frameName, mb_PanSubElements[i], 0, 0);
-				} 
+				map.moveMap();
 				map.zoom(false, 1.0, realCenter);   
 				return false;
 			});

Modified: trunk/mapbender/http/javascripts/mod_permanentHighlight.js
===================================================================
--- trunk/mapbender/http/javascripts/mod_permanentHighlight.js	2009-11-19 11:01:43 UTC (rev 5015)
+++ trunk/mapbender/http/javascripts/mod_permanentHighlight.js	2009-11-19 16:12:19 UTC (rev 5016)
@@ -23,6 +23,6 @@
 	    tagSource += mod_permanentHighlight_text +"</nobr><span></div>";
 	    writeTag(frameName, "permanent", tagSource);
 	}else{
-		mb_arrangeElement(frameName,"permanent",pos[0]-7, pos[1]-7);
+		mb_arrangeElement("","permanent",pos[0]-7, pos[1]-7);
 	}
 }

Modified: trunk/mapbender/lib/basic.js
===================================================================
--- trunk/mapbender/lib/basic.js	2009-11-19 11:01:43 UTC (rev 5015)
+++ trunk/mapbender/lib/basic.js	2009-11-19 16:12:19 UTC (rev 5016)
@@ -104,11 +104,13 @@
 
 function mb_arrangeElement(frameName, elName, left, top) {
    if(frameName !== ""){
-      window.frames[frameName].document.getElementById(elName).style.top = top;
-      window.frames[frameName].document.getElementById(elName).style.left = left;
+      window.frames[frameName].document.getElementById(elName).style.top = String(top) + "px";
+      window.frames[frameName].document.getElementById(elName).style.left = String(left) + "px";
    }
    else{
-      document.getElementById(elName).style.top = top;
-      document.getElementById(elName).style.left = left;   
+      var s = document.getElementById(elName);
+	  s.style.position = "absolute";
+	  s.style.top = String(top) + "px";
+      s.style.left = String(left) + "px";   
    }
 }
\ No newline at end of file



More information about the Mapbender_commits mailing list