OpenLayers OpenLayers

Changeset 5342

Show
Ignore:
Timestamp:
12/04/07 15:14:06 (1 year ago)
Author:
ominiverdi
Message:

OWS Manager
new Control created for OWS Manager
added OWS attributes to Layer's serialization
enhanced WMC support. OWSManager Legend is not yet synched

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • sandbox/ominiverdi/ows/OWSManager/examples/wms_manager_stile.html

    r5327 r5342  
    4242    <script src="../lib/OpenLayers.js"></script> 
    4343     
    44     <script src="../lib/OpenLayers/Control/WMSManager.js"></script> 
     44    <!--<script src="../lib/OpenLayers/Control/WMSManager.js"></script>--> 
     45    <script src="../lib/OpenLayers/Control/OWSManager.js"></script> 
    4546     
    4647    <script src="../lib/OpenLayers/Control/WMSToolbar.js"></script> 
     
    106107            ); 
    107108 
    108             map.addControl( new OpenLayers.Control.WMSManager(aWMSServers ) ); 
     109            map.addControl( new OpenLayers.Control.OWSManager(aWMSServers ) ); 
    109110             
    110111             
     
    223224            //add new layers 
    224225            map.addLayers(obj.layers); 
     226            map.events.triggerEvent("changebaselayer");//maybe?!? 
    225227             
    226228            //zoom to context extent 
  • sandbox/ominiverdi/ows/OWSManager/lib/OpenLayers/Format/WMC.js

    r5327 r5342  
    124124        var layers = this.findChildrenByName(layerlist,'Layer'); 
    125125        for(i=0;i<layers.length;i++){ 
    126             layer = layers[i]; 
     126            wmcLayer = layers[i]; 
    127127            console.log('layer: '+i); 
    128128            //getting porperties values 
    129             var name = this.concatChildValues(this.findChildByName(layer,'Name')); 
    130             var title = this.concatChildValues(this.findChildByName(layer,'Title')); 
    131             var srs = this.concatChildValues(this.findChildByName(layer,'SRS')); 
     129            var name = this.concatChildValues(this.findChildByName(wmcLayer,'Name')); 
     130            var title = this.concatChildValues(this.findChildByName(wmcLayer,'Title')); 
     131            var srs = this.concatChildValues(this.findChildByName(wmcLayer,'SRS')); 
    132132            var srss = srs.split(' '); 
    133133            srs = srss[0];//bad choice - forcing to first srs available 
    134134             
    135135            //get format value <FormatList> 
    136             var formatList = this.findChildByName(layer,'FormatList'); 
     136            var formatList = this.findChildByName(wmcLayer,'FormatList'); 
    137137            //var formats = this.findChildrenByName(formatList,'Format'); 
    138138            var format = 'image/png'; 
     
    148148             
    149149            //Overlay 
    150             var overlay = layer.getAttribute('overlay');  
     150            var overlay = wmcLayer.getAttribute('overlay');  
    151151            if(overlay) var isBaseLayer = false; 
    152152            else var isBaseLayer = true; 
    153             var hidden = layer.getAttribute('hidden'); 
     153            var hidden = wmcLayer.getAttribute('hidden'); 
    154154            //alert(hidden); 
    155155            if(!hidden) var visibility = false; 
     
    157157             
    158158            //GET server values 
    159             var server = this.findChildByName(layer,'Server'); 
     159            var server = this.findChildByName(wmcLayer,'Server'); 
    160160            var version = server.getAttribute('version'); 
    161161            var service = server.getAttribute('service');//TODO parse to see if not WMS 
     
    163163            var url = onlineResource.getAttribute('xlink:href'); 
    164164             
     165             
     166             
     167             
    165168            //built layer structure 
    166169            layer = {}; 
    167170            layer.CLASS_NAME = "OpenLayers.Layer.WMS"; 
    168171            layer.name =  title; 
     172            layer.abstract = abstract; 
    169173            layer.url =  url; 
    170174            layer.isBaseLayer = isBaseLayer; 
     
    181185            //layer.params.SRS = srs; 
    182186            //OLContext.projection = srs; 
     187             
     188            //OWS Manager values 
     189            layer.OWSName = title; 
     190            layer.OWSTitle = title; 
     191            if(this.findChildByName(wmcLayer,'Abstract')) var abstract = this.concatChildValues(this.findChildByName(wmcLayer,'Abstract')); 
     192            if(abstract)layer.OWSAbstract = abstract; 
     193            if(OLContext.bounds)layer.OWSBoundingBox = OLContext.bounds.toString(); 
     194            if(wmcLayer.getElementsByTagName('LegendURL')) { 
     195                var OWSLegendURL = wmcLayer.getElementsByTagName('LegendURL')[0].getElementsByTagName('OnlineResource')[0].getAttribute('xlink:href');                       
     196            } 
     197            if(OWSLegendURL)layer.OWSLegendURL = OWSLegendURL; 
     198            var OWSqueryable = wmcLayer.getAttribute('queryable');  
     199            if(OWSqueryable)layer.OWSqueryable = OWSqueryable; 
     200            var SLDService = wmcLayer.getAttribute('SLDService');  
     201            if(SLDService)layer.SLDService = SLDService; 
     202             
    183203             
    184204            OLContext.layers[i] = layer; 
     
    254274                var oLayer = OLON.layers[i]; 
    255275                var layer = this.createElementNS(this.WMC_NS,'Layer'); 
    256                 layer.setAttribute('queryable', '1 - hardcoded'); 
     276                var queryable =(oLayer.OWSqueryable)?oLayer.OWSqueryable:0;  
     277                layer.setAttribute('queryable', queryable); 
    257278                if(!oLayer.isBaseLayer){ 
    258                     layer.setAttribute('overlay', 'true');//this attr. should be of OL namespace 
     279                    layer.setAttribute('overlay', 'true');//this attr. should be in OL namespace 
    259280                    layer.setAttribute('hidden', !oLayer.visibility); 
    260281                }    
    261                 //should I look directly in the Map object? 
    262                 //or should I expect to find visibility in the OLON? 
     282                 
     283                //SLDService. this should be in OL namespace 
     284                if(oLayer.SLDService)layer.setAttribute('SLDService',oLayer.SLDService); 
     285                //OWS Manager params 
     286                /*layer.OWSName +=  separator  + aaWMSLayer[0]; 
     287                    layer.OWSTitle +=  separator  + aaWMSLayer[1]; 
     288                    layer.OWSAbstract += separator  + aaWMSLayer[2]; 
     289                    layer.OWSBoundingBox += separator  + aaWMSLayer[3]; 
     290                    layer.OWSLegendURL += separator  + aaWMSLayer[4]; 
     291                    layer.OWSqueryable += separator  + aaWMSLayer[5]; 
     292                    oLayer.SLDService =  aaWMSLayer[6];*/ 
    263293                 
    264294                if(oLayer.url){ 
    265295                    //NAME -> params:LAYERS 
    266296                    if(oLayer.params.LAYERS) var layers = oLayer.params.LAYERS; 
    267                     else layers = '???'; 
     297                    else var layers = '???';//should never happen 
    268298                    var name = this.createElementNS(this.WMC_NS,'Name'); 
    269299                    name.appendChild(this.createTextNode(layers)); 
    270300                    layer.appendChild(name); 
    271301                     
    272                     //TITLE -> name 
    273                     if(oLayer.name) var olname = oLayer.name; 
    274                     else olname = '???'; 
     302                    //TITLE -> title||name||OWSTitle 
     303                    if(oLayer.OWSTitle) var oltitle = oLayer.OWSTitle; 
     304                    else if(oLayer.title) var oltitle = oLayer.title; 
     305                    else if(oLayer.name) var oltitle = oLayer.name; 
     306                    else var oltitle = '???'; 
    275307                    var title = this.createElementNS(this.WMC_NS,'Title'); 
    276                     title.appendChild(this.createTextNode(olname)); 
     308                    title.appendChild(this.createTextNode(oltitle)); 
    277309                    layer.appendChild(title); 
     310                     
     311                    //ABSTRACT -> OWSAbstract||abstract 
     312                    if(oLayer.OWSAbstract) var olabstract = oLayer.OWSAbstract; 
     313                    else if(oLayer.title) var olabstract = oLayer.title; 
     314                    else if(oLayer.name) var olabstract = oLayer.name; 
     315                    else var olabstract = null; 
     316                    if(olabstract){ 
     317                        var abstract = this.createElementNS(this.WMC_NS,'Abstract'); 
     318                        abstract.appendChild(this.createTextNode(olabstract)); 
     319                        layer.appendChild(abstract); 
     320                    } 
    278321                     
    279322                    //SRS -> params:SRS 
     
    315358                    //should be the list of all styles available 
    316359                    var StyleTypeList = this.createElementNS(this.WMC_NS,'StyleTypeLyst'); 
     360                    if(oLayer.OWSLegendURL) var olLegUrl = oLayer.OWSLegendURL; 
     361                    else var olLegUrl = null; 
    317362                    if(oLayer.params.STYLE) var olstyle = oLayer.params.STYLE; 
    318                     else olstyle = '???'; 
    319                     /*var format = this.createElementNS(this.WMC_NS,'FormatList'); 
    320                     format.setAttribute('current','1'); 
    321                     format.appendChild(this.createTextNode(olformat));*/ 
     363                    else olstyle = ''; 
     364                    /* 
     365                     * <Style current="1">  
     366                         <Name>default</Name>  
     367                         <Title>Default</Title>  
     368                         <LegendURL width="180" format="image/gif" height="50">  
     369                          <OnlineResource xlink:type="simple"  
     370                    xlink:href="http://globe.digitalearth.gov/globe/en/icons/colorbars/COASTLINES.gif"/>  
     371                         </LegendURL>  
     372                        </Style>  
     373 
     374                     */ 
     375                    var style = this.createElementNS(this.WMC_NS,'FormatList'); 
     376                    style.setAttribute('current','1'); 
     377                    var styleName = this.createElementNS(this.WMC_NS,'Name'); 
     378                    styleName.appendChild(this.createTextNode(olstyle)); 
     379                    style.appendChild(styleName); 
     380                    var legendUrl = this.createElementNS(this.WMC_NS,'LegendURL'); 
     381                    legendUrl.setAttribute('height','20'); 
     382                    legendUrl.setAttribute('width','20'); 
     383                    legendUrl.setAttribute('format','image/png'); 
     384                    var lOnlineResource = this.createElementNS(legendUrl,'OnlineResource'); 
     385                    lOnlineResource.setAttribute('xlink:type','simple'); 
     386                    lOnlineResource.setAttribute('xlink:href',olLegUrl); 
     387                    legendUrl.appendChild(lOnlineResource); 
     388                    style.appendChild(legendUrl); 
     389                    StyleTypeList.appendChild(style); 
    322390                    //HOW TO DEFINE THE DEFAULT STYLE?!??! 
    323391                    layer.appendChild(StyleTypeList); 
  • sandbox/ominiverdi/ows/OWSManager/lib/OpenLayers/Layer.js

    r4832 r5342  
    229229                  "maxExtent", "wrapDateLine", "displayOutsideMaxExtent", 
    230230                  "isBaseLayer", "displayInLayerSwitcher", "visibility", 
    231                   "opacity"] 
     231                  "opacity", 
     232                  //OWS Manager stuff 
     233                  "title","abstract", 
     234                  "OWSName","OWSTitle","OWSAbstract","OWSBoundingBox" 
     235                  ,"OWSLegendURL","OWSqueryable","SLDService" 
     236                  ] 
    232237    }, 
    233238