[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