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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 07 February 2011 16:52

opac
Juste Inscrit !
Date d'inscription: 11 Oct 2010
Messages: 2

pbl GetCapabilities

Bonjour à vous,
voila je cherche à récupérer automatiquement les couches WMS sur un serveur pour les utiliser dans un environnement sous Openlayers et GeoExt.
Je passe pour cela par un "arbre", cela fonctionne si je sauvegarde "à la main" le résultat de la requête GetCapabilities, et que je donne le chemin d'accès à ce fichier dans mon script, mais j'aimerais:
      soit m'affranchir de créer ce fichier wms.xml,
      soit le créer automatiquement dans mon script.

une idée?? je desespère!

merci, Oliv


je vous mets le code:


Code:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html debug="true">
<head>    


    <link rel="stylesheet" type="text/css" href="./ext-3.3.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="./ext-carto.css"></link>   //  pour generer les boutons zoom, etc...
    <script type="text/javascript" src="./ext-3.3.1/adapter/ext/ext-base.js"></script>
    <script type="text/javascript" src="./ext-3.3.1/ext-all.js"></script>
    <script type="text/javascript" src="./OpenLayers-2.10/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();                //nécessaire pour initialiser les infobulles d’erreur
var tree, mapPanel;
Ext.onReady(function() {        

    var root = new Ext.tree.AsyncTreeNode({
        text: 'GeoServer WMS',
        loader: new GeoExt.tree.WMSCapabilitiesLoader({
            url: "./wms.xml",
            layerOptions: {buffer: 0, singleTile: true, ratio: 1},
            layerParams: {'TRANSPARENT': 'TRUE'},
            // customize the createNode method to add a checkbox to nodes
            createNode: function(attr) {
                attr.checked = attr.leaf ? false : undefined;
                return GeoExt.tree.WMSCapabilitiesLoader.prototype.createNode.apply(this, [attr]);
            }
        })
    });

// Tree Layer
    tree = new Ext.tree.TreePanel({
        root: root,
        title: 'Legend & Data',
        region: 'west',
        width: 250,
        autoScroll: true,
        listeners: {
            // Add layers to the map when ckecked, remove when unchecked.
            // Note that this does not take care of maintaining the layer
            // order on the map.
            'checkchange': function(node, checked) { 
                if (checked === true) {
                    mapPanel.map.addLayer(node.attributes.layer); 
                } else {
                    mapPanel.map.removeLayer(node.attributes.layer);
                }
            }
        }
    });


// Barre de Zoom 
    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
    mapPanel = new GeoExt.MapPanel({
        map: {
            controls: [new OpenLayers.Control.Navigation(),
                       new OpenLayers.Control.PanPanel(),
                       new OpenLayers.Control.ZoomPanel(),
                       new OpenLayers.Control.MouseDefaults(),
                       new OpenLayers.Control.MousePosition({ div: document.getElementById('mapMousePosition'), numdigits: 5 }),    
                       new OpenLayers.Control.Scale('mapScale'),
                       new OpenLayers.Control.ScaleLine()
                      ]
            },
        region : 'center',
        title : 'map',
        layers: [
            new OpenLayers.Layer.WMS("monde", "http://localhost:8080/geoserver/wms",
                    {layers: 'oliv:gboundaries',
                     styles: ''},
                     {buffer: 0}
                )],
        extent: [-20, 10, 20, 50],
        items  : [zSlider]
    });
    
    
// Data Panel
//    var dataPanel = new Ext.Panel({        
//        region : 'west',
//        title : 'test',
//       layout : 'fit',
//        width : 250,
//        items  : [accordion]        
//    });   
     
// fonction
//    var accordion = new Ext.Panel({
//        margins : '5 0 5 5',
//        split  : true,
//        width  : 250,
//        layout :'accordion',
//        items  : [tree, dataPanel]   //, grid]
//    });  
    

// [6] - Final User Interface  -- L'objet ViewPort, que nous utilisons dans l'exemple ci-dessous, à la particularité de prendre automatiquement tout l'espace disponible. C'est à l'intérieur de celui-ci que nous allons construire les différents éléments de notre application. Pour cela nous spécifions que la propriété layout de l'objet Viewport est de type border. Cela signifie que son espace interne sera divisé en 5 zones (north, east, south, west et center). La zone "center" prenant automatiquement tout le reste d'espace disponible en fonction des dimensions des autres panels.
    new Ext.Viewport({
        layout: "fit",
         items: {
            layout: "border",
            deferredRender: false,
            items: [mapPanel, tree, {
                contentEl: "desc",             // on peut y mettre du texte!!
                region: "east",
                bodyStyle: {"padding": "5px"},
                collapsible: true,
                collapseMode: "mini",
                split: true,
                width: 200,
                title: "Description"
            },{
                contentEl: "param",
                region: "south",
                bodyStyle: {"padding": "5px"},
                collapsible: true,
                collapseMode: "mini",
                split: true,
                height: 100,
                title: "DIVERS"
            }]
        }
    });

    
});    //EOF Ext.onReady


 </script>
</head>     
 
  <body onload="init()" >
    <div id="map"></div>
    <div id="scale"></div>
    <div id="mouseposition"></div>
    <div id="desc"></div>
    <div id="param"></div>
  </body>
</html>

Hors ligne

 

#2 Mon 07 February 2011 16:58

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: pbl GetCapabilities

Bonjour,

Je suppose qu'il faut mettre en place un proxy ?

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#3 Mon 07 February 2011 17:22

opac
Juste Inscrit !
Date d'inscription: 11 Oct 2010
Messages: 2

Re: pbl GetCapabilities

oui, j'ai cru comprendre... mais je suis incapable de le faire!!  besoin d'aide détaillé wink

et cela pause t'il des problèmes de sécurité??

Hors ligne

 

Pied de page des forums

Powered by FluxBB