[Mapbender-commits] r3737 - trunk/mapbender/http/javascripts

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Mon Mar 16 06:29:51 EDT 2009


Author: christoph
Date: 2009-03-16 06:29:51 -0400 (Mon, 16 Mar 2009)
New Revision: 3737

Modified:
   trunk/mapbender/http/javascripts/mod_dynamicOverview.php
Log:
now works again with new map div

Modified: trunk/mapbender/http/javascripts/mod_dynamicOverview.php
===================================================================
--- trunk/mapbender/http/javascripts/mod_dynamicOverview.php	2009-03-16 10:28:21 UTC (rev 3736)
+++ trunk/mapbender/http/javascripts/mod_dynamicOverview.php	2009-03-16 10:29:51 UTC (rev 3737)
@@ -52,35 +52,46 @@
 var mod_dynamicOverviewCount = 0;
 var mod_dynamicOverviewSwitch = false;
 
-mb_registerPreFunctions("mod_dynamicOverviewCalculateExtent(frameName)");
-mb_registerSubFunctions("mod_dynamicOverviewSetVisibility(frameName)");
+eventBeforeMapRequest.register(function (obj) {
+	mod_dynamicOverviewCalculateExtent(obj.map);
+});
 
-function mod_dynamicOverviewCalculateExtent(frameName){
+eventAfterMapRequest.register(function (obj) {
+	mod_dynamicOverviewSetVisibility(obj.map);
+});
+
+function mod_dynamicOverviewCalculateExtent (map) {
 	var arrayTargets = mod_dynamicOverview_target.split(",");
 	var disty = false;
 	var distx = false;
+
+	var map0 = getMapObjByName(arrayTargets[0]);
+	var map1 = getMapObjByName(arrayTargets[1]);
+	
 	//set extent for the main mapframe from configuration param element_var
-	if(mod_dynamicOverview_startExtent && mod_dynamicOverviewCount == 0){
+	if (mod_dynamicOverview_startExtent && mod_dynamicOverviewCount == 0){
 		mod_dynamicOverviewCount++;
 		var arrayCoords = mod_dynamicOverview_startExtent.split(",");
 		var minx = parseFloat(arrayCoords[0]);
 		var miny = parseFloat(arrayCoords[1]);
 		var maxx = parseFloat(arrayCoords[2]);
 		var maxy = parseFloat(arrayCoords[3]);
-		mb_calculateExtent(arrayTargets[0],minx,miny,maxx,maxy);
+		console.log("startextent %s", mod_dynamicOverview_startExtent);
+		var newExtent = new Extent(minx, miny, maxx, maxy)
+		map0.calculateExtent(newExtent);
 	}
+
 	// read params from main-mapframe
-	if(frameName == arrayTargets[0]){
-		var ind = getMapObjIndexByName(frameName);
-		
+	if (map.elementName == map0.elementName) {
+
 		// get center in coords:
-		var coords = mb_mapObj[ind].extent.split(",");
+		var coords = map0.extent.split(",");
 		var minx = parseFloat(coords[0]);
 		var miny = parseFloat(coords[1]);
 		var maxx = parseFloat(coords[2]);
 		var maxy = parseFloat(coords[3]);
 		distx = maxx - minx;
-		disty   = maxy - miny;
+		disty = maxy - miny;
 		var centerx = minx + distx/2;
 		var centery = miny + disty/2;
 		
@@ -91,7 +102,7 @@
 			maxx = centerx + ((distx/2)*mod_dynamicOverview_zoomFactor);
 			maxy = centery + ((disty/2)*mod_dynamicOverview_zoomFactor);
 			distx = maxx - minx;
-		    disty   = maxy - miny; 
+		    disty = maxy - miny; 
 		}
 		
 		// check and set maxExtent for orverview 
@@ -120,7 +131,7 @@
 			}	
 		}
 		//check and set minExtent for overview
-		var newMinExt = mod_dynamicOverviewCheckDiagonal(arrayTargets[1], minx,miny, maxx, maxy);
+		var newMinExt = mod_dynamicOverviewCheckDiagonal(map1, minx,miny, maxx, maxy);
 		if(newMinExt){
 			var minCoords = newMinExt.split(",");
 			minx = 	parseFloat(minCoords[0]);	
@@ -128,10 +139,11 @@
 			maxx = 	parseFloat(minCoords[2]);
 			maxy = 	parseFloat(minCoords[3]);
 		}
-		mb_calculateExtent(arrayTargets[1],minx,miny,maxx,maxy)
-		zoom(arrayTargets[1],true, 1.0);
+		var newExtent = new Extent(minx, miny, maxx, maxy)
+		map1.calculateExtent(newExtent);
+		map1.zoom(true, 1.0);
 	}
-	else if(frameName == arrayTargets[1]){
+	else if(map.elementName == map1.elementName){
 		//switch hidden wms to visible
 		if(wms[mod_dynamicOverview_wmsIndex].gui_wms_visible != 1){
 			mod_dynamicOverviewSwitch = wms[mod_dynamicOverview_wmsIndex].gui_wms_visible;
@@ -139,18 +151,18 @@
 		}
 	}
 }
-function mod_dynamicOverviewCheckDiagonal(frameName, minx,miny, maxx, maxy){
+
+function mod_dynamicOverviewCheckDiagonal(map, minx,miny, maxx, maxy){
 	var r = false;
-	var ind = getMapObjIndexByName(frameName);
 	var distx = maxx-minx;
 	var disty = maxy-miny;
 	var centerx = minx + distx/2;
 	var centery = miny + distx/2;
-	var xPerPix = distx/mb_mapObj[ind].width;
-	var yPerPix = disty/mb_mapObj[ind].height;
+	var xPerPix = distx/map.width;
+	var yPerPix = disty/map.height;
 	var d = Math.sqrt(Math.pow(xPerPix,2)+Math.pow(yPerPix,2));
 	if(mod_dynamicOverview_minScale && mod_dynamicOverview_minScale > d){
-		var newDistx = Math.sqrt(Math.pow((mod_dynamicOverview_minScale),2)/2)*mb_mapObj[ind].width;
+		var newDistx = Math.sqrt(Math.pow((mod_dynamicOverview_minScale),2)/2)*map.width;
 		minx = centerx - newDistx/2;
 		maxx = centerx + newDistx/2;
 		miny = centery - newDistx/2;
@@ -159,13 +171,15 @@
 	}
 	return r;
 }
-function mod_dynamicOverviewSetVisibility(frameName){
+
+function mod_dynamicOverviewSetVisibility(map){
 	var arrayTargets = mod_dynamicOverview_target.split(",");
-	if(mod_dynamicOverviewSwitch && frameName == arrayTargets[1]){
+	if(mod_dynamicOverviewSwitch && map.elementName == arrayTargets[1]){
 		wms[mod_dynamicOverview_wmsIndex].gui_wms_visible = mod_dynamicOverviewSwitch;
 		
 	}	
 }
+
 function mod_dynamicOverviewGetMaxExtent(wms, srs){
 	var re = false;
 	for(var i=0; i<wms.gui_epsg.length; i++){



More information about the Mapbender_commits mailing list