var map; function init(){ var options = { projection: new OpenLayers.Projection("EPSG:3857"), units: "m", maxResolution: 156543.0339, maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34), controls: [ new OpenLayers.Control.Navigation(), new OpenLayers.Control.PanZoomBar(), new OpenLayers.Control.Permalink(), new OpenLayers.Control.ScaleLine(), new OpenLayers.Control.KeyboardDefaults() ], numZoomLevels: 14, }; OpenLayers.Lang.setCode('en'); map = new OpenLayers.Map('map', options); var tms_sec = new OpenLayers.Layer.TMS( "Sectional Charts", "http://wms.chartbundle.com/tms/", {type: "png", layername: 'sec'} ); var tms_tac = new OpenLayers.Layer.TMS( "Terminal Area Charts", "http://wms.chartbundle.com/tms/", {type: "png", layername: 'tac'}); var tms_wac = new OpenLayers.Layer.TMS( "World Aeronautical Charts", "http://wms.chartbundle.com/tms/", {type: "png", layername: 'wac'}); var tms_enrl = new OpenLayers.Layer.TMS( "IFR Enroute Low Charts", "http://wms.chartbundle.com/tms/", {type: "png", layername: 'enrl'}); var tms_enra = new OpenLayers.Layer.TMS( "IFR Area Charts", "http://wms.chartbundle.com/tms/", {type: "png", layername: 'enra'}); var tms_enrh = new OpenLayers.Layer.TMS( "IFR Enroute High Charts", "http://wms.chartbundle.com/tms/", {type: "png", layername: 'enrh'}); var tms_secgrids = new OpenLayers.Layer.TMS( "Sectional Charts with Grid", "http://wms.chartbundle.com/tms/", {type: "png", layername: 'secgrids'} ); var tms_tacgrids = new OpenLayers.Layer.TMS( "Terminal Area Charts with Grid", "http://wms.chartbundle.com/tms/", {type: "png", layername: 'tacgrids'} ); var tms_wacgrids = new OpenLayers.Layer.TMS( "World Aeronautical Charts with Grid", "http://wms.chartbundle.com/tms/", {type: "png", layername: 'wacgrids'}); map.addLayers([tms_sec, tms_tac, tms_wac, tms_enrl, tms_enra, tms_enrh,tms_secgrids,tms_tacgrids,tms_wacgrids]); ls = new MyLayerSwitcher; map.addControl(ls); ls.maximizeControl(); var proj = new OpenLayers.Projection("EPSG:4326"); var point = new OpenLayers.LonLat(-97, 38); if (!map.getCenter()) { map.setCenter(point.transform(proj, map.getProjectionObject()),3); } } //Inheriting of OpenLayers.Control.LayerSwitcher MyLayerSwitcher.prototype = new OpenLayers.Control.LayerSwitcher; // Define sub-class MyLayerSwitcher.prototype.constructor = MyLayerSwitcher; function MyLayerSwitcher() { OpenLayers.Control.LayerSwitcher.call(this); // derived constructor = call super-class constructor } MyLayerSwitcher.prototype.loadContents = function() // redefine Method { OpenLayers.Control.LayerSwitcher.prototype.loadContents.call(this); // Call super-class method this.baseLbl.innerHTML = "Chart Type"; //change title for base layers this.dataLbl.innerHTML = "Overlay"; //change title for overlays (empty string "" is an option, too) } var print_wait_win = null; function printMap(pagefmt) { // Wait messaye print_wait_win = window.open("pleasewait.html", "print_wait_win", "scrollbars=no, status=0, height=80, width=240, resizable=1"); // fetch the extent and image size // var mapview = document.getElementById('map').contentWindow.map; // var layers = document.getElementById('map').contentWindow.layers; var mapview = map; var layers = map.layers; var bbox = mapview.getExtent(); bbox = [bbox.left,bbox.bottom,bbox.right,bbox.top].join(','); var width = mapview.getSize().w; var height = mapview.getSize().h; // build a comma-joined list of layers var activelayers = []; for (i in layers) { if (!layers[i].getVisibility()) continue; if (!layers[i].calculateInRange()) continue; activelayers[activelayers.length] = layers[i].layername; } activelayers = activelayers.join(','); // open a window to our pure-Mapserver version var geturl = '/cgi-bin/printit.cgi?srs=EPSG%3A3857&'; geturl += '&page=' + pagefmt; geturl += '&bbox=' + bbox; geturl += '&width=' + width+'&height='+height; geturl += '&layers=' + activelayers; OpenLayers.Request.GET( { url: geturl , callback: function(request) { print_wait_win.close(); window.open(request.responseText); } } ); } function quickzoomrequest() { var fix = document.forms[0].qzfix.value; var geturl = '/cgi-bin/fixlocp.cgi?'; geturl += 'f=' + fix; OpenLayers.Request.GET( { url: geturl , callback: quickzoomresponse } ) } function quickzoomresponse(req) { g = new OpenLayers.Format.JSON(); fixinfo = g.read(req.responseText); if (fixinfo.error == 0 ) { var proj = new OpenLayers.Projection("EPSG:4326"); var point = new OpenLayers.LonLat(fixinfo.y, fixinfo.x); map.setCenter(point.transform(proj, map.getProjectionObject()),11); } }