#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
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é
et cela pause t'il des problèmes de sécurité??
Hors ligne