%--
Created by IntelliJ IDEA.
User: sbortman
Date: Jun 9, 2008
Time: 1:34:39 PM
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" %>
Search for Imagery
<%--
--%>
Search for Imagery:
${flash.message}
<%--
--%>
var aoiLayer;
var polygonControl;
var map;
var dataLayer;
function changeMapSize()
{
var mapTitle = $("mapTitle");
var mapDiv = $("map");
mapDiv.style.width = mapTitle.offsetWidth + "px";
mapDiv.style.height = Math.round( mapTitle.offsetWidth / 2) + "px";
map.updateSize();
}
function setupDataLayer()
{
dataLayer = new OpenLayers.Layer.WMS(
"${dataWMS.title}",
"${dataWMS.url}",
{ layers: "${dataWMS.layers}", format: 'image/png', transparent: true },
{'isBaseLayer': false},
{buffer:1}
);
map.addLayer(dataLayer);
}
function setupBaseLayer()
{
var baseLayer = new OpenLayers.Layer.WMS(
"${baseWMS.title}",
"${baseWMS.url}",
{layers: '${baseWMS.layers}', format: 'image/jpeg' },
{buffer:1}
);
map.addLayer(baseLayer);
map.setBaseLayer(baseLayer);
}
function setupAoiLayer()
{
aoiLayer = new OpenLayers.Layer.Vector("Area of Interest");
aoiLayer.events.register("featureadded", aoiLayer, setAOI );
var polyOptions = {sides: 4, irregular: true} ;
polygonControl = new OpenLayers.Control.DrawFeature( aoiLayer, OpenLayers.Handler.RegularPolygon,
{handlerOptions: polyOptions});
map.addLayer(aoiLayer);
map.addControl(polygonControl);
var aoiMinLon = "${queryParams?.aoiMinLon ?: 0}";
var aoiMinLat = "${queryParams?.aoiMinLat ?: 0}";
var aoiMaxLon = "${queryParams?.aoiMaxLon ?: 0}";
var aoiMaxLat = "${queryParams?.aoiMaxLat ?: 0}";
if ( aoiMinLon && aoiMinLat && aoiMaxLon && aoiMaxLat )
{
var bounds = new OpenLayers.Bounds( aoiMinLon, aoiMinLat, aoiMaxLon, aoiMaxLat );
var feature = new OpenLayers.Feature.Vector(bounds.toGeometry());
aoiLayer.addFeatures(feature, {silent: true});
}
}
function setupMapWidget()
{
map = new OpenLayers.Map("map", { controls: [] });
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());
map.events.register("moveend", map, setCenterText);
map.events.register("zoomend", map, setView );
}
function setupMapView()
{
var viewMinLon = "${queryParams?.viewMinLon ?: -180}";
var viewMinLat = "${queryParams?.viewMinLat ?: -90}";
var viewMaxLon = "${queryParams?.viewMaxLon ?: 180}";
var viewMaxLat = "${queryParams?.viewMaxLat ?: 90}";
var bounds = new OpenLayers.Bounds(viewMinLon, viewMinLat, viewMaxLon, viewMaxLat);
var zoom = map.getZoomForExtent(bounds, true);
map.setCenter(bounds.getCenterLonLat(), zoom);
}
function setupToolbar()
{
var zoomBox = new OpenLayers.Control.ZoomBox(
{title:"Zoom into an area by clicking and dragging"});
var polyOptions = {sides: 4, irregular: true};
var polygonControl = new OpenLayers.Control.DrawFeature(aoiLayer, OpenLayers.Handler.RegularPolygon,
{handlerOptions: polyOptions, title: "Specify Area of Interest"});
var button1 = new OpenLayers.Control.Button({title:'Clear Area of Interest',
displayClass: "olControlClearAreaOfInterest",
trigger: clearAOI
});
var container = $("panel2");
var panel = new OpenLayers.Control.Panel(
{ div: container,defaultControl: zoomBox,'displayClass': 'olControlPanel'}
);
var nav = new OpenLayers.Control.NavigationHistory({
nextOptions: {title: "Next View"},
previousOptions: {title: "Previous View"}
});
map.addControl(nav);
panel.addControls([
new OpenLayers.Control.MouseDefaults({title:'Drag to recenter map'}),
zoomBox,
nav.next, nav.previous,
new OpenLayers.Control.ZoomToMaxExtent({title:"Zoom to the max extent"}),
polygonControl,
button1,
]);
map.addControl(panel);
}
function init()
{
setupMapWidget();
setupDataLayer();
setupBaseLayer();
setupAoiLayer();
changeMapSize();
setupToolbar();
setupMapView();
}
function goto()
{
var centerLon = $("centerLon").value;
var centerLat = $("centerLat").value;
var zoom = map.getZoom();
var center = new OpenLayers.LonLat(centerLon, centerLat);
map.setCenter(center, zoom);
}
function clearAOI( e )
{
aoiLayer.destroyFeatures();
// HACK - Need a better way to this
$("aoiMinLon").value = "";
$("aoiMaxLat").value = "";
$("aoiMaxLon").value = "";
$("aoiMinLat").value = "";
}
function setAOI( e )
{
var geom = e.feature.geometry;
var bounds = geom.getBounds();
var feature = new OpenLayers.Feature.Vector(geom);
// HACK - Need a better way to this
$("aoiMinLon").value = bounds.left;
$("aoiMaxLat").value = bounds.top;
$("aoiMaxLon").value = bounds.right;
$("aoiMinLat").value = bounds.bottom;
aoiLayer.destroyFeatures();
aoiLayer.addFeatures(feature, {silent: true});
}
function setView( e )
{
var bounds = map.getExtent();
$("viewMinLon").value = bounds.left;
$("viewMaxLat").value = bounds.top;
$("viewMaxLon").value = bounds.right;
$("viewMinLat").value = bounds.bottom;
}
function setCenterText( e )
{
var center = map.getCenter();
$("centerLon").value = center.lon;
$("centerLat").value = center.lat;
}
function toggleRadiusSearch()
{
if ( $("radiusact").checked == true )
{
$("aoiRadius").disabled = false;
$("radiusact").value = "true";
$("bboxact").checked = false;
}
else
{
$("aoiRadius").disabled = true;
$("radiusact").value = "false";
$("bboxact").checked = true;
}
}
function toggleBboxSearch()
{
if ( $("bboxact").checked == true )
{
$("aoiRadius").disabled = true;
$("radiusact").value = "false";
$("radiusact").checked = false;
}
else
{
$("aoiRadius").disabled = false;
$("radiusact").value = "true";
$("radiusact").checked = true;
}
}
function enableRadiusSearch()
{
$("radiusact").checked = true;
$("aoiRadius").disabled = false;
$("radiusact").value = "true";
$("bboxact").checked = false;
}
function enableBboxSearch()
{
$("bboxact").checked = true;
$("aoiRadius").disabled = true;
$("radiusact").value = "false";
$("radiusact").checked = false;
}
function updateOmarFilters()
{
var sday = $("startDate_day").value;
var smonth = $("startDate_month").value;
var syear = $("startDate_year").value;
var eday = $("endDate_day").value;
var emonth = $("endDate_month").value;
var eyear = $("endDate_year").value;
if ( sday != "" && smonth != "" && syear != "" )
{
var omarfilter = "acquisition_date >= \'" + smonth + "-" + sday + "-" + syear;
if ( eday != "" && emonth != "" && eyear != "" )
{
} omarfilter += " and acquisition_date <= \'" + emonth + "-" + eday + "-" + eyear + " 23:59:59";
if ( dataLayer != null )
{
map.removeLayer(dataLayer);
}
dataLayer = new OpenLayers.Layer.WMS(
"${dataWMS.title}",
"${dataWMS.url}",
{imagefilter: omarfilter, layers: "${dataWMS.layers}", format: "image/gif", transparent: true },
{isBaseLayer: false},
{buffer: 0}
);
map.addLayer( dataLayer );
}
else
{
if ( eday != "" && emonth != "" && eyear != "" )
{
var omarfilter = "acquisition_date <= \'" + emonth + "-" + eday + "-" + eyear;
if ( dataLayer != null )
{
map.removeLayer(dataLayer);
}
dataLayer = new OpenLayers.Layer.WMS(
"${dataWMS.title}",
"${dataWMS.url}",
{imagefilter: omarfilter, layers: "${dataWMS.layers}", format: "image/gif", transparent: true },
{isBaseLayer: false},
{buffer: 0}
);
map.addLayer( dataLayer );
}
else
{
dataLayer = new OpenLayers.Layer.WMS(
"${dataWMS.title}",
"${dataWMS.url}",
{imagefilter: "acquisition_date > '01-01-1970'", layers: "${dataWMS.layers}", format: "image/gif", transparent: true },
{isBaseLayer: false},
{buffer: 0}
);
map.addLayer( dataLayer );
}
}
}
var Dom = YAHOO.util.Dom;
var Event = YAHOO.util.Event;
Event.onDOMReady(function()
{
init();
});