#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
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é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ée :"+e.feature.attributes.annee+"</b><br /> Type : "+e.feature.attributes.type+"</b><br /> Volume prélèvé : "+e.feature.attributes.volume+" m³"; var tab = new Ext.TabPanel({ activeTab : 0 ,frame: true ,border:false ,items: [{ title: 'Descriptif' ,html: content },{ title: 'Coordonnées', html:"nom" }] }); 2009.events.on({ featureselected: function(e) { if(typeof(popup) != "undefined"){ popup.destroy(); } var content = "<b>Année :"+e.feature.attributes.annee+"</b><br /> Type : "+e.feature.attributes.type+"</b><br /> Volume prélèvé : "+e.feature.attributes.volume+" m³"; var tab = new Ext.TabPanel({ activeTab : 0 ,frame: true ,border:false ,items: [{ title: 'Descriptif' ,html: content },{ title: 'Coordonné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