#1 Fri 24 July 2009 15:45
- tiolebucheron
- Participant actif
- Lieu: Rouen
- Date d'inscription: 26 Mar 2006
- Messages: 147
[OL] Affichage de nombreuses couches WFS
Bonjour
Voici la situation
Je suis sur deux régions administratives, il faut que j'affiche les couches environnementales de CARMEN pour les deux régions (15 couches WFS x2).
Il faut que je puisse interroger ces couches.
Comment procéderiez vous?
Séparer les deux régions?
Fusion les couches par thématique (par exemple afficher la couche Znieff HN et BN en même temps)?
Seuil de zoom.
Affichage en fonction de l'extend?
Il y a beaucoup de choses qui me viennent mais je me pose peut être pas les bonnes questions.
Merci pour vos conseils.
Tio
Hors ligne
#2 Fri 24 July 2009 15:54
Re: [OL] Affichage de nombreuses couches WFS
Bonjour,
Si tu veux optimiser la navigation et ne pas attendre trop longtemps ou faire planter ton navigateur, il vaut mieux charger une seule couche vecteur (provenant d'un WFS dans ton cas).
En fonction du fournisseur du service, tu peux passer par une couche WMS et l'interroger par le nouveau contrôle WMSGetInfo (j'ai un trou de mémoire sur le nom du contrôle).
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 Fri 24 July 2009 16:26
- tiolebucheron
- Participant actif
- Lieu: Rouen
- Date d'inscription: 26 Mar 2006
- Messages: 147
Re: [OL] Affichage de nombreuses couches WFS
La vitesse d'exécution est meilleur avec le WMS ?
Une autre question pour interroger la première couche que j'avais afficher pour les test j'utilise getFullRequestString. Cette méthode est elle opérationnelle quand il y a plusieurs couches d'afficher?
Faut-il mieux exécuter un bouton I (comme sur cartoweb)?
Merci pour vos conseils.
Tio
Hors ligne
#4 Wed 29 July 2009 14:47
- tiolebucheron
- Participant actif
- Lieu: Rouen
- Date d'inscription: 26 Mar 2006
- Messages: 147
Re: [OL] Affichage de nombreuses couches WFS
Bonjour
J'ai commencé à explorer les possibilités de WMSGetFeatureInfo
J'ai commencé à tester pour une couche. Comme je avoir plusieurs serveurs wms je ne pourrait pas faire une boucle simple pour charger l'évènement click.
Le code ne fonctionne pas. L'évènement n'est pas déclenché au click. Avez-vous une idée?
Merci de votre aide
Tio
Extrait du chargement de la couche
Code:
OpenLayers.ProxyHost = "http://" + serveur + "/cgi-bin/proxy.cgi?url="; var ccznieff2HNWFS = new OpenLayers.Layer.WFS( "HN_ZNIEFF2","http://carto.ecologie.gouv.fr/MEDD/wms.php?service_idx=17W&map=serveurWMS.map&", {typename: 'znieff_II'}, {isBaseLayer: false, projection:"EPSG:27582", reproject: false}); ccznieff2HNWFS.setVisibility(false); map.addLayer(ccznieff2HNWFS); infoControls = { click: new OpenLayers.Control.WMSGetFeatureInfo({ url: 'http://carto.ecologie.gouv.fr/MEDD/wms.php?service_idx=17W&map=serveurWMS.map&', title: 'Identify features by clicking', layers: [ccznieff2HNWFS], queryVisible: true }) }; infoControls['click'].events.register("getfeatureinfo", this, showInfo); map.addControl(infoControls['click']);
Fonction showInfo
Code:
function showInfo(evt) { $('responseText').innerHTML = evt.text; };
EDIT:
J'ai trouvé bcp d'erreur dans mon code. Dsl d'avoir posté précipitamment
Code:
OpenLayers.ProxyHost = "http://" + serveur + "/cgi-bin/proxy.cgi?url="; var ccznieff2HNWFS = new OpenLayers.Layer.WMS("HN_ZNIEFF2", "http://carto.ecologie.gouv.fr/MEDD/wms.php?service_idx=17W&map=serveurWMS.map&", {layers: 'znieff_II', format: 'image/gif'}, {isBaseLayer: true, projection:"EPSG:27582", reproject: false}); ccznieff2HNWFS.setVisibility(false); map.addLayer(ccznieff2HNWFS); // infoControls = { // click: new OpenLayers.Control.WMSGetFeatureInfo({ // url: 'http://carto.ecologie.gouv.fr/MEDD/wms.php?service_idx=17W&map=serveurWMS.map&', // title: 'Identify features by clicking', // layers: [ccznieff2HNWFS], // queryVisible: true // }) // }; // infoControls['click'].events.register("getfeatureinfo", this, showInfo); // map.addControl(infoControls['click']); //Configuration du CLICK sur la couche DGD map.events.register('click', map, function (e) { var url = ccznieff2HNWFS.getFullRequestString({ REQUEST: "GetFeatureInfo", EXCEPTIONS: "application/vnd.ogc.se_xml", BBOX: ccznieff2HNWFS.map.getExtent().toBBOX(), X: e.xy.x, Y: e.xy.y, INFO_FORMAT: 'text/plain', QUERY_LAYERS: ccznieff2HNWFS.params.LAYERS, WIDTH: ccznieff2HNWFS.map.size.w, HEIGHT: ccznieff2HNWFS.map.size.h}); OpenLayers.loadURL(url, '', this, setHTML); OpenLayers.Event.stop(e); }); function setHTML(response) { OpenLayers.Util.getElement('nodeList').innerHTML = response.responseText;};
Les résultat ne sont satisfaisant car il me retourne : GetFeatureInfo results: Layer 'znieff_II' Feature 54:
Je vais poursuivre.....
A bientot
Dernière modification par tiolebucheron (Wed 29 July 2009 15:43)
Hors ligne