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 :

WFS pour débutants bis


Sujet :

IGN API Géoportail

  1. #1
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut WFS pour débutants bis
    Sur ma lancée du wms, je regarde le wfs...

    Le getcapabilities est celui là

    Ma page d'essai est celle-là

    En appliquant ce tuto IGN

    J'introduis ma couche de cette manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	var ddt = viewer.getMap().addLayer(
            "WFS",
            'DDT43 WFS',
    		'http://carto.test.prodige-auvergne.fr/cgi-bin/mapserv?',
        {
                typename:'LesCartesCommunalesApprouveese'
            },
            {projection:'EPSG:4326',// ou avec mention 'EPSG:2154',
    		  styleMap:ddtStyle,
    			visibility : true
                    }
     	);
    Erreur!
    De suite, je bidouille les projections!
    J'ai bien enregistré que les projections compatibles avec l'API en mode wms sont EPSG:3857 ou 4326.
    Mais qu'en est-il pour le wfs? Même obligation?
    Or sur le getcapabilities je ne vois que des SRS en EPSG:2154 (pas de SRS global différent, il me semble?)...
    Conclusion: demander à ce que EPSG:3857 ou 4326 soient intégrés?
    Sinon l'erreur provient d'ailleurs?

    MercIG(illes)N

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 130
    Points : 1 765
    Points
    1 765

  3. #3
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Merci Marc.
    J'ai bien travaillé sur ta proposition, mais j'avais toujours une erreur ... Petit à petit en remontant le fil, je viens de découvrir qu'avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="http://depot.ign.fr/geoportail/api/develop/geoportail/api/js/2.1.0-SNAPSHOT/GeoportalExtended.js"></script>
    une erreur se produit.
    Par contre avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="http://api.ign.fr/geoportail/api/js/latest/GeoportalExtended.js"></script>
    , je me connecte bien, même si le message en copie apparait.

    Qu'en pensez?
    Images attachées Images attachées  

  4. #4
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    En me référant à cette page mapserver sur les filtres, il me semble qu'il est possible de mettre en oeuvre des filtres au chargement wfs...

    Dans le cas de l'api, comment les mettre en oeuvre?
    Par exemple, dans le cas 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
    		var ddt = viewer.getMap().addLayer(
            "WFS",
            'DDT43 WFS',
    		'http://carto.test.prodige-auvergne.fr/cgi-bin/mapserv?',
        {
                typename:'LesCartesCommunalesApprouveese'
            },
        {
          protocolOptions:{
            featureNS:'http://mapserver.gis.umn.edu/mapserver',
            version: "1.1.0"
          },
    
            projection:'EPSG:2154',//4326',
    		units:'meters',
          minZoomLevel:10,
          maxZoomLevel:20,
    		  styleMap:ddtStyle,
    			visibility : true,
          hover:true
    
                    }
     	);
    Comment ne charger que les polygons attachés à un code insee spécifique comme : <ms:insee>43130</ms:insee>

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 130
    Points : 1 765
    Points
    1 765
    Par défaut
    Mon essai de filtrage laisse le serveur de marbre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      wfsFilter = new OpenLayers.Filter.Logical({
        type: OpenLayers.Filter.Logical.AND,
        filters: [
            new OpenLayers.Filter.Comparison({
                type: OpenLayers.Filter.Comparison.EQUAL_TO,
                property: "ms:insee",
                value: "43130"
            })
        ]
      });

  6. #6
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    @mga_geo:
    Suivant ton expérience, le serveur devrait répondre à ta requête wfsFilter?
    S'il ne répond pas, c'est peut-être que le paramétrage de ce serveur n'autorise pas ce genre de requête? Et qu'il faudrait interroger le gestionnaire du site WFS sur les possibilités de filtrer?
    Ou penses-tu plutôt que le problème est au niveau du codage OL/API?

    Sinon, j'ai trouvé ce lien qui semble traité de la question, mais je ne comprends pas tout...

    Ma nouvelle page d'essai avec le filtre qui ne filtre rien du tout!

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 130
    Points : 1 765
    Points
    1 765
    Par défaut
    Ton filtre n'est pas pris en compte au niveau javascript : cf le contenu du POST envoyé.

    Sur http://mga.alwaysdata.net/geoportail..._auvergne.html le POST contient bien un filtre mais il n'est pas pris en compte.

    Je viens d'essayer sur geobretagne mais le serveur étant en wfs 2.0.0, OpenLayers n'en veut pas !

    J'ai essayé en ligne de commandes, mais je n'arrive pas à filtrer une seule "feature".

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 130
    Points : 1 765
    Points
    1 765
    Par défaut
    Et il doit y avoir des problèmes de configuration sur le wfs auvergne pour le champ insee : numérique ou texte ? enfin c'est ce que laisse figurer un message postgis.

    Après j'ai un message
    <gml:boundedBy>
    <gml:null>missing</gml:null>
    </gml:boundedBy>

  9. #9
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Merci Marc,
    Impossible de te répondre correctement car pour ma part je suis un peu perdu dans ce nouveau domaine... J'en suis toujours en phase d'apprentissage.
    J'attends éventuellement un retour (confirmation ou autres) de Gilles pour reprendre contact en expert avec DDT43-Prodige Auvergne...
    Pour l'instant, je suis trop incertain pour débattre sur ce sujet...

  10. #10
    Membre chevronné Avatar de gcebelieu
    Homme Profil pro
    Ingénieur Géographe et Cartographe
    Inscrit en
    Novembre 2010
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Géographe et Cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2010
    Messages : 1 106
    Points : 1 843
    Points
    1 843
    Par défaut
    Bonjour Christian et félicitation pour ton nouvel avatar

    Pour le WFS, je rejoins Marc :

    1. pour rajouter des filtres aux requêtes WFS, la méthode à utiliser est plutôt la sienne (para mètre "filter" dans les paramètres de la couche). En témoigne aussi l'exemple de OpenLayers :

    http://openlayers.org/dev/examples/wfs-filter.html

    2. En ce qui concerne le WFS de la DDT43. Il semble effectivement qu'il y ait un problème sur le filtrage. En effet, les capabilities du service annoncent bien qu'il sait gérer les filtres utilisés (cf. ci-dessous), mais effectivement, les filtres passés dans les requêtes ne sont pas pris en compte. Il faudrait éventuellement tester sur un autre serveur WFS pour voir si c'est un problème de syntaxe du filtre ou de service.
    Par exemple avec le service utilisé par l'exemple WFS du site api.ign.fr (WFS 1.0.0) :

    http://services.sandre.eaufrance.fr/geo/mdo_FXX?

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <ogc:Filter_Capabilities>
    <ogc:Spatial_Capabilities>
    <ogc:GeometryOperands>
    <ogc:GeometryOperand>gml:Point</ogc:GeometryOperand>
    <ogc:GeometryOperand>gml:LineString</ogc:GeometryOperand>
    <ogc:GeometryOperand>gml:Polygon</ogc:GeometryOperand>
    <ogc:GeometryOperand>gml:Envelope</ogc:GeometryOperand>
    </ogc:GeometryOperands>
    <ogc:SpatialOperators>
    <ogc:SpatialOperator name="Equals"/>
    <ogc:SpatialOperator name="Disjoint"/>
    <ogc:SpatialOperator name="Touches"/>
    <ogc:SpatialOperator name="Within"/>
    <ogc:SpatialOperator name="Overlaps"/>
    <ogc:SpatialOperator name="Crosses"/>
    <ogc:SpatialOperator name="Intersects"/>
    <ogc:SpatialOperator name="Contains"/>
    <ogc:SpatialOperator name="DWithin"/>
    <ogc:SpatialOperator name="Beyond"/>
    <ogc:SpatialOperator name="BBOX"/>
    </ogc:SpatialOperators>
    </ogc:Spatial_Capabilities>
    <ogc:Scalar_Capabilities>
    <ogc:LogicalOperators/>
    <ogc:ComparisonOperators><ogc:ComparisonOperator>LessThan</ogc:ComparisonOperator>
    <ogc:ComparisonOperator>GreaterThan</ogc:ComparisonOperator>
    <ogc:ComparisonOperator>LessThanEqualTo</ogc:ComparisonOperator>
    <ogc:ComparisonOperator>GreaterThanEqualTo</ogc:ComparisonOperator>
    <ogc:ComparisonOperator>EqualTo</ogc:ComparisonOperator>
    <ogc:ComparisonOperator>NotEqualTo</ogc:ComparisonOperator>
    <ogc:ComparisonOperator>Like</ogc:ComparisonOperator>
    <ogc:ComparisonOperator>Between</ogc:ComparisonOperator>
    </ogc:ComparisonOperators>
    </ogc:Scalar_Capabilities>
    <ogc:Id_Capabilities>
    <ogc:FID/>
    </ogc:Id_Capabilities>
    </ogc:Filter_Capabilities>

  11. #11
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Dans un certain brouillard...

    Sur 1: OK, mais j'avais pris comme exemple http://krefft.org/test/ol/wfs_filter.htm que je n'ai pas su mettre en oeuvre!

    Sur 2:
    Par exemple avec le service utilisé par l'exemple WFS du site api.ign.fr (WFS 1.0.0) : http://services.sandre.eaufrance.fr/geo/mdo_FXX?
    ????
    C'est-à-dire?
    Il me faut du temps pour comprendre!

  12. #12
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 130
    Points : 1 765
    Points
    1 765
    Par défaut Idem avec Sandre
    Sur http://mga.alwaysdata.net/geoportail...eaufrance.html le filtrage ne fonctionne pas !

  13. #13
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Je ne vais pas répondre à Marc sur Sandre , mais sur mon problème Prodige...

    Voici la réponse de Prodige à mes interrogations :
    Le chargement de la couche wfs (wfsLayer = viewer.getMap().addLayer) fait appel au serveur wms dans le bout de code, cela ne peut pas fonctionner,
    Il convient de remplacer
    http://carto.test.prodige-auvergne.fr/cgi-bin/mapserv? par http://carto.test.prodige-auvergne.f...in/mapservwfs?
    Ce qui est pour le moins étonnant, puisqu'avec http://carto.test.prodige-auvergne.fr/cgi-bin/mapserv? on chargeait bien la couche wfs avec l'ensemble de ses caractéristiques. Non? Il n'y avait que le filtrage qui nous posait problème?

    Passons sur ces considérations.
    Je me suis empressé de faire le changement dans ma page d'essai >>> Ce qui amène une erreur dans GeoportalExtended.js

  14. #14
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 130
    Points : 1 765
    Points
    1 765
    Par défaut
    Effectivement sur la nouvelle url, le GetCapabilities se termine abruptement:
    <FeatureTypeList>
    <Operations>
    <Operation>Query</Operation>
    </Operations>
    <FeatureType>
    <Name>Geolocalisationdesstockagesdeg</Name>
    <Title>G
    Sinon je n'arrive pas à faire fonctionner un exemple en wfs 2 sur geobretagne
    http://mga.alwaysdata.net/geoportail...obretagne.html
    Le filtrage fonctionne bien par contre sur geobretagne en mode ligne de commandes.

  15. #15
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Marc,
    quand tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://carto.test.prodige-auvergne.fr/cgi-bin/mapservwfs?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetCapabilities
    , tu as bien l'erreur que tu mentionnes.
    Mais en version 1.0.0 (version du wfs de Prodige), le getcapabilities semble correct. Non?

    Cependant, je n'arrive pas à mentionner cette version dans le chargement de la couche au niveau de l'API.....

  16. #16
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 130
    Points : 1 765
    Points
    1 765
    Par défaut
    Le serveur Prodige DOIT savoir répondre à GetCapabilities sans version!

    La requête d'OpenLayers est donc normale.

    Tu peux tricher en ajoutant VERSION=.... dans l'url mais le serveur finit par répondre avec une image de format png comme en wms !

  17. #17
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Sur la page documentation technique http://api.ign.fr/documentation-technique-api >>>Ajout de couches vecteur

    Dans le cas de données OSM volumineuses, il est conseillé de se tourner vers l'API OSM ou une combinaison de WMS/API OSM.

    Ajout d'une couche WFS

    Exemples d'utilisation:

    Exemple d'ajout d'une couche WFS sans loader / avec loader.

    La capture d'écran ci-dessous repose sur le fragment de code suivant.
    Est-ce que l'URL du lien "avec loader" est-il le bon? Ce serait plutot un exemple de chargement kml. Non?

  18. #18
    Membre chevronné Avatar de gcebelieu
    Homme Profil pro
    Ingénieur Géographe et Cartographe
    Inscrit en
    Novembre 2010
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Géographe et Cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2010
    Messages : 1 106
    Points : 1 843
    Points
    1 843
    Par défaut
    En effet, c'est une erreur. L'exemple WFS avec le loader est le suivant :

    http://api.ign.fr/tech-docs-js/examp...p_simple9.html

    ce sera corrigé dans la doc avec la nouvelle version.

  19. #19
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Et cet exemple est en état de fonctionnement?
    J'ai quelques erreurs firebug. Et/ou je ne comprends pas bien ses objectifs????

  20. #20
    Membre averti
    Femme Profil pro
    Consultante SIG
    Inscrit en
    Mars 2011
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultante SIG

    Informations forums :
    Inscription : Mars 2011
    Messages : 233
    Points : 356
    Points
    356
    Par défaut
    Bonjour,

    L'exemple http://api.ign.fr/tech-docs-js/examp...p_simple8.html refonctionne, il y avait souci au niveau du service.
    Sinon, l'exemple simple qui charge une couche WFS en utilisant le loader est celui-ci:http://api.ign.fr/tech-docs-js/examp...p_simple8.html

Discussions similaires

  1. WFS pour les débutants
    Par cmail dans le forum IGN API Géoportail
    Réponses: 9
    Dernier message: 16/09/2013, 10h36
  2. Réponses: 2
    Dernier message: 17/10/2005, 23h16
  3. aide petit programme pour débutant
    Par kartp0rqx dans le forum C
    Réponses: 16
    Dernier message: 14/10/2005, 20h31
  4. Aide pour débutant : addition
    Par playentry dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/03/2005, 20h08

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