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 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

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

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

 

Pied de page des forums

Powered by FluxBB