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 :

Affichage couche WFS


Sujet :

IGN API Géoportail

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 14
    Points : 3
    Points
    3
    Par défaut Affichage couche WFS
    Bonjour,

    Je viens de commencer à utiliser l'API geoportal mais je bloque sur l'affichage d'une couche WFS. Je n'ai pas d'erreurs javascript et du coup, je me demande ce que je rate.

    A notre que chez moi l'exemple du site de geoportal pour l'affichage d'une couche WFS (les cours d'eau) ne marche pas (je vois rien sur le site et je vois rien quand j'essaie de copier le code chez moi). Du coup, ca commence mal!

    Voilà le code que j'ai mis:
    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
    viewer.getMap().addLayer(
    	"WFS",
    	{
    		'test':
    		{
    			'fr':"Test WFS"
    		}
    	},
    	"http://localhost:8080/carto/proxy.php?url=http://carto/cgi-bin/mapserv?map=/data/mapserver/wfs.map&SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=testpostgis",
    	{
    		
    	},
    	{
    		projection: 'EPSG:4326',
    		units:'degrees',
    		// maxExtent est exprimée en EPSG:4326 :
    		maxExtent: new OpenLayers.Bounds(-180,-90,180,90),
    		isBaseLayer: false,
    		visibility: false
    	}
    );
    J'ai essayé un paquet d'options différentes mais ca ne change rien. Avez vous une piste vers laquelle me diriger? Y a t'il un moyen de vérifier que mes données sont bien reçues? Dois ajouter des réglages pour afficher ces données?

    Merci d'avance.

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 119
    Points : 1 764
    Points
    1 764
    Par défaut Firebug toujours!
    Sous Firefox, l'utilisation de Firebug permet de voir les échanges au niveau du réseau.
    Cela permet de voir les demandes effectivement faites par le script: par exemple un ajout de proxy redondant...

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    Je ne suis pas sur d'avoir compris la réponse. Sans le proxy, j'avais une erreur dans firebug
    XMLHttpRequest cannot load http://carto/cgi-bin/mapserv?map=/da...ME=testpostgis.
    Origin http://localhost:8080
    is not allowed by Access-Control-Allow-Origin.
    D'où l'ajout du proxy.
    Toujours est il que j'ai effectivement inspecté les échanges réseaux, j'aurai du y penser pardon. HJ'ai vu qu'il y avait un problème de TYPENAME et je l'ai donc ajouté dans les options. J'obtiens depuis la réponse suivante de mon serveur:
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    <?xml version='1.0' encoding="ISO-8859-1" ?>
    <wfs:FeatureCollection
       xmlns:ms="http://mapserver.gis.umn.edu/mapserver"
       xmlns:wfs="http://www.opengis.net/wfs"
       xmlns:gml="http://www.opengis.net/gml"
       xmlns:ogc="http://www.opengis.net/ogc"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd 
                           http://mapserver.gis.umn.edu/mapserver http://carto/cgi-bin/mapserv?SERVICE=WFS&amp;VERSION=1.0.0&amp;REQUEST=DescribeFeatureType&amp;TYPENAME=testpostgis&amp;OUTPUTFORMAT=XMLSCHEMA">
          <gml:boundedBy>
            <gml:Box srsName="EPSG:4326">
                <gml:coordinates>-3.004981,47.431496 -1.331879,48.834030</gml:coordinates>
            </gml:Box>
          </gml:boundedBy>
        <gml:featureMember>
          <ms:testpostgis fid="testpostgis.778">
            <gml:boundedBy>
                <gml:Box srsName="EPSG:4326">
                    <gml:coordinates>-3.004981,48.224552 -3.004981,48.224552</gml:coordinates>
                </gml:Box>
            </gml:boundedBy>
            <ms:msGeometry>
            <gml:Point srsName="EPSG:4326">
              <gml:coordinates>-3.004981,48.224552</gml:coordinates>
            </gml:Point>
            </ms:msGeometry>
            <ms:oid>778</ms:oid>
            <ms:cat>FH</ms:cat>
            <ms:nom>CAUREL</ms:nom>
            <ms:date>1992-05-20</ms:date>
          </ms:testpostgis>
        </gml:featureMember>
        <gml:featureMember>
          <ms:testpostgis fid="testpostgis.778">
            <gml:boundedBy>
                <gml:Box srsName="EPSG:4326">
                    <gml:coordinates>-3.004981,48.224552 -3.004981,48.224552</gml:coordinates>
                </gml:Box>
            </gml:boundedBy>
            <ms:msGeometry>
            <gml:Point srsName="EPSG:4326">
              <gml:coordinates>-3.004981,48.224552</gml:coordinates>
            </gml:Point>
            </ms:msGeometry>
            <ms:oid>778</ms:oid>
            <ms:cat>FH</ms:cat>
            <ms:nom>CAUREL</ms:nom>
            <ms:date>1992-05-20</ms:date>
          </ms:testpostgis>
        </gml:featureMember>
        <gml:featureMember>
          <ms:testpostgis fid="testpostgis.7204">
            <gml:boundedBy>
                <gml:Box srsName="EPSG:4326">
                    <gml:coordinates>-3.004981,48.224552 -3.004981,48.224552</gml:coordinates>
                </gml:Box>
            </gml:boundedBy>
            <ms:msGeometry>
            <gml:Point srsName="EPSG:4326">
              <gml:coordinates>-3.004981,48.224552</gml:coordinates>
            </gml:Point>
            </ms:msGeometry>
            <ms:oid>7204</ms:oid>
            <ms:cat>FH</ms:cat>
            <ms:nom>CAUREL</ms:nom>
            <ms:date>1992-05-20</ms:date>
          </ms:testpostgis>
        </gml:featureMember>
        ...
    </wfs:FeatureCollection>
    Donc, les données seraient bien reçues mais pas affichés. Est ce lié au proxy et je n'ai pas compris la réponse ou est ce autre chose? Merci beaucoup en tout cas.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 442
    Points : 502
    Points
    502
    Par défaut url exemple
    en effet l'exemple de la FAQ ne fonctionne plus: http://api.ign.fr/geoportail/api/doc...alMap_wfs.html

  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 EricLebottier Voir le message
    en effet l'exemple de la FAQ ne fonctionne plus: http://api.ign.fr/geoportail/api/doc...alMap_wfs.html
    C'est normal : le service WFS Sandre interrogé ne supporte pas l'opération filter mise en oeuvre. Le Sandre a été contacté et travaille avec une nouvelle version de Mapserver (que j'ai pu tester) et qui fait fonctionner cet exemple. Il faut attendre maintenant que :

    * soit l'url du nouveau service WFS du Sandre soit basculé en production avec la même adresse que l'ancien;
    * soit l'url du nouveau service WFS soit communiqué pour changer l'exemple en question.

    En dehors de ces considérations, l'exemple est pleinement fonctionnel
    et donc, à l'instar des formats XML (KML/GPX/OSM/etc ...) la lecture d'un WFS nécessite un proxy si l'url du WFS n'est pas dans le même domaine que le code JS qui s'exécute (SOP: Same Origin Policy).

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 119
    Points : 1 764
    Points
    1 764
    Par défaut Échec d'un essai
    Je viens d'essayer avec le serveur "carmen" :http://atlasnw.free.fr/geoportail/ex...fs_carmen.html
    et ma requête doit être mal construite car rien ne s'affiche et j'ai une erreur dans la réponse xml
    <?xml version='1.0' encoding="ISO-8859-1" ?>
    <ServiceExceptionReport version="1.2.0" xmlns="http://www.opengis.net/ogc" xmlnssi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/wfs/1.0.0/OGC-exception.xsd">
    <ServiceException code="MissingParameterValue" locator="request">
    msWFSDispatch(): WFS server error. Incomplete WFS request: REQUEST parameter missing
    </ServiceException>
    </ServiceExceptionReport>

  7. #7
    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
    Plusieurs petites choses :

    * le type interrogé n'est disponible qu'en EPSG:2154 :

    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
    ...
      wfsLayer = viewer.getMap().addLayer(
        "WFS",
        "WFS",
        "http://ws.carmen.developpement-durable.gouv.fr/WFS/10/Natura_2000?",
        {
          typename:'Directive_oiseaux__ZPS_'
        },
        {
          protocolOptions:{
            featurePrefix:'ms',
            featureNS:'http://mapserver.gis.umn.edu/mapserver',
            geometryName:'ms:msGeometry'
          },
          projection:'EPSG:2154',
          units:'meters',
          // maxExtent expressed in EPSG:2154 :
          maxExtent: new OpenLayers.Bounds(92852.5,6.67915e+06,403756,6.91213e+06),
          minZoomLevel:10,
          maxZoomLevel:15,
          styleMap:wfsStyle,
          visibility: true,
          hover:true
        }
    ...
    Pour avoir ces informations, il faut lancer la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    http://ws.carmen.developpement-durable.gouv.fr/WFS/10/Natura_2000?SERVICE=WFS&REQUEST=GetCapabilities&
    qui donne les informations suivantes :
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    <?xml version='1.0' encoding="ISO-8859-1" ?>
    <WFS_Capabilities 
       version="1.0.0" 
       updateSequence="0" 
       xmlns="http://www.opengis.net/wfs" 
       xmlns:ogc="http://www.opengis.net/ogc" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-capabilities.xsd">
    
    <!-- MapServer version 5.4.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE -->
    
    <Service>
      <Name>MapServer WFS</Name>
      <Title>Reseau NATURA 2000</Title>
      <OnlineResource>http://ws.carmen.application.developpement-durable.gouv.fr/WFS/10/Natura_2000?</OnlineResource>
    </Service>
    
    <Capability>
      <Request>
        <GetCapabilities>
          <DCPType>
            <HTTP>
              <Get onlineResource="http://ws.carmen.application.developpement-durable.gouv.fr/WFS/10/Natura_2000?" />
            </HTTP>
          </DCPType>
          <DCPType>
            <HTTP>
              <Post onlineResource="http://ws.carmen.application.developpement-durable.gouv.fr/WFS/10/Natura_2000?" />
            </HTTP>
          </DCPType>
        </GetCapabilities>
        <DescribeFeatureType>
          <SchemaDescriptionLanguage>
            <XMLSCHEMA/>
          </SchemaDescriptionLanguage>
          <DCPType>
            <HTTP>
              <Get onlineResource="http://ws.carmen.application.developpement-durable.gouv.fr/WFS/10/Natura_2000?" />
            </HTTP>
          </DCPType>
          <DCPType>
            <HTTP>
              <Post onlineResource="http://ws.carmen.application.developpement-durable.gouv.fr/WFS/10/Natura_2000?" />
            </HTTP>
          </DCPType>
        </DescribeFeatureType>
        <GetFeature>
          <ResultFormat>
            <GML2/>
          </ResultFormat>
          <DCPType>
            <HTTP>
              <Get onlineResource="http://ws.carmen.application.developpement-durable.gouv.fr/WFS/10/Natura_2000?" />
            </HTTP>
          </DCPType>
          <DCPType>
            <HTTP>
              <Post onlineResource="http://ws.carmen.application.developpement-durable.gouv.fr/WFS/10/Natura_2000?" />
            </HTTP>
          </DCPType>
        </GetFeature>
      </Request>
    </Capability>
    
    <FeatureTypeList>
      <Operations>
        <Query/>
      </Operations>
        <FeatureType>
            <Name>Directive_habitats__ZSC__SIC__pSIC_</Name>
            <Title>Directive habitats (ZSC, SIC, pSIC)</Title>
            <SRS>EPSG:2154</SRS>
            <LatLongBoundingBox minx="92852.5" miny="6.67915e+06" maxx="403756" maxy="6.91213e+06" />
    <!-- WARNING: Required Feature Id attribute (fid) not specified for this feature type. Make sure you set one of wfs_featureid, ows_featureid or gml_featureid metadata. -->
        </FeatureType>
        <FeatureType>
            <Name>Directive_oiseaux__ZPS_</Name>
            <Title>Directive oiseaux (ZPS)</Title>
            <SRS>EPSG:2154</SRS>
            <LatLongBoundingBox minx="92852.5" miny="6.67915e+06" maxx="403756" maxy="6.91213e+06" />
    <!-- WARNING: Required Feature Id attribute (fid) not specified for this feature type. Make sure you set one of wfs_featureid, ows_featureid or gml_featureid metadata. -->
        </FeatureType>
    </FeatureTypeList>
    
    <ogc:Filter_Capabilities>
      <ogc:Spatial_Capabilities>
        <ogc:Spatial_Operators>
          <ogc:Equals/>
          <ogc:Disjoint/>
          <ogc:Touches/>
          <ogc:Within/>
          <ogc:Overlaps/>
          <ogc:Crosses/>
          <ogc:Intersect/>
          <ogc:Contains/>
          <ogc:DWithin/>
          <ogc:BBOX/>
        </ogc:Spatial_Operators>
      </ogc:Spatial_Capabilities>
      <ogc:Scalar_Capabilities>
        <ogc:Logical_Operators />
        <ogc:Comparison_Operators>
          <ogc:Simple_Comparisons />
          <ogc:Like />
          <ogc:Between />
        </ogc:Comparison_Operators>
      </ogc:Scalar_Capabilities>
    </ogc:Filter_Capabilities>
    </WFS_Capabilities>
    Pour avoir des informations sur les propriétés du type Directive_oiseaux__ZPS_ , il faut lancer la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    http://ws.carmen.developpement-durable.gouv.fr/WFS/10/Natura_2000?SERVICE=WFS&REQUEST=DescribeFeatureType&TYPENAME=Directive_oiseaux__ZPS_
    qui fournit :

    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
    <?xml version='1.0' encoding="ISO-8859-1" ?>
    <schema
       targetNamespace="http://mapserver.gis.umn.edu/mapserver" 
       xmlns:ms="http://mapserver.gis.umn.edu/mapserver" 
       xmlns:ogc="http://www.opengis.net/ogc"
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       xmlns="http://www.w3.org/2001/XMLSchema"
       xmlns:gml="http://www.opengis.net/gml"
       elementFormDefault="qualified" version="0.1" >
    
      <import namespace="http://www.opengis.net/gml"
              schemaLocation="http://schemas.opengis.net/gml/2.1.2/feature.xsd" />
    
      <element name="Directive_oiseaux__ZPS_" 
               type="ms:Directive_oiseaux__ZPS_Type" 
               substitutionGroup="gml:_Feature" />
    
      <complexType name="Directive_oiseaux__ZPS_Type">
        <complexContent>
          <extension base="gml:AbstractFeatureType">
            <sequence>
              <element name="msGeometry" type="gml:GeometryPropertyType" minOccurs="0" maxOccurs="1"/>
              <element name="ZONE" type="string"/>
              <element name="EUROPE" type="string"/>
              <element name="DESCRIPTIO" type="string"/>
              <element name="HECTARES" type="string"/>
              <element name="PROCEDURE_" type="string"/>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
    </schema>
    * les données sont situées (visiblement) un peu plus au nord :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // reserves_bretagne_vivante_2008
    // centrage initial sur la Balusais
    //  viewer.getMap().setCenterAtLonLat(-1.479,48.313, 10);
      viewer.getMap().setCenterAtLonLat(-1.5249366424188266,48.50214926622421,10);
    
    * enfin, le proxy PHP doit être boggué : transmet-il bien la requête en POST le message d'erreur semble indiquer le contraire (j'ai effectué les tests avec le proxy Perl) ...

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 119
    Points : 1 764
    Points
    1 764
    Par défaut Merci pour les précisions
    L'utilisation de "DescribeFeatureType" facilite le travail!

    Et oui, le proxy transmet en GET..., la trace avec Wireshark ne pardonne pas.
    Il va donc falloir regarder le code du proxy php, ou plus exactement mettre la bonne url.

    L'affichage du WFS est donc bon maintenant, merci Didier.

    Une couche de ce type ne s'affiche pas en KML car elle demande trop de ressources au navigateur.

  9. #9
    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 mga_geo Voir le message
    Il va donc falloir regarder le code du proxy php, ou plus exactement mettre la bonne url.
    Que veux-tu écrire par là ?

    Citation Envoyé par mga_geo Voir le message
    Une couche de ce type ne s'affiche pas en KML car elle demande trop de ressources au navigateur.
    Typiquement au zoom 9 la couche WFS ne s'affiche pas : la réponse retournée contient trop d'objets ou des objets trop gros

Discussions similaires

  1. Affichage de couches WFS sous Chrome - Erreur de parse du XML
    Par elonguemare dans le forum IGN API Géoportail
    Réponses: 4
    Dernier message: 03/04/2015, 17h21
  2. Affichage couche WFS
    Par paulie07 dans le forum IGN API Géoportail
    Réponses: 8
    Dernier message: 15/09/2011, 20h37
  3. pre 1.0beta5: couche wfs
    Par mga_geo dans le forum IGN API Géoportail
    Réponses: 6
    Dernier message: 01/09/2009, 19h50
  4. Probleme affichage Flux WFS
    Par mougoye dans le forum IGN API Géoportail
    Réponses: 32
    Dernier message: 26/08/2009, 12h22
  5. intégration couches WFS
    Par EmilieDB dans le forum IGN API Géoportail
    Réponses: 3
    Dernier message: 15/05/2009, 17h18

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