%--
Created by IntelliJ IDEA.
User: sbortman
Date: Mar 24, 2009
Time: 4:49:57 PM
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" %>
OMAR Map Viewer
var maps = {};
var title = "OMAR WMS";
var layers = "${params.id}";
var format = "image/jpeg";
var transparent = false;
function init()
{
maps = {
map1: setupUpIsUpMap("map1",${width}, ${height}, ${numRLevels}),
map2: setupNorthIsUpMap("map2")
};
}
function setupUpIsUpMap(mapId, width, height, numRLevels)
{
var map = new OpenLayers.Map(mapId);
map.addControl(new OpenLayers.Control.LayerSwitcher())
map.addControl(new OpenLayers.Control.PanZoom())
map.addControl(new OpenLayers.Control.NavToolbar())
map.addControl(new OpenLayers.Control.MousePosition());
map.addControl(new OpenLayers.Control.Scale());
map.addControl(new OpenLayers.Control.ScaleLine());
map.addControl(new OpenLayers.Control.Attribution());
var options = {
maxExtent: new OpenLayers.Bounds(0,0,width,height),
maxResolution: width / map.getTileSize().w,
numZoomLevels: numRLevels,
type:'jpeg',
getURL: getTileURL,
isBaseLayer: true,
buffer: 1,
singleTile: false,
transitionEffect: "resize"
};
var layer = new OpenLayers.Layer.TMS("Layer",
"${createLink(controller: 'ogc', action: 'getTile')}",
options
);
map.addLayers([layer]);
map.zoomToMaxExtent();
return map;
}
function setupNorthIsUpMap(mapId)
{
var left = ${rasterEntry.groundGeom.bounds.minLon};
var bottom = ${rasterEntry.groundGeom.bounds.minLat};
var right = ${rasterEntry.groundGeom.bounds.maxLon};
var top = ${rasterEntry.groundGeom.bounds.maxLat};
map = new OpenLayers.Map(mapId, { controls: [], numZoomLevels: 32 });
var bounds = new OpenLayers.Bounds(left, bottom, right, top);
map.maxExtent = bounds;
//changeMapSize();
var format = "image/jpeg";
// var format = "image/png";
// var format = "image/gif";
var transparent = false;
var layer = new OpenLayers.Layer.WMS(
"Layer",
"${createLink(controller: 'ogc', action: 'wms')}",
{ layers: "${params.id}", format: format, stretch_mode:"linear_auto_min_max", transparent:transparent },
{isBaseLayer: true, buffer:1, singleTile:true, transitionEffect: "resize"}
);
map.addLayer(layer);
map.addControl(new OpenLayers.Control.LayerSwitcher())
map.addControl(new OpenLayers.Control.PanZoom())
map.addControl(new OpenLayers.Control.NavToolbar())
map.addControl(new OpenLayers.Control.MousePosition());
map.addControl(new OpenLayers.Control.Scale());
map.addControl(new OpenLayers.Control.Permalink("permalink"));
map.addControl(new OpenLayers.Control.ScaleLine());
map.addControl(new OpenLayers.Control.Attribution());
var zoom = map.getZoomForExtent(bounds, true);
map.setCenter(bounds.getCenterLonLat(), zoom);
return map;
}
function getTileURL (bounds)
{
var res = this.map.getResolution();
var x = Math.round ((bounds.left - this.maxExtent.left) / (res * this.tileSize.w));
var y = Math.round ((this.maxExtent.top - bounds.top) / (res * this.tileSize.h));
var z = this.map.getZoom();
var path = "?z=" + z + "&x=" + x + "&y=" + y + "&format=" + this.type
+ "&tileWidth=" + this.tileSize.w + "&tileHeight=" + this.tileSize.h
+ "&id=" + ${params.id};
// var path = "?bbox=" + x + "," + y + "," + bounds.right + "," + bounds.top
var url = this.url;
if (url instanceof Array) {
url = this.selectUrl(path, url);
}
return url + path;
}
function tabChanged(e)
{
var label = e.newValue.get('label');
var map = null;
var mapDiv = null;
if ( label == "Up is up")
{
map = maps['map1'];
}
else if ( "North is up")
{
map = maps['map2'];
}
if ( map )
{
var size = map.getSize();
if ( isNaN(size.w) || isNaN(size.h) )
{
alert(size);
map.updateSize();
map.zoomToMaxExtent();
}
}
}
function imageToWorld()
{
var map = maps.map1;
alert(map.getCenter());
}
function worldToImage()
{
var map = maps.map2;
alert(map.getCenter()); }
>