Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#1 Tue 23 November 2010 10:30

geobrie
Participant actif
Date d'inscription: 31 Jan 2010
Messages: 120

Afficher plusieurs couches interogeables

Bonjour,

J'ai suivis attentivement excellent tutoriel décrit ici http://www.geotribu.net/node/144, mais j'ai un souci pour l'affichage de l'infobulle sur plusieurs couche à la fois.

Merci

Hors ligne

 

#2 Tue 23 November 2010 12:54

ThomasG
Membre
Lieu: Nantes
Date d'inscription: 9 Sep 2005
Messages: 945
Site web

Re: Afficher plusieurs couches interogeables

Bonjour,

Un peu plus de détails serait le bienvenue pour vous répondre.
A priori, il vous manque une fonction qui s'applique sur les autres couches employées.
Voir l'exemple http://openlayers.org/dev/examples/sele … layer.html qui illustre ce cas.

Cordialement

ThomasG

Hors ligne

 

#3 Mon 29 November 2010 15:23

geobrie
Participant actif
Date d'inscription: 31 Jan 2010
Messages: 120

Re: Afficher plusieurs couches interogeables

Bonjour,

J'ai pris un peu de temps pour répondre car j'ai tenté plusieurs chose sans succès. Voici mon code :

Code:

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
            html, body {
                font: normal 12px verdana;
                margin: 0;
                padding: 0;
                border: 0 none;
                overflow: hidden;
                height: 100%;
                background-color:#d2d9df;
            }
            #header{                
                background:url(./img/GeoExt.png) no-repeat;
                margin : 0;
                background-color:#12395F;
                height : 100%;
                width :100%;
            }
            #header p{
                color : white;
                text-align : right;
                font-size: 1.2em;
                font-weight: bold;
                padding-right : 20px;        
                padding-top : 10px;            
            }
            #header a{
                color : white;
            }
</style> 
  <head> 
  <link rel="stylesheet" type="text/css" href="../ext-3.2.1/resources/css/ext-all.css"></link>
  <link rel="stylesheet" type="text/css" href="../GeoExt/resources/css/geoext-all-debug.css"></link>
  <link rel="stylesheet" type="text/css" href="../GeoExt/resources/css/popup.css"></link>  
  <link rel="stylesheet" type="text/css" href="./css/ext-carto.css"></link>
  <script type="text/javascript" src="../ext-3.2.1/adapter/ext/ext-base.js" ></script>
  <script type="text/javascript" src="../ext-3.2.1/ext-all.js"></script>
  <script type="text/javascript" src="../OpenLayers/lib/OpenLayers.js"></script>
  <script type="text/javascript" src="../GeoExt/lib/GeoExt.js"></script>

<script type="text/javascript">
var map=null;
var rowCliked = false;
Ext.QuickTips.init();
Ext.onReady(function() {

      var scan = new OpenLayers.Layer.WMS( "scan", 
            "http://www.monsite.com/cgi-bin/mapserv?map=/var/www/monsite/htdocs/foret.map&",
             {layers: 'scan'}
);    

         
          var 2009 = new OpenLayers.Layer.WFS( "2009", 
            "http://monsite/cgi-bin/mapserv?map=/var/www/monsite/htdocs/foret.map&",
             {typename: '2009'}, { extractAttributes: true, styleMap: new OpenLayers.StyleMap({
            strokeColor: "black",
            fillColor : "rgb(255, 255, 153)",
            strokeWidth: 2,
            strokeOpacity: 1,
            fillOpacity: 1
        })
});    
           var 2010 = new OpenLayers.Layer.WFS( "2010", 
            "http://monsite/cgi-bin/mapserv?map=/var/www/monsite/htdocs/foret.map&",
             {typename: '2010'}, { extractAttributes: true, styleMap: new OpenLayers.StyleMap({
            strokeColor: "black",
            fillColor : "rgb(221, 255, 170)",
            strokeWidth: 2,
            strokeOpacity: 1,
            fillOpacity: 1
        })
        }); 
        
         var parcellaire = new OpenLayers.Layer.WFS( "parcellaire", 
            "http://monsite/cgi-bin/mapserv?map=/var/www/monsite/htdocs/foret.map&",
             {typename: 'parcellaire'}, { extractAttributes: true, styleMap: new OpenLayers.StyleMap({
            strokeColor: "red",
            fillColor : "rgb(255, 255, 255)",
            strokeWidth: 2,
            strokeOpacity: 1,
            fillOpacity: 0
        })
});    
          
// [1] - ZoomSlider 
       var zSlider = new GeoExt.ZoomSlider({
        vertical: true
        ,height: 110
        ,x: 18
        ,y: 85
        ,map: mapPanel
        ,plugins: new GeoExt.ZoomSliderTip({
            template: '<div>Zoom Level: <b>{zoom}</b></div>'
        })
    });
       //MapPanel 
         var mapPanel = new GeoExt.MapPanel({
          map : {
          maxExtent: new OpenLayers.Bounds(768621, 2375694, 780500, 2380814 ),
          projection: new OpenLayers.Projection("EPSG:27582"),
          displayProjection: new OpenLayers.Projection("EPSG:27582"),
          maxResolution: 6.0,
          numZoomLevels: 11,
          units: 'meters',
            controls: [
                new OpenLayers.Control.Navigation()
                ,new OpenLayers.Control.PanPanel()
                ,new OpenLayers.Control.ZoomPanel()
            ]
           ,allOverlays : false
        }
            ,region : 'center'
            ,title : 'Foret'
            ,layers : [2009,2010,parcellaire]
            ,items  : [zSlider]

         });  
          /* tree layer */
    var treeConfig = new OpenLayers.Format.JSON().write([
        {
            text        : 'Couches'
            ,icon       : './img/maps-stack.png'
            ,expanded   : true
            ,children   : [
                {
                    nodeType    : 'gx_layer'
                    ,draggable  : false
                    ,layer      : 'coupes_2009'
                    ,qtip       : "coupes 2009"
                    ,icon       : './img/coupes_2009.png'
                },{
                    nodeType    : 'gx_layer'
                    ,draggable  : false
                    ,layer      : 'coupes_2010'
                    ,qtip       : "coupes 2010"
                    ,icon       : './img/coupes_2010.png'
                }                 
            ]
        }
    ], true);
   
    var layerTree = new Ext.tree.TreePanel({
        title       : "Couches(pour ouvrir cliquer ici)"
        ,root: {
            nodeType    : "async"
            ,expanded   : true
            ,children   : Ext.decode(treeConfig)
        }
        ,loader: new Ext.tree.TreeLoader({
            applyLoader: false
        })
        ,animate    : true
        ,enableDD   : true
        ,useArrows  : true        
        ,rootVisible: false
    });

    
     /* GRID */        
    // [1] - Creation de l'entrepot de donnees
    store = new GeoExt.data.FeatureStore({
        layers : [2010, 2009]
        ,fields : [
            {name: 'annee', type: 'string'}
            ,{name: 'type', type: 'string'}
            ,{name: 'volume', type: 'real'}
             ]
    });
    
    // create grid panel configured with feature store
    gridPanel = new Ext.grid.GridPanel({
        store: store
        ,columns : [{
            header : "Annee"
            ,width : 100
            ,dataIndex : "annee"
        }, {
        header : "Type"
            ,width : 100
            ,dataIndex : "type"
            }, {
        header : "Volume"
            ,width : 100
            ,dataIndex : "volume"
            }
            ]  
        ,sm: new GeoExt.grid.FeatureSelectionModel()       
    });
    
    var grid = new Ext.Panel({
        title   : 'Donn&eacute;es (pour ouvrir cliquer ici)'
        ,layout :'fit'
        ,items  : [gridPanel]
    });
     
   
   
  2010.events.on({
            featureselected: function(e) {      
            if(typeof(popup) != "undefined"){
                popup.destroy();
            }
            var content = "<b>Ann&eacute;e :"+e.feature.attributes.annee+"</b><br /> Type : "+e.feature.attributes.type+"</b><br /> Volume prélèvé : "+e.feature.attributes.volume+" m&sup3;"; 
            var tab = new Ext.TabPanel({
            activeTab : 0
                ,frame: true

                ,border:false
                ,items: [{
                       title: 'Descriptif'
                       ,html: content
                     },{
                     title: 'Coordonn&eacute;es',
                     html:"nom"

}]

             });
    2009.events.on({
            featureselected: function(e) {      
            if(typeof(popup) != "undefined"){
                popup.destroy();
            }
            var content = "<b>Ann&eacute;e :"+e.feature.attributes.annee+"</b><br /> Type : "+e.feature.attributes.type+"</b><br /> Volume prélèvé : "+e.feature.attributes.volume+" m&sup3;"; 
            var tab = new Ext.TabPanel({
            activeTab : 0
                ,frame: true

                ,border:false
                ,items: [{
                       title: 'Descriptif'
                       ,html: content
                     },{
                     title: 'Coordonn&eacute;es',
                     html:"nom"

}]

             });
            popup = new GeoExt.Popup({
                feature    : e.feature
                ,closable   : true
                ,unpinnable : false
                ,collapse   : false
                ,collapsible: false
                ,resizable : false
                ,width      : 250
                ,height     : 150
                ,anchored   : true               
                ,layout : 'fit'
                ,items: [ tab ]

            });        
            popup.show();
        }
    });
        var accordion = new Ext.Panel({
        margins : '5 0 5 5'
        ,split  : true
        ,width  : 150
        ,layout :'accordion'
        ,items  : [layerTree, grid]
    });  
    
   

        //Data Panel
    var dataPanel = new Ext.Panel({  
        title   : 'Legende & couche'      
        ,region : 'west'
        ,layout : 'fit'
        ,width  : 200   
        ,items  : [accordion]
    });  
    
    
           
          //Final User Interface
    new Ext.Viewport({
        layout: "border"
        ,items: [ mapPanel,dataPanel]
    }); 
    
});


</script>
</head>
<body>
<div id="map">
</div>
</body>
</html>

Merci

Dernière modification par geobrie (Thu 02 December 2010 00:17)

Hors ligne

 

Pied de page des forums

Powered by FluxBB