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(scale < mod_scaleHint_min || scale > mod_scaleHint_max){ if(scale < mod_scaleHint_min){ var newScale = mod_scaleHint_min; } if(scale > mod_scaleHint_max){ var newScale = mod_scaleHint_max; } var ind = getMapObjIndexByName(frameName); var arrayBBox = mb_mapObj[ind].extent.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 = minx + "," + miny + "," + maxx + "," + maxy; } } return true; }