var exists = false; eventAfterMapRequest.register(function () { mod_changeEPSG_setBox(); }); eventInit.register(function () { // mod_changeEPSG_init(); }); function mod_changeEPSG_setBox(){ var myEpsg = mb_mapObj[0].epsg; if (arguments.length === 1) { myEpsg = arguments[0]; } $("#"+myId+" option").each(function () { if (this.value == myEpsg) { isEPSG = true; $(this).attr("selected", "selected"); } }); } function mod_changeEPSG () { var callback; if (arguments.length > 0 && typeof arguments[0] === "function") { callback = arguments[0]; } var srsArray = []; for (var i = 0; i < mb_mapObj.length; i++) { var currentSrs = { "frameName" : mb_mapObj[i].elementName, "epsg" : mb_mapObj[i].epsg, "extent" : mb_mapObj[i].extent, "width" : mb_mapObj[i].width, "height" : mb_mapObj[i].height }; srsArray.push(currentSrs); } for (var i = 0; i < wms.length; i++) { var ext = wms[i].getBoundingBoxBySrs(mb_mapObj[0].epsg); if (ext === null) { continue; } var currentSrs = { "wms" : wms[i].wms_id, "epsg" : mb_mapObj[0].epsg, "extent" : ext.toString(), "width" : mb_mapObj[0].width, "height" : mb_mapObj[0].height }; srsArray.push(currentSrs); } var req = new Mapbender.Ajax.Request({ "method":"changeEpsg", "parameters":{ "srs":srsArray, "newSrs": $("#"+myId).get(0).value } }); $.ajaxSetup({async:false}); req.send("../php/mod_changeEPSG_server.php", function (obj, success, message) { if (!success) { new Mb_exception("!!!!!!"+message); return; } var newExtent = obj; var mapObjNames = []; for(var i = 0; i < newExtent.length; i++) { if (newExtent[i].frameName) { mapObjNames.push(newExtent[i].frameName); } } for(var i = 0; i < newExtent.length; i++) { if (newExtent[i].wms) { for (var j = 0; j < wms.length; j++) { if (wms[j].wms_id == newExtent[i].wms) { wms[j].setBoundingBoxBySrs( newExtent[i].newSrs, new Extent( parseFloat(newExtent[i].minx), parseFloat(newExtent[i].miny), parseFloat(newExtent[i].maxx), parseFloat(newExtent[i].maxy) ) ); } } for (var k = 0; k < mapObjNames.length; k++) { var map = getMapObjByName(mapObjNames[k]); for (var j = 0; j < map.wms.length; j++) { if (map.wms[j].wms_id == newExtent[i].wms) { map.wms[j].setBoundingBoxBySrs( newExtent[i].newSrs, new Extent( parseFloat(newExtent[i].minx), parseFloat(newExtent[i].miny), parseFloat(newExtent[i].maxx), parseFloat(newExtent[i].maxy) ) ); } break; } } continue; } var mainMap = null; if(newExtent[i].frameName == myTarget){ var ind = getMapObjIndexByName(myTarget); for(var ii = 0; ii < mb_mapObj[ind].mb_MapHistoryObj.length; ii++) { if (mb_mapObj[ind].mb_MapHistoryObj[ii].epsg == newExtent[i].newSrs) { exists = ii; var goback = true; } } if (goback) { var extArray = mb_mapObj[ind].mb_MapHistoryObj[exists].extent.split(","); var newExt = new Extent( parseFloat(extArray[0]), parseFloat(extArray[1]), parseFloat(extArray[2]), parseFloat(extArray[3]) ); mb_mapObj[ind].setSrs({ srs: newExtent[i].newSrs, extent: newExt, displayWarning: false }); } else{ mb_mapObj[ind].setSrs({ srs: newExtent[i].newSrs, extent: new Extent( parseFloat(newExtent[i].minx), parseFloat(newExtent[i].miny), parseFloat(newExtent[i].maxx), parseFloat(newExtent[i].maxy) ), displayWarning: false }); } } else { mainMap = getMapObjByName(newExtent[i].frameName); mainMap.setSrs({ srs: newExtent[i].newSrs, extent: new Extent( parseFloat(newExtent[i].minx), parseFloat(newExtent[i].miny), parseFloat(newExtent[i].maxx), parseFloat(newExtent[i].maxy) ), displayWarning: false }); } setTimeout(function () { if (typeof callback === "function") { callback(); } else { for (var k = 0; k < mapObjNames.length; k++) { var map = getMapObjByName(mapObjNames[k]); map.setMapRequest(); } } }, 200); } }); $.ajaxSetup({async:true}); }; $("#"+myId).change(function () { mod_changeEPSG(); });