OpenLayers OpenLayers

Changeset 5364

Show
Ignore:
Timestamp:
12/08/07 13:53:40 (1 year ago)
Author:
ominiverdi
Message:

OWS Manager
WMSQuery Control rebuilt against last Control API and added to example

Files:

Legend:

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

    r5356 r5364  
    5454 
    5555    <script src="../lib/OpenLayers/Control/SLDManager.js"></script> 
     56    <script src="../lib/OpenLayers/Control/WMSQueryTool.js"></script> 
    5657    <script src="../lib/OpenLayers/Format/SLD.js"></script> 
    5758    <script src="../lib/OpenLayers/Format/WMC.js" type="text/javascript"></script> 
     
    9798                //['SP - Asturias','http://www.cartografia.asturias.es/wmsortofotos/request.asp?'], 
    9899                ['SP - Comunidad Valenciana - Conselleria de Territori i Habitatge, GVA - Servici WMS: wms_senderos','http://orto.cth.gva.es/wmsconnector/com.esri.wms.Esrimap/wms_senderos?'] 
    99                 //['SP - Euskadi (Pais Vasco)','http://www1.euskadi.net/servlet/com.esri.wms.Esrimap?ServiceName=GVasco'] 
     100                //['SP - Euskadi (Pais Vasco)','OpenLayers.Control.WMSQueryToohttp://www1.euskadi.net/servlet/com.esri.wms.Esrimap?ServiceName=GVasco'] 
    100101                //['SP - La Rioja','http://wms.larioja.org/request.asp'] 
    101102                 
     
    113114            //map.addControl(new OpenLayers.Control.Permalink()); 
    114115            //map.addControl(new OpenLayers.Control.Permalink('permalink')); 
    115             map.addControl(new OpenLayers.Control.MousePosition()); 
     116             
     117            //map.addControl(new OpenLayers.Control.MousePosition()); 
    116118            map.addControl(new OpenLayers.Control.OverviewMap()); 
    117119            map.addControl(new OpenLayers.Control.KeyboardDefaults()); 
     
    124126             
    125127            //map.addControl(new OpenLayers.Control.NavToolbar()); 
    126             //var queryTarget = $('queryOut'); 
    127             //WMSToolbar = new OpenLayers.Control.WMSToolbar({queryTarget: queryTarget}); 
    128             //map.addControl(WMSToolbar); 
    129             map.addControl(new OpenLayers.Control.NavToolbar()); 
     128            var queryTarget = $('output'); 
     129            WMSToolbar = new OpenLayers.Control.WMSToolbar({queryTarget: queryTarget}); 
     130            map.addControl(WMSToolbar); 
     131            //map.addControl(new OpenLayers.Control.NavToolbar()); 
    130132            //alert(WMSToolbar.div.id); 
    131133            //WMSToolbar.style.display = "none"; 
  • sandbox/ominiverdi/ows/OWSManager/lib/OpenLayers/Control/WMSQuery.js

    r5096 r5364  
    1 /* Copyright (c) 2006 MetaCarta, Inc., published under a modified BSD license. 
     1/* Copyright (c) 2006-2007 MetaCarta, Inc., published under a modified BSD license. 
    22 * See http://svn.openlayers.org/trunk/openlayers/repository-license.txt  
    33 * for the full text of the license. */ 
    44 
    55/** 
    6  * @class 
    7  *  
    86 * @requires OpenLayers/Control.js 
    97 * @requires OpenLayers/Handler/Box.js 
     8 * 
     9 * Class: OpenLayers.Control.WMSQuery 
     10 * 
     11 * Inherits from: 
     12 *  - <OpenLayers.Control> 
    1013 */ 
    11 OpenLayers.Control.WMSQuery = OpenLayers.Class.create(); 
    12 OpenLayers.Control.WMSQuery.prototype =  
    13   OpenLayers.Class.inherit( OpenLayers.Control, { 
    14     /** @type OpenLayers.Control.TYPE_* */ 
     14OpenLayers.Control.WMSQuery = OpenLayers.Class(OpenLayers.Control, { 
     15    /** 
     16     * Property: type 
     17     * {OpenLayers.Control.TYPE} 
     18     */ 
    1519    type: OpenLayers.Control.TYPE_TOOL, 
    1620     
     21    /** 
     22     * Property: message 
     23     * {String} the output message for query 
     24     */ 
     25    message: '', 
     26    /** 
     27     * Property: requested 
     28     *  
     29     * {Int} number of appended messages 
     30     */ 
     31    requested : 0, 
     32    /** 
     33     * Property: numLayers 
     34     *  
     35     * {Int} number of layers queryed 
     36     */ 
     37    numLayers:0, 
    1738    /** 
    18      *  
     39     * Method: draw 
    1940     */     
    2041    draw: function() { 
    2142        this.handler = new OpenLayers.Handler.Box( this, 
    2243                            {done: this.WMSQuery}, {keyMask: this.keyMask} ); 
    23         //alert(this.queryTarget); 
    2444    }, 
    2545 
     46    /** 
     47     * Method: WMSQuery 
     48     * 
     49     * Parameters: 
     50     * position - {<OpenLayers.Bounds>} or {<OpenLayers.Pixel>} 
     51     */ 
    2652    WMSQuery: function (position) { 
    27          
    2853        if (position instanceof OpenLayers.Bounds) { 
    29            alert('query rect'); 
     54            alert('query rect'); 
    3055            var minXY = this.map.getLonLatFromPixel( 
    3156                            new OpenLayers.Pixel(position.left, position.bottom)); 
     
    3661            this.map.zoomToExtent(bounds); 
    3762        } else { // it's a pixel 
    38             //alert('query point'); 
    39            // this.map.setCenter(this.map.getLonLatFromPixel(position), this.map.getZoom() + 1); 
    40            //alert(this.map.controls); 
    41            /*var WMSManager = null; 
    42            for(var i=0; i< this.map.controls.length; i++) { 
     63         
     64        //Check if OWSManager is an active Control 
     65            var OWSManager=null; 
     66             for(var i=0; i< this.map.controls.length; i++) { 
    4367                var control = this.map.controls[i]; 
    44                 if(control.CLASS_NAME =='OpenLayers.Control.WMSManager'){ 
    45                     WMSManager = control; 
     68                if(control.CLASS_NAME =='OpenLayers.Control.OWSManager'){ 
     69                    OWSManager = control; 
    4670                } 
    4771           } 
    48            if(!WMSManager) return alert('no WMSManager available'); 
    49            */ 
    50           var LatLon = this.map.getLonLatFromPixel(position); 
    51           this.queryTarget.innerHTML = ''; 
    52           var targetObj = document.createElement('div'); 
    53           var   requested = 0;   
     72           if(!OWSManager) return alert('no OWSManager available'); 
     73            
     74           //Get pixel coords 
     75           var LatLon = this.map.getLonLatFromPixel(position); 
     76          this.setOutput('querying remote server'); 
     77         // var targetObj = document.createElement('div'); 
     78         this.requested = 0; 
     79         this.numLayers = 0;     
    5480            for(var i=0; i< this.map.layers.length; i++){ 
    5581                var layer = this.map.layers[i]; 
    56                 if(layer.visibility){ 
    57                     for(var j=0; j< layer.aWMSLayers.length; j++) { 
    58                         var WMSlayer = layer.aWMSLayers[j]; 
    59                         var layerObj = document.createElement('div'); 
    60                         layerObj.id= WMSlayer[0]; 
    61                         targetObj.appendChild(layerObj); 
     82                 //this.setOutput(layer.OWSQuery); 
     83                // console.log(layer); 
     84                if(layer.visibility && layer.OWSqueryable){ 
     85                    var queryables = layer.OWSqueryable.split('||||'); 
     86                    for(var j=0; j< queryables.length; j++) { 
     87                        var WMSlayer = layer.OWSName.split('||||')[j]; 
     88                         
    6289                        //layer.WMSinfo 
    6390                        //THIS SHOULD BE WMSlayer[5] == 1 
    64                         if(WMSlayer[5]==1){ 
     91                        if(queryables[j]==1){ 
    6592                            //alert(WMSlayer[0]+ ' '+ WMSlayer[5]); 
    6693                            //var url =  + ; 
     94                            layer.myTarget = this; 
    6795                            var url =  layer.getFullRequestString({ 
    6896                                REQUEST: "GetFeatureInfo", 
     
    7199                                X: position.x, 
    72100                                Y: position.y, 
    73                                 INFO_FORMAT: 'text/html', 
    74                                 QUERY_LAYERS: WMSlayer[0]
     101                                INFO_FORMAT: 'text/plain', 
     102                                QUERY_LAYERS: WMSlayer
    75103                                WIDTH: layer.map.size.w, 
    76104                                HEIGHT: layer.map.size.h}); 
    77105                            //OpenLayers.loadURL(url, '', this, this.printQuery); 
    78                             OpenLayers.loadURL(url, '', layerObj, this.printQuery); 
    79                             requested++; 
     106                            OpenLayers.loadURL(url, '', this, this.printQuery); 
    80107                             
     108                            this.numLayers++; 
    81109                        } 
    82110                    } 
    83111                } 
    84112            } 
    85             if(requested)this.queryTarget.appendChild(targetObj); 
    86             else this.queryTarget.innerHTML = 'no queryable layers available'; 
     113            if(!this.numLayers) alert('no queryable layers found'); 
     114            //if(requested)this.queryTarget.appendChild(targetObj); 
     115            //else this.queryTarget.innerHTML = 'no queryable layers available'; 
     116             
    87117        } 
    88118    }, 
    89      
    90119    /**  
    91120     * @private  
     
    94123     */ 
    95124    printQuery: function(ajaxRequest){ 
    96         if(this.id){ 
     125         
    97126        var text = ajaxRequest.responseText; 
    98         this.innerHTML = text; 
    99         } else alert(text); 
     127        this.requested++; 
     128//      this.setOutput(text); 
     129        this.setOutput(text); 
     130         
     131    }, 
     132    /**  
     133     * @private  
     134     * 
     135     * @param {String} string to print on target 
     136     */ 
     137    setOutput: function(text){ 
     138        console.log(this.requested + ': '+text+''); 
     139        if(this.requested==1) 
     140            this.queryTarget.value = text; 
     141        else 
     142            this.queryTarget.value += text; 
    100143    }, 
    101144     
    102     /** 
    103     * @param {Event} evt 
    104     */ 
    105     doubleClick: function (evt) { 
    106         return alert('double click'); 
    107          
    108         var newCenter = this.map.getLonLatFromViewPortPx( evt.xy );  
    109        // this.map.setCenter(newCenter, this.map.zoom + 1); 
    110          
    111         OpenLayers.Event.stop(evt); 
    112         return false; 
    113     }, 
    114  
    115     /** @final @type String */ 
    116145    CLASS_NAME: "OpenLayers.Control.WMSQuery" 
    117146}); 
  • sandbox/ominiverdi/ows/OWSManager/lib/OpenLayers/Control/WMSToolbar.js

    r5096 r5364  
    1 /* Copyright (c) 2006 MetaCarta, Inc., published under a modified BSD license. 
     1/* Copyright (c) 2006-2007 MetaCarta, Inc., published under a modified BSD license. 
    22 * See http://svn.openlayers.org/trunk/openlayers/repository-license.txt  
    33 * for the full text of the license. */ 
    44 
    55/** 
    6  * @class 
    7  *  
    86 * @requires OpenLayers/Control/Panel.js 
    97 * @requires OpenLayers/Control/Navigation.js 
    108 * @requires OpenLayers/Control/ZoomBox.js 
     9 * 
     10 * Class: OpenLayers.Control.WMSToolbar 
    1111 */ 
    12 OpenLayers.Control.WMSToolbar = OpenLayers.Class.create(); 
    13 OpenLayers.Control.WMSToolbar.prototype =  
    14   OpenLayers.Class.inherit( OpenLayers.Control.Panel, { 
     12OpenLayers.Control.WMSToolbar = OpenLayers.Class(OpenLayers.Control.Panel, { 
    1513 
    1614    /** 
     15     * Constructor: OpenLayers.Control.WMSToolbar  
    1716     * Add our two mousedefaults controls. 
     17     * 
     18     * Parameters: 
     19     * options - {Object} An optional object whose properties will be used 
     20     *     to extend the control. 
    1821     */ 
    1922    initialize: function(options) { 
    20         OpenLayers.Control.Panel.prototype.initialize.apply(this, arguments); 
     23        OpenLayers.Control.Panel.prototype.initialize.apply(this, [options]); 
    2124        this.addControls([ 
    2225          new OpenLayers.Control.Navigation(), 
    23           new OpenLayers.Control.ZoomBox() 
    24          ,new OpenLayers.Control.WMSQuery({queryTarget: this.queryTarget}) 
     26          new OpenLayers.Control.ZoomBox(), 
     27          new OpenLayers.Control.WMSQuery({queryTarget: this.queryTarget}) 
    2528        ]); 
    26          
    2729    }, 
    2830 
    2931    /** 
     32     * Method: draw  
    3033     * calls the default draw, and then activates mouse defaults. 
    3134     */ 
     
    3740 
    3841    CLASS_NAME: "OpenLayers.Control.WMSToolbar" 
    39 });     
     42});