Ignore:
Timestamp:
18/03/08 16:39:36 (12 years ago)
Author:
cbyrom
Message:

Add basic GetLegend? webservice to allow lookup of legend graphic when
displaying layers in view tab.

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/controllers/viewItems.py

    r3611 r3647  
    2121         
    2222        # check if we're doing an AJAX callback to get some WMC data 
    23         if 'REQUEST' in self.inputs and self.inputs['REQUEST'] == 'GetWebMapContext': 
    24             return GetWebMapContext(self) 
     23        if 'REQUEST' in self.inputs: 
     24            if self.inputs['REQUEST'] == 'GetWebMapContext': 
     25                return GetWebMapContext(self) 
     26            elif self.inputs['REQUEST'] == 'GetLegend': 
     27                return GetLegend(self) 
     28 
    2529         
    2630        # otherwise, we can get here by two routes: 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/lib/wmc_util.py

    r3544 r3647  
    6262    return render('conterra_aggregate', format='xml') 
    6363 
    64  
    6564     
    6665def GetWebMapContext(self): 
     
    8281    response.write(filehandle.read()) 
    8382     
     83 
     84def GetLegend(self): 
     85    """ 
     86    Lookup a legend for a WMS map 
     87    """ 
     88    # retrieve context data from the specifiled url 
     89    endpoint = self.inputs['ENDPOINT'] 
     90    if not endpoint: 
     91        raise exceptions.MissingParameterValue, "ENDPOINT parameter required" 
     92    logger.info('Getting Legend from endpoint: ' + endpoint) 
     93 
     94    try: 
     95        filehandle = urllib2.urlopen(endpoint) 
     96    except IOError: 
     97        raise exceptions.URLUnavailable, "Could not access WMC endpoint: %s" % endpoint 
     98         
     99    response.headers['Content-Type'] = 'text/xml' 
     100    response.write(filehandle.read()) 
     101         
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/public/js/vis-app.js

    r3645 r3647  
    149149    loadLegend: function()  
    150150    { 
    151                 function setLegend(xhr)  
    152                 { 
    153                         alert('bloo'); 
    154                 $('legend').innerHTML = xhr.responseXML.documentElement; 
    155                 } 
    156  
    157                 function noLegend(response)  
    158                 { 
    159                 alert('blah'); 
    160                 } 
     151                var setLegend = function (xhr)  
     152                { 
     153                $('legend').innerHTML = ''; 
     154                        var legendHTML = xhr.responseXML.documentElement.innerHTML; 
     155                        if (legendHTML) 
     156                        $('legend').innerHTML = legendHTML; 
     157                }; 
     158 
     159                var failure = function (xhr)  
     160                { 
     161                alert('Error: could not load legend data for the last selected layer.'); 
     162                }; 
     163                 
    161164 
    162165                // set the legend to be the topmost layer that has been picked 
     
    182185                                FORMAT: 'text/html' 
    183186                }); 
     187 
     188                        var params = {REQUEST: 'GetLegend', 
     189                                          ENDPOINT: url}; 
    184190                 
    185                 new Ajax.Request(url,  
    186                                 {parameters: {}, 
     191                new Ajax.Request('',  
     192                                {parameters: params, 
    187193                        method: "get", 
    188                         onSuccess: setLegend.bindAsEventListener(this) 
     194                        onSuccess: setLegend.bindAsEventListener(this), 
     195                        onFailure: failure.bindAsEventListener(this) 
    189196                                }); 
    190                  
    191                 //OpenLayers.loadURL(url, '', this, setLegend, noLegend); 
    192                 } 
    193     }, 
     197                } 
     198    }, 
     199     
    194200 
    195201    makeFigure: function(typeInput, formatSelect)  
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/public/js/wmscControl.js

    r3613 r3647  
    302302                                return; 
    303303                                 
    304                         var params = {REQUEST: 'GetCapabilities', 
     304/**                     var params = {REQUEST: 'GetCapabilities', 
    305305                                CONTEXT: treeLayer}; 
    306306 
     
    310310                                    ENDPOINT: node.data.wmcEndpoint }; 
    311311                        } 
    312  
     312*/ 
    313313                // add the selected layer to the layers panel 
    314314                this._updateLeafLayer(); 
Note: See TracChangeset for help on using the changeset viewer.