Changeset 225


Ignore:
Timestamp:
03/16/09 16:11:16 (9 years ago)
Author:
dwins
Message:

Add getfeatureinfo control to GeoExplorer.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sandbox/opengeo/drake/trunk/apps/geoexplorer/index.html

    r215 r225  
    2323                load: function() {
    2424                    this.map = new OpenLayers.Map();
     25                    this.selectionLayer = new OpenLayers.Layer.Vector('Selection', { });
    2526                    this.map.addLayers([
    26                     new OpenLayers.Layer.WMS("TOPP States",
    27                     '/geoserver/wms' ,{
    28                         layers: 'topp:states'
    29                         }, {
    30                         isBaseLayer: true
    31                     })
     27                        new OpenLayers.Layer.WMS("TOPP States",
     28                        '/geoserver/wms' ,{
     29                            layers: 'topp:states,sf:restricted',
     30                            format: 'image/png'
     31                            }, {
     32                            isBaseLayer: true
     33                        }),
     34                        this.selectionLayer
    3235                    ]);
     36
     37                    var identify = new OpenLayers.Control.WMSGetFeatureInfo('/geoserver/wms', {
     38                        title: 'Identify features by clicking',
     39                        layers: 'topp:states',
     40                        format: new OpenLayers.Format.WMSGetFeatureInfo({
     41                            typeName: 'states',
     42                            featureNS: 'http://www.openplans.org/topp'
     43                        })
     44                    });
     45
     46                    var highlight = new OpenLayers.Control.WMSGetFeatureInfo('/geoserver/wms', {
     47                        hover: true,
     48                        title: 'Highlight features by hovering',
     49                        layers: 'topp:states',
     50                        infoFormat: 'application/vnd.ogc.gml',
     51                        format: new OpenLayers.Format.WMSGetFeatureInfo({
     52                            typeName: 'states',
     53                            featureNS: 'http://www.openplans.org/topp'
     54                        })
     55                    });
     56
     57                    identify.events.register('getfeatureinfo', this,
     58                        function(evt) {
     59                            var html = evt.features && evt.features.length
     60                                ? 'Found ' + evt.features.length + ' features'
     61                                : evt.text;
     62                            var win = new Ext.Window({
     63                                html: html,
     64                                title: "Feature Info"
     65                            });
     66                            GeoExplorer.mapPanel.add(win);
     67                            win.show();
     68                        }
     69                    );
     70
     71                    highlight.events.register('getfeatureinfo', this,
     72                        function(evt){
     73                            GeoExplorer.selectionLayer.destroyFeatures();
     74                            if (evt.features){
     75                                GeoExplorer.selectionLayer.addFeatures(evt.features);
     76                            }
     77                        }
     78                    );
     79
     80                    this.map.addControl(identify);
     81                    this.map.addControl(highlight);
     82
     83                    var idButton = new Ext.Button({
     84                        text: 'Identify',
     85                        enableToggle: true
     86                    });
     87
     88                    idButton.on('toggle', function(btn, pressed){
     89                        if (pressed){
     90                            identify.activate();
     91                        } else {
     92                            identify.deactivate();
     93                        }
     94                    });
     95
     96                    var selectButton = new Ext.Button({
     97                        text: 'Select',
     98                        enableToggle: true
     99                    });
     100
     101                    selectButton.on('toggle', function(btn, pressed){
     102                        if (pressed){
     103                            highlight.activate();
     104                        } else {
     105                            highlight.deactivate();
     106                        }
     107                    });
    33108
    34109                    this.mapPanel = new GeoExt.MapPanel({
    35110                        map: this.map,
    36                         region: 'center'
     111                        region: 'center',
     112                        tbar: ['->', selectButton, idButton]
    37113                    });
    38114
Note: See TracChangeset for help on using the changeset viewer.