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 2.0.0 entre l'API Géoportail et un GeoServer


Sujet :

IGN API Géoportail

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2014
    Messages : 24
    Points : 11
    Points
    11
    Par défaut WFS 2.0.0 entre l'API Géoportail et un GeoServer
    Bonsoir,
    Je commence à développer une application avec l'API Géoportail et l'interrogation de couches d'un GeoServer. Je n'ai pas de problème en WMS, mais en WFS j'obtiens le message d'erreur "Can't find a WFSCapabilities parser for version 2.0.0". Je suppose que c'est dû au fait que le GeoServer la renvoie avec la version 2.0.0 et que l'API Géoportail ne peut le traiter. Dans l'URL d'appel, j'ai beau préciser la version 1.0.0, ça ne change rien. Avez-vous une idée ? Il y a peut-être un mauvais paramétrage de ma part ? Voilà l'URL de test : http://vegfrance.univ-rennes1.fr/Geoserver/map3.php.
    Merci d'avance de vos retours.
    Cordialement,
    Olivier

  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
    Par défaut Dans le temps ...
    Bonjour voisin,

    Il y avait un exemple avec ce code javascript : http://depot.ign.fr/geoportail/api/r...mples/wfs2.txt

    J'avais une page de test qui fonctionnait : http://mga.alwaysdata.net/geoportail...obretagne.html mais avec les évolutions de GeoBretagne, c'est en vrac !

    Sur la page en erreur, la requête wfs a cette réponse :
    <ows:ExceptionReport xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0.0" xsi:schemaLocation="http://www.opengis.net/ows/1.1 http://osur.univ-rennes1.fr/Geoserver/schemas/ows/1.1.0/owsAll.xsd">
    <ows:Exception exceptionCode="MissingParameterValue" locator="request">
    <ows:ExceptionText>Could not determine geoserver request from http request org.geoserver.platform.AdvancedDispatchFilter$AdvancedDispatchHttpRequest@6353d4</ows:ExceptionText>
    </ows:Exception>
    </ows:ExceptionReport>

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2014
    Messages : 24
    Points : 11
    Points
    11
    Par défaut Merci !
    Je vais regarder tout ça ...

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2014
    Messages : 24
    Points : 11
    Points
    11
    Par défaut Plus de message d'erreur ...
    ... mais ça mouline : la petite icône qui tourne en permanence dans le menu des couches.
    Je vais continuer à tester.
    PS : au fait, pourquoi voisin

  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
    Quand ça mouline, il est bien de faire un tour dans Firebug, onglet réseau, XHR
    et de regarder ce qui se passe.
    Voisin, car j'habite juste à côté de Rennes.

  6. #6
    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,

    si ça peut aider, l'exemple suivant (encore en développement) :

    http://depot.ign.fr/geoportail/api/f...chExt_WFS.html

    permet de se connecter au service WFS 2.0.0 de la plateforme Géoportail avec le code 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
    31
    32
    33
    34
    35
    36
    37
    38
    ...
          iv.addLayer(
                        //layerOpts
                        {
                            //type        
                            type:'WFS',
                            //name
                            name:'Parcelle sélectionnée',
                            //url
                            url:'http://wxs.ign.fr/'+[config.keyJsWFSParcels]+'/geoportail/wfs?',
                            //params        
                            params:{
                                typename:'parcelle',
                                version: '2.0.0'
                            },
                            //options
                            options:{
                                protocolOptions:{
                                    featurePrefix:'BDPARCELLAIRE-VECTEUR_WLD_BDD_WGS84G',
                                    featureNS:'http://wxs.ign.fr/datastore/BDPARCELLAIRE-VECTEUR_WLD_BDD_WGS84G',
                                    geometryName:'the_geom'
                                },
                                projection:'EPSG:2154',
                                styleMap: new OpenLayers.StyleMap({
                                    pointRadius: 4,
                                    strokeColor: "orange",
                                    strokeWidth: 3,
                                    strokeOpacity: 0.7,
                                    fillOpacity: 0.5,
                                    fillColor: "orange"
                                }),
                                visibility: true,
                                displayInLayerSwitcher:true  
                            }
                        }
                    );
    ...
    où iv est une instance de la classe InterfaceViewer retournée par la fonction Geoportal.load

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2014
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Merci beaucoup du retour ... je vais tester dès que j'ai un moment mais c'est un peu chaud cette fin de semaine !

  8. #8
    Membre confirmé Avatar de lboulanger
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2014
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2014
    Messages : 262
    Points : 529
    Points
    529
    Par défaut
    Bonsoir,

    En effet, pour ajouter la couche, l'API va chercher à faire une requête de type GetCapabilities, pour récupérer les options qui n'ont pas été renseignées (notamment les protocolOptions, comme le prefixe (featurePrefix), le namespace (featureNS) ou encore le nom de la géométrie (geometryName)). Il semblerait que quelque chose lui manque en effet pour effectuer cette requête.

    On peut contourner ce problème en récupérant "à la main" ces informations :
    - avec un GetCapabilities pour avoir le nom de la couche (http://osur.univ-rennes1.fr/geoserve...etCapabilities)
    - puis avec un DescribeFeatureType pour connaître ses informations (http://osur.univ-rennes1.fr/geoserve...fectures_wgs84)

    Il faudrait de plus simplifier l'URL (l'URL complète se construira automatiquement), et changer le typename, qui n'est plus topp:prefectures_wgs84 mais simplement prefectures_wgs84 (sans le préfixe).

    Pour votre requête WFS, il faudrait alors quelque chose comme :

    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
    var prefectures= viewer.getMap().addLayer(
        "WFS",
        "Préfectures2",
        "http://osur.univ-rennes1.fr/geoserver/wfs?",
        {
            typename:'prefectures_wgs84',
        },
       {
          protocolOptions:{
            featurePrefix:'topp',
            featureNS:'http://www.openplans.org/topp',
            geometryName:'the_geom'
          },
          projection:"EPSG:4326",
          "originators":[{
              "logo":"Territ'Eau",
              "pictureUrl":"http://agro-transfert-bretagne.univ-rennes1.fr/Territ_Eau/Images_et_sons/Logo_AgroTransfert.jpg",
              "url":"http://agro-transfert-bretagne.univ-rennes1.fr/Territ_eau/",
              //"attribution":"Circuit distribué par TouriLoire"}],
              "visibility":true,
              "hover":true
            }],
            styleMap:rwbodyStyle,
        visibility:true
        }
    );
    bon courage !

    Laurane

  9. #9
    Membre confirmé Avatar de lboulanger
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2014
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2014
    Messages : 262
    Points : 529
    Points
    529
    Par défaut Compléter les informations de la couche
    Bonjour,

    En effet, pour ajouter la couche WFS, OpenLayers cherche à effectuer une requête de type GetCapabilities pour récupérer les informations qui ne lui ont pas été renseignées. Notamment, les protocolOptions (featurePrefix, featureNS, geometryName). Mais il semblerait qu'il n'arrive pas à effectuer correctement cette requête.

    Le problème peut être contourné, en récupérant ces paramètres "à la main" :
    - avec un GetCapabilities sur le service WFS, pour récupérer le nom de la couche (http://osur.univ-rennes1.fr/geoserve...etCapabilities)
    - puis un DescribeFeatureType pour connaître ses informations (http://osur.univ-rennes1.fr/geoserve...fectures_wgs84).
    On a alors url = "http://osur.univ-rennes1.fr/geoserver/wfs?", typeName = "prefectures_wgs84", featurePrefix = "topp", featureNS = "http://www.openplans.org/topp", et geometryName = "the_geom".

    Par rapport à votre requête, il faudrait donc modifier l'url ainsi que le nom de la couche "typeName", et ajouter les autres paramètres.

    La syntaxe suivante devrait donc vous permettre d'ajouter votre couche WFS :

    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
    var prefectures= viewer.getMap().addLayer(
        "WFS",
        "Préfectures2",
        "http://osur.univ-rennes1.fr/geoserver/wfs?",
        {
            typename:'prefectures_wgs84',
        },
       {
          protocolOptions:{
            featurePrefix:'topp',
            featureNS:'http://www.openplans.org/topp',
            geometryName:'the_geom'
          },
          projection:"EPSG:4326",
          "originators":[{
              "logo":"Territ'Eau",
              "pictureUrl":"http://agro-transfert-bretagne.univ-rennes1.fr/Territ_Eau/Images_et_sons/Logo_AgroTransfert.jpg",
              "url":"http://agro-transfert-bretagne.univ-rennes1.fr/Territ_eau/",
              //"attribution":"Circuit distribué par TouriLoire"}],
              "visibility":true,
              "hover":true
            }],
            styleMap:rwbodyStyle,
        visibility:true
        }
    );
    J'espère que cela pourra vous aider !

    Laurane

  10. #10
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2014
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Bonjour,
    Merci à tous les deux.
    Sur la base proposé par Gilles, j'ai progressé un peu dans le sens où il n'y a plus de messages d'erreur ... mais rien ne s'affiche. Aussi, je pense qu'un des paramètres définis n'est pas correct : autant j'ai pu trouver des infos sur featureType et featurePrefix, je n'ai rien pour featureNS. A quoi cette URL correspond-elle ?
    Et sinon, mga_geo (désolé, je ne connais pas ton prénom), le lien de carte que tu as posté renvoie à un endroit très proche d'où j'habite : on est peut-être encore plus voisin qu'on ne l'imagine !
    Bonne fin d'après-midi.
    Olivier

  11. #11
    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
    Bonsoir,

    Une url pour voir ce qui se passe ?

    Je n'habite pas du côté de Gahard, c'est juste une des réserves de mon asso préférée (Bretagne Vivante).
    Je suis sur Cesson.

    Marc

  12. #12
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2014
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Bonsoir,
    http://vegfrance.univ-rennes1.fr/Geoserver/map6.php
    Je travaille sur Beaulieu, donc pas loin de Cesson ...
    Bonne soirée.
    Olivier

  13. #13
    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
    J'arrive à ceci : http://mga.alwaysdata.net/geoportail...wfs2_osur.html
    Le passage en jsonp évite d'utilisation d'un proxy.
    J'ai l'impression que l'encodage de la réponse n'est pas bon, je ne visualise pas correctement les accents.

  14. #14
    Membre confirmé Avatar de lboulanger
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2014
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2014
    Messages : 262
    Points : 529
    Points
    529
    Par défaut FeatureNS
    Bonjour,

    Olivier, il me semble que vous y êtes presque !
    Pour récupérer le namespace (FeatureNS), une requête de type DescribeFeatureType suffit sur la couche que vous voulez afficher : http://osur.univ-rennes1.fr/geoserve...fectures_wgs84. On peut alors trouver la valeur du FeatureNS : "http://www.openplans.org/topp". Cela devrait marcher avec cette nouvelle valeur.

    Bon courage !

    Laurane

  15. #15
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2014
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Merci Laurane et Marc ... mais toujours pas.
    Quand j'essaye d'appliquer le code de Marc (http://vegfrance.univ-rennes1.fr/Geoserver/map3.php), ça mouline en permanence et je n'ai rien dans les traces réseau XHR. Par contre, la console me dit qu'il y a une erreur java sur http://osur.univ-rennes1.fr/geoserve...istry.regId2:1 alors que l'URL aboutit bien (?).
    En modifiant le featureNS pour http://vegfrance.univ-rennes1.fr/Geoserver/map6.php, rien ne change mais dans les traces, je constate que la méthode pour interroger le wfs apparait avec l'intitulé 'options'. Par contre, dans l'exemple fonctionnel de Gilles, c'est une requête en 'post' via un proxy.
    Je vais continuer à chercher.
    Olivier

  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
    Je confirme l'encodage n'est pas bon.
    Une requête avec ogr2ogr le confime :
    <?xml version="1.0" encoding="utf-8" ?>
    <kml xmlns="http://www.opengis.net/kml/2.2">
    <Document><Folder><name>topp_prefectures_wgs84</name>
    <Placemark>
    <ExtendedData><SchemaData schemaUrl="#topp_prefectures_wgs84">
    <SimpleData name="gml_id">prefectures_wgs84.1</SimpleData>
    <SimpleData name="ID_RTE500">8107</SimpleData>
    <SimpleData name="NOM_COMM">LANNION</SimpleData>
    <SimpleData name="INSEE_COMM">22113</SimpleData>
    <SimpleData name="POPULATION">18.4</SimpleData>
    <SimpleData name="SUPERFICIE">4799</SimpleData>
    <SimpleData name="STATUT">Sous-prÚfecture</SimpleData>
    <SimpleData name="ID_ND_RTE">43271</SimpleData>
    </SchemaData></ExtendedData>
    <Point><coordinates>-3.454766132843356,48.732657592238361</coordinates></Point>
    </Placemark>

  17. #17
    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
    Citation Envoyé par otroccaz Voir le message
    En modifiant le featureNS pour http://vegfrance.univ-rennes1.fr/Geoserver/map6.php, rien ne change mais dans les traces, je constate que la méthode pour interroger le wfs apparait avec l'intitulé 'options'. Par contre, dans l'exemple fonctionnel de Gilles, c'est une requête en 'post' via un proxy.

    Olivier,

    sur ta page, la requête ne passe pas par le proxy que tu lui indiques via le paramètre "proxyURL". Sans doute parce que la bonne syntaxe du paramètre est "proxyUrl" (cf. l'exemple cité : http://depot.ign.fr/geoportail/api/f...chExt_WFS.html) ...

    Gilles

  18. #18
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2014
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Marc, c'est vrai que ce sont de vieux fichiers et, à priori, je l'ai converti en UTF-8.
    Gilles, ça va beaucoup mieux comme ça !!! Un peu fou quand même ...
    Bref, maintenant, j'ai bien une requête en post via le proxy, mais toujours rien sur la carte.

  19. #19
    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
    Ben non, le codage est toujours déficient. C'est ce qui entraine l'erreur d'analyse xml.

  20. #20
    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
    Toujours une erreur au niveau xml, alors que le fichier est valide, plus d'accent !

    Je valide le contenu de la réponse sur http://validator.w3.org/check

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Bienvenue sur le forum IGN API Géoportail
    Par achaumet dans le forum IGN API Géoportail
    Réponses: 3
    Dernier message: 21/09/2021, 17h52
  2. Réponses: 13
    Dernier message: 06/06/2010, 17h38
  3. Problème de choix entre des API SNMP
    Par 01211983 dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 29/03/2009, 14h10
  4. Entre L'api Win32 et SDL mon coeur balance
    Par mechouille dans le forum API graphiques
    Réponses: 16
    Dernier message: 13/12/2006, 17h01
  5. Réponses: 5
    Dernier message: 15/02/2006, 18h16

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