Ajouter des services WFS

Un service WFS est une spécification ouverte permettant la diffusion d'entités géographiques sur le web. Contrairement à un service WMS (Web Map Service), un service WFS renvoie des entités réelles avec une géométrie et des attributs. Vous pouvez vous connecter à un service WFS de l’OGC (Open Geospatial Consortium) dans ArcGIS AllSource en créant une connexion au service WFS ou en ajoutant un élément WFS à partir de votre portail actif.

Ajouter une connexion au serveur WFS

Pour ajouter une connexion au serveur WFS, procédez comme suit :

  1. Sur l’onglet Insert (Insérer), dans le groupe Project (Projet), cliquez sur le bouton Connections (Connexions), puis cliquez sur Server (Serveur) et sur New WFS Server (Nouveau serveur WFS) Nouveau serveur WFS.

    La boîte de dialogue Ajouter une connexion au serveur WFS apparaît.

  2. Saisissez l'URL du site du serveur WFS auquel vous voulez vous connecter dans la zone de texte URL du serveur.

    L’URL dépend de la configuration du site.

    Exemple d’URL : https://sampleserver6.arcgisonline.com/arcgis/services/SampleWorldCities/MapServer/WFSServer

  3. Dans le menu déroulant Version, sélectionnez la version WFS à laquelle vous souhaitez vous connecter.

    La version par défaut se connecte au numéro de version le plus élevé pris en charge sur le serveur.

  4. Si le service WFS auquel vous vous connectez propose des fonctionnalités supplémentaires ou si vous souhaitez définir une propriété spécifique du client ArcGIS AllSource pour la connexion au serveur WFS, ajoutez des noms et des valeurs de paramètres de requête personnalisés dans la section Custom request parameters (Paramètres de requête personnalisés).

    Voici certains exemples de mots-clés réservés spécifiques du client ArcGIS AllSource qui sont fréquemment utilisés : PAGESIZE pour activer la pagination côté client, BBOX pour limiter les entités à une zone géographique donnée, MAXFEATURES pour définir le nombre limite d’entités affichées sur la carte (par défaut, une limite de 3 000 est utilisée) et SWAPXY pour échanger l’ordre des axes de la couche. Ces mots-clés s’appliquent à toutes les couches répertoriées dans la connexion au serveur WFS. Pour modifier les propriétés de chaque couche, vous pouvez les afficher ou les modifier sur l’onglet WFS des propriétés de la couche. Notez que ArcGIS AllSource ne peut pas valider les paramètres supplémentaires spécifiques au serveur.

    Pour ajouter des paramètres personnalisés, procédez comme suit :

    1. Cliquez sur la première cellule.
    2. Indiquez le nom du paramètre dans la cellule figurant sous la colonne Parameter (Paramètre).
    3. Indiquez la valeur du paramètre dans la cellule figurant sous la colonne Value (Valeur).
    4. Pour ajouter des paramètres supplémentaires, cliquez sur le bouton Add Row (Ajouter une ligne) et répétez les étapes a à c.

    Pour supprimer des paramètres personnalisés, procédez comme suit :

    1. Sélectionnez la ligne contenant le paramètre à supprimer.
    2. Cliquez sur Supprimer une ligne pour supprimer la ligne.
    3. Répétez les étapes a et b pour chaque paramètre à supprimer.
  5. Le cas échéant, authentifiez le service en procédant de l’une des manières suivantes :
    • Si le service est sécurisé à l’aide de l’authentification de base, dans le menu déroulant Authentication (Authentification), cliquez sur Server Authentication (Authentification du serveur), puis saisissez le nom d’utilisateur et le mot de passe. Pour enregistrer le nom d’utilisateur et le mot de passe dans le Gestionnaire d’informations d’identification Windows ou dans le fichier de connexion, sélectionnez les options sous l’en-tête Save Login (Enregistrer l’identifiant de connexion).
    • Si le service est sécurisé à l’aide de l’authentification basée sur OAuth 2.0, dans le menu déroulant Authentication (Authentification), cliquez sur la connexion appropriée dans la liste déroulante. Reportez-vous à la rubrique Se connecter aux fournisseurs d’authentification depuis ArcGIS Pro pour savoir comment ajouter une connexion aux fournisseurs d’authentification si aucune n’est disponible. Si nécessaire, cliquez sur Sign in (Se connecter) pour authentifier la connexion avec le fournisseur.
  6. Cliquez sur OK.

    Un fichier de connexion WFS (.wfs) est créé et enregistré dans le dossier d’accueil du projet. Un élément faisant référence à ce fichier de connexion est ajouté au projet, et la connexion apparaît dans le dossier Serveurs sur l'onglet Projet de la fenêtre Catalogue.

  7. Développez la connexion WFS pour afficher les couches du service WFS, cliquez avec le bouton droit sur une couche et sélectionnez une option dans le menu contextuel Add To New (Ajouter à une nouvelle), ou cliquez sur Add To Current Map (Ajouter à la carte actuelle) Ajouter à la carte actuelle pour ajouter la couche WFS à la carte.

    Vous pouvez également ajouter le service à la carte en le faisant glisser sur la carte ou dans la fenêtre Contents (Contenu).

    La boîte de dialogue Add WFS Layer (Ajouter une couche WFS) apparaît avec les options de couche et la couche WFS est ajoutée à la carte. Vous pouvez annuler l’ajout de la couche en cliquant sur Cancel (Annuler) dans la boîte de dialogue de progression. Si les données ne s’affichent pas comme prévu alors qu’elles ont été ajoutées à la carte, vous pouvez modifier les propriétés de la couche WFS.

Les services WFS permettent d’ajouter une ou plusieurs couches. Pour sélectionner un groupe de couches, appuyez sur la touche Maj et cliquez sur la première et sur la dernière sous-couche du groupe à ajouter. Vous pouvez également sélectionner des sous-couches non séquentielles en appuyant sur la touche Ctrl tout en cliquant sur chaque couche souhaitée. Une fois les couches sélectionnées, cliquez avec le bouton droit sur les couches sélectionnées et ajoutez-les à la carte actuelle ou à une nouvelle carte. L’ajout de plusieurs couches à la fois dure plus longtemps que l’ajout d’une seule couche.

Ajouter un service WFS à partir de votre connexion au portail actif

Vous pouvez également ajouter des services WFS à votre portail. Les trois sources suivantes existent pour les éléments WFS dans votre portail :

  • Les services WFS qui sont publiés sur les sites ArcGIS Server que vous avez fédérés avec votre portail sont ajoutés automatiquement en tant qu’éléments dans votre portail.
  • Les services WFS tiers ajoutés en tant qu’éléments de votre portail.
  • Les services hébergés WFS qui sont créés en publiant un service WMS à partir d’une couche d’entités hébergée.

Chacun des types d’éléments de portail WFS peut être ajouté à la carte comme suit :

  1. Dans la fenêtre Catalog (Catalogue), cliquez sur l’onglet Portal (Portail).
  2. Accédez aux éléments WFS que vous souhaitez utiliser ou recherchez-les dans les collections My Content (Mon Contenu), My Groups (Mes groupes) ou ArcGIS Online.

    Positionnez le pointeur sur un élément du portail pour voir le type d’élément dont il s’agit.

  3. Cliquez avec le bouton droit sur l’élément et sélectionnez une option dans le menu contextuel Add to New (Ajouter à une nouvelle), ou cliquez sur Add To Current Map (Ajouter à la carte actuelle) Ajouter à la carte actuelle pour ajouter la couche WFS à la carte.

    Vous pouvez également ajouter le service à la carte en le faisant glisser sur la carte ou dans la fenêtre Contents (Contenu). Si le service comporte plusieurs couches, vous êtes amené à choisir la couche à ajouter à la carte.

    La boîte de dialogue Add WFS Layer (Ajouter une couche WFS) apparaît avec les options de couche et la couche WFS est ajoutée à la carte. Vous pouvez annuler l’ajout de la couche en cliquant sur Cancel (Annuler) dans la boîte de dialogue de progression. Si les données ne s’affichent pas comme prévu alors qu’elles ont été ajoutées à la carte, vous pouvez modifier les propriétés de la couche WFS.

Les services WFS permettent d’ajouter une ou plusieurs couches. Pour sélectionner un groupe de couches, appuyez sur la touche Maj et cliquez sur la première et sur la dernière sous-couche du groupe à ajouter. Vous pouvez également sélectionner des sous-couches non séquentielles en appuyant sur la touche Ctrl tout en cliquant sur chaque couche souhaitée. Une fois les couches sélectionnées, cliquez avec le bouton droit sur les couches sélectionnées et ajoutez-les à la carte actuelle ou à une nouvelle carte. L’ajout de plusieurs couches à la fois dure plus longtemps que l’ajout d’une seule couche.

Utiliser la boîte de dialogue Add WFS Layer(s) (Ajouter une ou des couches WFS)

La boîte de dialogue Add WFS Layer(s) (Ajouter une ou des couches WFS) vous permet de définir certaines des propriétés de couche en option qui sont disponibles pour les couches WFS. Cela inclut la définition du nombre maximum d’entités et d’une taille de page, ainsi que la limitation des entités à une zone d’intérêt à l’aide d’une étendue. Vous pouvez également modifier ces propriétés dans la boîte de dialogue WFS layer properties (Propriétés de la couche WFS).

La boîte de dialogue Add WFS Layer (Ajouter une couche WFS)
  1. Set the maximum features returned (Définir le nombre maximal d’entités renvoyées) : définissez le nombre total d’entités à ajouter à la carte. Ajouter un jeu de données très volumineux à la carte peut provoquer des problèmes de performances et ralentir le fonctionnement. Cette option vous permet de limiter le nombre d’entités qui sont ajoutées à la carte. Si vous l’utilisez avec le paramètre Use Spatial Extent (Utiliser l’étendue spatiale), cela limite le nombre d’entités dans l’étendue fournie.
  2. Set page size (Définir la taille de la page) : pour les services WFS 2.0 qui prennent en charge la pagination, vous pouvez définir le nombre d’entités à renvoyer par requête de charge envoyée par le serveur. Pour une requête WFS GetFeature, cette option définit la valeur du paramètre count qui est utilisé conjointement avec le paramètre startIndex pour les requêtes de pagination. ArcGIS AllSource essaie de déterminer la meilleure taille de page à utiliser en fonction des paramètres de votre service. Toutefois, la valeur optimale peut dépendre des performances du serveur pour renvoyer des entités avant expiration (environ 15 secondes). Par exemple, les serveurs qui peuvent renvoyer 25 000 entités avant expiration présentent un temps de chargement de la carte beaucoup plus court si la taille de page est définie sur 25 000. Cela diminue le nombre total de requêtes envoyées par le client au serveur. Toutefois, certains serveurs moins performants peuvent ne pas être en mesure de renvoyer plus de 200 entités avant expiration, par exemple. Dans ce cas, une valeur de taille de page faible est nécessaire pour éviter des erreurs de chargement dues à l’expiration. Vous constatez alors une augmentation du nombre de requêtes de chargement de données envoyées au serveur.
  3. Use Spatial Extent (Utiliser l’étendue spatiale) : choisissez de limiter les entités en indiquant une zone d’intérêt (étendue spatiale).
    • Cochée : limitez les entités ajoutées à la carte en indiquant une étendue. Le service WFS doit prendre en charge le paramètre BBOX pour utiliser cette fonction. Indiquez l’étendue à utiliser dans le paramètre Selected extend (Étendue sélectionnée).
    • Décochée : ne limitez pas spatialement les entités ajoutées à la carte. Il s’agit de l’option par défaut.
  4. Selected extent (Étendue sélectionnée) : définissez une étendue personnalisée à utiliser pour limiter les données ajoutées à la carte. Vous pouvez saisir les coordonnées manuellement ou récupérer les valeurs d’étendue à partir de l’étendue actuellement visible, l’étendue des données dans toutes les couches ou l’étendue d’une couche spécifique.

Les propriétés dans la boîte de dialogue Add WFS Layer (Ajouter une couche WFS) peuvent également être consultées ou modifiées dans l’onglet WFS de la boîte de dialogue Layer Properties (Propriétés de la couche).

Le modèle de données ArcGIS autorise un seul type de géométrie par table. Si une couche WFS à géométrie mixte est ajoutée à la carte, le type de géométrie de la couche est déterminé en interrogeant la première entité dans le service WFS. Par exemple, si la première ligne dans les données est un polygone, la couche WFS est ajoutée à la carte en tant que couche surfacique.

Utiliser un paramètre de requête personnalisé

Le formulaire des paramètres de requête personnalisés permet de saisir des fonctionnalités supplémentaires prises en charge par le service WFS. La paire clé-valeur en entrée peut correspondre à un paramètre personnalisé spécifique de l’implémentation du serveur WFS. Vous pouvez également utiliser l’un des mots-clés réservés implémentés par le client ArcGIS AllSource.

Utiliser une paire de valeurs clés

Certains services WFS peuvent détenir des paires de valeurs clés spécifiques permettant d’exécuter une requête personnalisée sur le service. La paire clé-valeur sera ajoutée à l’URL WFS après le point d’interrogation. Prenons l’exemple de l’URL WFS https://sampleserver6.arcgisonline.com/arcgis/services/SampleWorldCities/MapServer/WFSServer?. Si vous possédez un paramètre personnalisé dont le nom est myCustomKey, vous pouvez saisir la valeur myCustomKey dans la cellule Parameter (Paramètre) et définir la valeur dans la cellule Value (Valeur). Lorsque ArcGIS AllSource effectue une requête pour se connecter au service WFS, il ajoute la paire clé-valeur à l’URL WFS. Par exemple, https://sampleserver6.arcgisonline.com/arcgis/services/SampleWorldCities/MapServer/WFSServer?request=GetCapabilities&service=WFS&myCustomKey=myValue.

Utiliser un mot-clé réservé

Le client WFS ArcGIS AllSource possède des mots-clés réservés permettant de spécifier une propriété de connexion pour la connexion au serveur WFS. La valeur que vous définissez pour ces paramètres s’appliquent à toutes les couches du service WFS. Si vous souhaitez appliquer un mot-clé réservé à chaque couche dans le service WFS plutôt que par connexion au service, vous devez créer plusieurs connexions avec les différentes valeurs de paramètre ou mettre à jour les propriétés de la couche WFS dans la carte. La table suivante répertorie les noms et les valeurs des paramètres personnalisés, que vous pouvez utiliser pour définir les propriétés du fichier de connexion au serveur WFS :

Mot-cléDescription

BBOX

Indiquez une étendue de zone pour limiter l’étendue des entités renvoyées (par exemple, -122.5,37.7,-122.3,37.8). Ce paramètre est utile si vous souhaitez limiter le nombre d’entités renvoyées dans toutes les couches WFS à une zone géographique donnée. Ce paramètre s’applique uniquement au mode instantané.

MAXFEATURES

Définissez le nombre maximum d’entités renvoyées pour les couches au cours d’une connexion au serveur WFS. La définition de cette valeur peut éviter les problèmes de performances si le service possède un grand nombre d'entités. La valeur par défaut est 3 000. Si vos données sont volumineuses, vous pouvez spécifier une valeur élevée pour voir davantage d’entités. Si votre service prend en charge la pagination, vous pouvez ajuster le paramètre PAGESIZE pour charger vos données de manière plus efficace.

MODE

Indiquez le mode de connexion à utiliser pour votre couche. Par défaut, le mode de connexion est le mode instantané.

  • SNAPSHOT : ce mode est compatible avec la plupart des services WFS. Lorsque vous utilisez ce mode, une copie provisoire de vos données WFS est téléchargée en local.
  • ONDEMAND : la compatibilité de ce mode est moindre avec certains services WFS qui ne prennent pas en charge les filtres avancés. Avec ce mode, les données ne sont pas téléchargées en local, mais vous vous connectez en temps réel au service WFS. Dans ce mode, une requête est envoyée au service pendant que vous vous déplacez sur la carte et appliquez des zooms ou interrogez vos données. Si vous le souhaitez, vous pouvez définir HTTPMETHOD pour qu’il envoie des requêtes au serveur à l’aide de la méthode HTTP GET si votre serveur ne prend pas en charge les filtres avancés avec la méthode POST par défaut.

En savoir plus sur le mode de connexion WFS

OUTPUTFORMAT

Spécifiez le format dans lequel demander les entités. Les services WFS peuvent prendre en charge plusieurs types de format en sortie mais, par défaut, le format est GML. Utilisez cette option uniquement si le service prend en charge le format en sortie spécifié. Vous pouvez vérifier les formats en sortie pris en charge par le service dans la réponse GetCapabilities.

  • GEOJSON : demandez les entités dans un format GeoJSON.
  • GEOJSON + GZIP : demandez les entités dans un format GeoJSON GZip ; par exemple, GEOJSON%2BGZIP.
  • ESRIGEOJSON : demandez les entités dans un format Esri GeoJSON.
  • ESRIGEOJSON + GZIP : demandez les entités dans un format Esri GeoJSON GZip ; par exemple, ESRIGEOJSON%2BGZIP

Les propriétés SWAPXY et SWAPXYFILTER ne s’appliquent pas lorsque le format en sortie est GeoJSON.

PAGESIZE

Spécifiez la taille de page à utiliser lorsqu’une requête GetFeature est effectuée pour charger des données dans la carte. Par défaut, si le service prend en charge la pagination, la valeur 200 est utilisée pour le format de page. Utilisez ce mot-clé pour modifier le nombre d’entités à renvoyer par requête (à l’aide du paramètre WFS count=).

La valeur optimale de la taille de page dépend des performances du serveur. Idéalement, cette valeur correspond au nombre maximum d’entités que le service peut renvoyer dans une requête GetFeature avant expiration du serveur (environ 15 secondes). Pour les serveurs dont le temps de réponse est court, une taille de page de 10 000 à 50 000 est idéale. Pour les serveurs dont le temps de réponse est long ou qui ont une limite de nombre d’entités renvoyées par réponse, une taille de page plus petite de 100 peut éviter une erreur liée à l’expiration. Un service qui ne prend pas en charge la pagination et qui a un grand nombre d’entités ou de couches peut présenter des performances médiocres lors du chargement de la carte, car toutes les entités sont renvoyées dans une seule requête.

Ce mot-clé ne s’applique qu’aux services WFS 2.0 qui prennent en charge les paramètres startIndex et count. Il n’est pas applicable en mode connexion à la demande.

STRINGLENGTH

Spécifiez la longueur des zones de texte dans la couche WFS. Lorsqu’une couche est ouverte dans la carte, la longueur de toutes les zones de texte est tronquée par défaut à 255 caractères.

SWAPXY

Inversez les coordonnées x,y pour l’affichage de la couche.

  • TRUE : inversion de l’ordre des coordonnées x,y.
  • FALSE : non inversion de l’ordre des coordonnées x,y. Il s’agit de l’option par défaut.

SWAPXYFILTER

Inversez les coordonnées x,y pour les demandes de filtre spatial envoyées au serveur.

  • TRUE : inversion de l’ordre des coordonnées x,y pour filtrer les requêtes.
  • FALSE : non inversion de l’ordre des coordonnées x,y pour filtrer les requêtes. Il s’agit de l’option par défaut.

HTTPMETHOD

Spécifiez la méthode HTTP à utiliser pour l’envoi de requêtes au serveur en mode à la demande. Par défaut, ArcGIS AllSource envoie des requêtes POST au serveur en mode à la demande. Cela permet d’envoyer des filtres plus avancés au serveur. Toutefois, certaines implémentations de WFS ne prennent pas en charge les requêtes POST. Dans ce cas, vous pouvez définir HTTPMETHOD sur GET et accéder aux fonctionnalités de base de la couche WFS en mode à la demande.

  • GET : envoyez des requêtes au serveur à l’aide de la méthode HTTP GET.
  • POST : envoyez des requêtes au serveur à l’aide de la méthode HTTP POST. Il s’agit de l’option par défaut.

Remarque :

À l’exception des mots-clés BBOX, STRINGLENGTH, OUTPUTFORMAT et HTTPMETHOD, tous les mots-clés possèdent un paramètre correspondant à la couche dans les propriétés de la couche WFS. Vous pouvez accéder aux propriétés de la couche WFS en cliquant avec le bouton droit sur la fenêtre Contents (Contenu) et en sélectionnant Properties (Propriétés).

Outre les mots-clés mentionnés qui permettent de spécifier les propriétés de la connexion au serveur WFS, il existe d’autres mots-clés réservés qui ne peuvent pas être utilisés dans la mesure où ils ont une signification particulière pour les services WFS ou pour ArcGIS. Ces mots-clés sont les suivants : NAMESPACE, TYPENAME, VERSION, SERVICE, CRSNAME, REQUEST, USER, URL, PASSWORD, MODE, ANONYMOUS, HTTPTIMEOUT, CAPABILITIES_PARAMETERS et CONNECTIONPATH.

Utiliser l’outil WFS to Feature Class (WFS vers classe d’entités)

L’outil de géotraitement WFS to Feature Class (WFS vers classe d’entités) permet de télécharger des données d’un service WFS dans une géodatabase. Cet outil vous permet de télécharger des données WFS à l’aide d’un script et prend en charge les services WFS complexes.

Pour utiliser cet outil afin de télécharger des données d’un service WFS complexe, procédez comme suit :

  1. Ouvrez l’outil de géotraitement WFS to Feature Class (WFS vers classe d’entités).

    Vous pouvez l’ouvrir en y accédant dans la fenêtre Geoprocessing (Géotraitement) dans la boîte à outils Conversion sous le jeu d’outils From WFS (Depuis WFS) ou utiliser la barre de recheche pour rechercher l’outil en saisissant son nom.

    La boîte de dialogue de l’outil WFS to Feature Class (WFS vers classe d’entités) apparaît.

    Boîte de dialogue de l’outil de géotraitement WFS to Feature Class (WFS vers classe d’entités)
  2. Si votre service WFS est un service complexe, cochez la case Complex WFS service (Service WFS complexe).
  3. Collez ou saisissez l’URL de votre service WFS dans le paramètre WFS Server (Serveur WFS) et cliquez en dehors de la zone de texte du paramètre.

    http://gisserver.example.com/geoserver/ows?

    Le menu déroulant du paramètre Select Feature Type to Extract (Sélectionner le type d’entité à extraire) est ainsi alimenté avec une liste de couches disponibles à télécharger.

  4. Sélectionnez une couche dans le menu déroulant.
  5. Spécifiez un emplacement de téléchargement à l’aide du paramètre Output Location (Emplacement en sortie).

    Si la case Complex WFS service (Service WFS complexe) est cochée, la sortie est une géodatabase fichier et l’emplacement doit donc correspondre à un dossier.

    Si la case Complex WFS service (Service WFS complexe) n’est pas cochée, la sortie est une classe d’entités et l’emplacement doit donc correspondre à une géodatabase ou un jeu de classes d’entités dans une géodatabase.

  6. Spécifiez un nom pour la géodatabase ou la classe d’entités en sortie dans le paramètre Name (Nom).
  7. Saisissez éventuellement une valeur pour le paramètre Max Features (Nombre maximal d’entités) pour limiter le nombre d’entités renvoyées.
  8. Éventuellement, si la case Complex WFS service (Service WFS complexe) est cochée, exposez les métadonnées du service en sélectionnant le paramètre Expose Metadata (Inclure les métadonnées), ce qui crée et alimente les tables de métadonnées dans la géodatabase en sortie.
  9. Si vous le souhaitez, pour limiter les entités à une zone d’intérêt, fournissez une valeur d’étendue pour le paramètre Processing Extent (Étendue de traitement) dans l’onglet Environments (Environnements) (ou définissez l’environnement arcpy.env.extent si vous utilisez Python) lors de l’exécution de l’outil.

Pour automatiser ce traitement dans un script Python, vous pouvez rechercher des exemples de code dans la documentation de l’outil.