eventBeforeMapRequest.register(function (obj) { mod_scaleHint_init(obj.map.elementName); }); function mod_scaleHint_init(frameName){ if(frameName == mod_scaleHint_target){ var ind = getMapObjIndexByName(frameName); var scale = mb_mapObj[ind].getScale(); if(parseInt(scale,10) < parseInt(mod_scaleHint_min, 10) || parseInt(scale, 10) > parseInt(mod_scaleHint_max, 10)){ if(parseInt(scale, 10) < parseInt(mod_scaleHint_min, 10)){ var newScale = parseInt(mod_scaleHint_min, 10); } if(parseInt(scale, 10) > parseInt(mod_scaleHint_max, 10)){ var newScale = parseInt(mod_scaleHint_max, 10); } var ind = getMapObjIndexByName(frameName); var arrayBBox = mb_mapObj[ind].extent.toString().split(","); var x = parseFloat(arrayBBox[0]) + ((parseFloat(arrayBBox[2]) - parseFloat(arrayBBox[0]))/2); var y = parseFloat(arrayBBox[1]) + ((parseFloat(arrayBBox[3]) - parseFloat(arrayBBox[1]))/2); var minx = parseFloat(x) - (mb_mapObj[ind].width / (mb_resolution * 100 *2) * newScale); var miny = parseFloat(y) - (mb_mapObj[ind].height / (mb_resolution * 100 *2) * newScale); var maxx = parseFloat(x) + (mb_mapObj[ind].width / (mb_resolution * 100 *2) * newScale); var maxy = parseFloat(y) + (mb_mapObj[ind].height / (mb_resolution * 100 *2) * newScale); mb_mapObj[ind].extent = new Mapbender.Extent( minx, miny, maxx, maxy ); } } return true; }