IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IGN API Géoportail Discussion :

Version 1.0beta5: couche wfs & Multi-fournisseurs


Sujet :

IGN API Géoportail

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 94
    Points : 55
    Points
    55
    Par défaut Version 1.0beta5: couche wfs & Multi-fournisseurs
    Bonjour,

    Si on ajoute une couche WFS sur l'exemple multi-fournisseurs l'affichage est correcte avec les layers Geoportail mais rien ne s'affiche avec la layer OSM.

    Une idée ?

    (NB pas de soucis en WMS)

  2. #2
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 94
    Points : 55
    Points
    55
    Par défaut
    Bon ben je m'auto-répond.

    En fait la layer (disons "lWFS") est lié a un objet pour le rendu de type 'OpenLayers.Format'. Cet object utilise un paramètre 'internalProjection' pour pouvoir correctement reprojeter le tracé or il reste bloqué sur la projection initiale. Si après avoir changer le provider je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lWFS.formatObject.internalProjection = new OpenLayers.Projection('EPSG:900913');
    (pour OSM) ça marche.

    Bref plus qu'a automatiser

  3. #3
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    J'ai justement donné toutes les informations (enfin, j'espère)

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 94
    Points : 55
    Points
    55
    Par défaut
    Je regarde ça plus sérieusement dans le WE mais ce qui me semble sur c'est que la reprojection seul des features d'une layer Vector ne suffie pas pour une couche WFS. Si vous avez un exemple WFS qui tourne et qui passe bien en passant de Geoportal => OSM je veux bien le voir.

    J'ai automatiser le changement comme dit dans mon précédant message en ajoutant juste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function _switchBL(v) {
     /* (...) code ISO example multi_provider */
     for (var i = 0, len = viewer.getMap().layers.length; i < len; i++) {
       var l = viewer.getMap().layers[i];
       if (l instanceof OpenLayers.Layer.WFS)
         l.formatObject.internalProjection = viewer.getMap().baseLayer.projection.clone();
     }
    }
    Et avec ça les couches WFS fonctionnent sans pb même quand on change de projection en baseLayer.
    Mais c'est pas beau car ça devrait directement être gérer soit au niveau de l'objet Map soit au niveau de l'objet Vector (à voir si il n'y a pas d'effet de bord avec les autres sous-classes de Vector).

    Mais bon sans accès au code source de la beta5 difficile d'opérer au bon endroit

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Citation Envoyé par shama Voir le message
    Mais bon sans accès au code source de la beta5 difficile d'opérer au bon endroit
    Dans cette discussion, tu as tout les éléments.
    J'ai, peut être à tord, considéré qu'il fallait que le serveur WFS supporte la nouvelle projection de la baseLayer...

    Mais, ta soluce est la même que la miennes pour les classes basées sur OpenLayers.Layer.Vector ...

    Je regarderai si, dans le cas où la projection n'est pas supportée côté serveur, on peut rajouter le même comportement que pour les données vecteur (reprojetter dans le client).

    Le mécanisme serait le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
        /**
         * APIMethod: changeBaseLayer
         * Listener of the map's event 'changebaselayer'.
         *      Reproject its maxExtent according to the new
         *      base layer if it is not a base layer itself.
         *
         * Parameters:
         * evt - {Event} the 'changebaselayer' event.
         *
         * Context:
         * layer - {<OpenLayers.Layer>} the new baseLayer
         * baseLayer - {<OpenLayers.Layer>} the old baseLayer
         *
         * Returns:
         * {Boolean} true to keep on, false to stop propagating the event.
         */
        OpenLayers.Layer.WFS.prototype.changeBaseLayer= function(evt) {
            if (OpenLayers.Layer.prototype.changeBaseLayer.apply(this,arguments)===false) {
                return false;
            }
            if (!this.isBaseLayer) {
                var p= this.getCompatibleProjection(evt.layer);
                if (p!=null) {
                    this.projection= p;
                }
                this.setVisibility(false);// insére ton code ici
            }
            return true;
        };

Discussions similaires

  1. Version 1.0beta5: couche wms-c & Multi-fournisseurs
    Par shama dans le forum IGN API Géoportail
    Réponses: 9
    Dernier message: 14/12/2009, 22h47
  2. Version 1.0beta5-2009-11-22: couche wfs
    Par mga_geo dans le forum IGN API Géoportail
    Réponses: 3
    Dernier message: 24/11/2009, 14h28
  3. Version 1.0beta5-2009-11-14: couche wms
    Par mga_geo dans le forum IGN API Géoportail
    Réponses: 4
    Dernier message: 22/11/2009, 11h20
  4. Version 1.0beta5-2009-11-14: couche kml
    Par mga_geo dans le forum IGN API Géoportail
    Réponses: 2
    Dernier message: 22/11/2009, 11h19
  5. pre 1.0beta5: couche wfs
    Par mga_geo dans le forum IGN API Géoportail
    Réponses: 6
    Dernier message: 01/09/2009, 19h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo