[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