Ignore:
Timestamp:
03/08/07 10:23:57 (12 years ago)
Author:
domlowe
Message:

Implemented discovery openlayers box (Stephen)

Location:
TI05-delivery/ows_framework/trunk/ows_server/ows_server
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/public/js/OLMapBox.js

    r2694 r2759  
    1010OLMapBoxApp = OpenLayers.Class.create(); 
    1111OLMapBoxApp.prototype = { 
    12     initialize: function(div, formDiv, selFormDiv, controlUri) { 
    13         this.control = controlUri // Yadayada yada ... I dunno what i'm doing  
    14         //this.control.onchange = this.updateDdcLayer.bindAsEventListener(this); 
    15          
     12    initialize: function(div, selFormDiv) { 
    1613        this.selFormDiv = $(selFormDiv); 
    17         this.figureCounter = 1 
    1814 
    1915        // This is taken from Layer.js with slight alterations.  One 
     
    4238        this.map.events.register('zoomend', this, this.updateSelectionForm); 
    4339        for (var i=0; i < this.selFormDiv.elements.length; i++) { 
    44             this.selFormDiv.elements[i].onchange = this.updateSelectionBox.bindAsEventListener(this); 
    45             // For IE 
    46             /* 
    47             fixF = function (e) { 
    48                 var event = e ? e : window.event; 
    49                 if (event.keyCode == 13) { 
    50                     return false; 
    51                 }   
    52             }; 
    53             this.selFormDiv.elements[i].onkeypress = fixF; 
    54             */ 
    55         } 
     40            this.selFormDiv.elements[i].onchange = this.updateSelectionBox.bindAsEventListener(this);   } 
    5641 
    5742        this.map.addControl(new OpenLayers.Control.PanZoomBar()); 
     
    6247        //this.map.addControl(new OpenLayers.Control.LayerSwitcher()); 
    6348 
    64         // Setup a dummy baselayer.  This will be replaced asynchronously by this.updateDdcLayer() 
     49        // Setup the baselayer.  For Discovery this is the only layer we need. 
    6550        this.ddcLayer = new OpenLayers.Layer.WMS("OpenLayers WMS", 
    6651                                                 "http://labs.metacarta.com/wms/vmap0", 
    6752                                                 {layers: 'basic',format: 'image/png'}); 
    6853        this.map.addLayer(this.ddcLayer); 
    69  
    70         this.updateDdcLayer(); 
    71         this.coastLayer = null; 
    72         this._initCoast('coastline_01'); 
    73  
    74  
    7554        this.map.addLayer(this.boxesLayer); 
    7655        this.map.zoomToExtent(new OpenLayers.Bounds(-180,-90,180,90));   
    77     }, 
    78  
    79     _initCoast: function(layerName) { 
    80         if (this.coastLayer) { 
    81             if (this.coastLayer.params.LAYERS == layerName) { 
    82                 return; 
    83             } 
    84             else { 
    85                 this.map.removeLayer(this.coastLayer); 
    86             } 
    87         } 
    88         this.coastLayer = new OpenLayers.Layer.WMS("Coastline", 
    89                                                    "http://labs.metacarta.com/wms/vmap0", 
    90                                                    {layers: layerName, format: 'image/gif', 
    91                                                     transparent: 'true'}); 
    92         this.map.addLayer(this.coastLayer); 
    93     }, 
    94  
    95     updateDdcLayer: function() { 
    96         this.control.agetWmsUri(this, this.updateDdcLayer_cb); 
    97     }, 
    98     updateDdcLayer_cb: function(response) { 
    99         var url = response.responseText; 
    100         if (this.ddcLayer) { 
    101             this.map.removeLayer(this.ddcLayer); 
    102         } 
    103         this.ddcLayer = new OpenLayers.Layer.WMS("DDC-Vis layer", 
    104                                                  document.location+url, 
    105                                                  {format: 'image/png', 
    106                                                   version: '1.3.0', CRS: 'CRS:84' 
    107                                                  }); 
    108         this.ddcLayer.setZIndex(300); 
    109         this.map.addLayer(this.ddcLayer); 
    110  
    111         this.loadLegend(); 
    11256    }, 
    11357 
     
    11761    }, 
    11862 
    119     loadLegend: function() { 
    120         function setLegend(response) { 
    121             $('legend').innerHTML = response.responseText; 
    122             var desc = document.createElement('p'); 
    123             desc.innerHTML = this.control.getStateDescription(); 
    124             $('legend').appendChild(desc); 
    125         } 
    126          
    127         var url = this.ddcLayer.getFullRequestString({ 
    128             REQUEST: 'GetLegend', 
    129             FORMAT: 'text/html', 
    130             CMAP: this.cmapName 
    131         }); 
    132         OpenLayers.loadURL(url, '', this, setLegend); 
    133     }, 
    134      
    13563    updateSelectionForm: function() { 
    13664        var b = this.subselControl.getActiveBounds(); 
     
    13967        this.selFormDiv.bboxE.value = b.right.toFixed(1); 
    14068        this.selFormDiv.bboxN.value = b.top.toFixed(1); 
    141  
    142         // Switch to higerres coasts if needed 
    143         var coastLayer; 
    144         if (this.map.getZoom() > 5) { 
    145             coastLayer = 'coastline_02'; 
    146         } 
    147         else { 
    148             coastLayer = 'coastline_01'; 
    149         } 
    150         if (this.coastLayer.params.LAYERS != coastLayer) { 
    151             this._initCoast(coastLayer); 
    152         } 
    15369    }, 
    15470    updateSelectionBox: function() { 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/public/layout/ndg2.css

    r2755 r2759  
    111111.cellhead { font-size: 100%; font-weight: bold;}  
    112112 
    113 #map {width:400px; height:250px; border: 1px solid black;} 
     113#map {width:400px; height:300px; border: 1px solid black;} 
    114114/* .map {width:300px;height:250px;border:0;padding:0;margin:0;overflow:hidden;}*/ 
    115115/* NumSim */ 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/templates/advanced.kid

    r2757 r2759  
    22    <!-- provides the main introduction and "advanced" search page --> 
    33    <head py:replace="pagehead(1)"/> 
    4     <body> 
     4    <body onload="initOLMapBox()"> 
    55    <div id="entirepage"> 
    66        <div py:replace="header1(0)"/> 
     
    99        <div class="outer"> 
    1010            <div class="inner"> 
    11                 <form action="$c.discoveryURL" name="discoForm"> 
     11                <form action="$c.discoveryURL" name="discoForm" id="discoForm"> 
    1212                <div class="float-wrap"> 
    1313                    <div id="AdvContent">  
     
    7575                        <td colspan="3"> 
    7676                        <div id="map"></div> 
    77                             <script type="text/javascript"> 
    78                                 var app=null; 
    79                                 function init(){ 
    80                                     app=new OLMapBox('map','discoForm','selectionForm','/control') 
    81                                     } 
    82                             </script> 
    83                             <!--<script defer="defer" type="text/javascript"> 
    84                                 var map = new OpenLayers.Map('map'); 
    85                                 var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",  
    86                                     "http://labs.metacarta.com/wms/vmap0", {layers: 'basic'} ); 
    87                                 map.addLayer(wms); 
    88                                 map.zoomToMaxExtent(); 
    89                             </script>--> 
    90                             <!--                      
    91                             <iframe src="http://grid.bodc.nerc.ac.uk/maps/data/ndg_portal/geosearch/viewer.htm"  
    92                                 id="map" width="450" height="375" name='NDG_SEARCH' scrolling='no'> 
    93                             </iframe><br/>&nbsp;--> 
    9477                            <div id="spacov_help" class="hidden"> 
    9578                                <div class="helptxt"> 
     
    10992                        </td></tr> 
    11093                        <tr><td colspan="3">(Units: degrees, north and east positive)</td></tr> 
     94                    <tr><td colspan="2"><input type="button" value="Clear selection" onclick="app.clearSubsel()"/></td></tr> 
    11195                    </table> 
    11296                </div> <!-- end right div --> 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/templates/ndgPage.kid

    r2748 r2759  
    1414        <script py:if="ol==1" src="/js/OLMapBox.js"/> 
    1515        <link media="all, screen" href="/layout/ndg2.css" type="text/css" rel="stylesheet"/> 
     16 
     17        <script type="text/javascript"> 
     18          var app = null; 
     19          function initOLMapBox() { 
     20            app = new OLMapBoxApp('map','discoForm'); 
     21          } 
     22        </script> 
     23 
     24 
    1625    </head> 
    1726 
Note: See TracChangeset for help on using the changeset viewer.