Vous pouvez faire glisser une couche de base de données relationnelle sur la carte afin de créer automatiquement une couche de requête ou utiliser le bouton Add Data (Ajouter des données) sur l’onglet Map (Carte) pour créer une couche de requête sur une carte dans ArcGIS AllSource.
Conseil :
Cette page explique comment créer une couche de requête destinée à une table dans une base de données relationnelle. Pour accéder aux données d’un stockage de données cloud, reportez-vous à la rubrique Créer une couche de requête destinée aux données d’un stockage de données cloud.
Les couches de requête qui ont accès aux tables système de la géodatabase ne sont pas prises en charge.
Prérequis et processus
Avant de créer une couche de requête, lisez la rubrique Configurations de base de données et de client pour les couches de requête.
Lisez ensuite les sous-sections ci-dessous afin de comprendre le processus de création d’une couche de requête pour une base de données relationnelle à l’aide de la boîte de dialogue New Query Layer (Nouvelle couche de requête).
Se connecter à la base de données relationnelle
Avant de définir une couche de requête, vous devez vous connecter à la base de données à interroger.
Vous pouvez créer une connexion à une base de données dans la fenêtre Catalog (Catalogue), comme décrit dans la rubrique Connexions aux bases de données relationnelles dans ArcGIS AllSource, l’ajouter au projet et y accéder à partir de la boîte de dialogue New Query Layer (Nouvelle couche de requête). Vous pouvez également créer la connexion à une base de données à partir de la boîte de dialogue New Query Layer (Nouvelle couche de requête).
Définir une requête SQL
Spécifiez une requête SQL dans la zone de texte Query (Requête) pour accéder aux données dont vous avez besoin à partir de la table ou de la vue.
Vous pouvez coller une requête SQL dans la zone de texte Query (Requête) ou, si vous n’avez pas préparé de requête SQL et que vous devez afficher une liste de tables, cocher la case List of Tables (Liste de tables). Vous pouvez double-cliquer sur les tables et les colonnes qui apparaissent dans la liste pour créer une requête SQL ou les faire glisser depuis la fenêtre de liste des tables vers la zone de texte Query (Requête).
Chaque colonne d'une base de données comporte un type de données spécifique. ArcGIS fonctionne avec la plupart des types de base de données courants. Cependant, certains types de base de données peu courants ne sont pas pris en charge. Si le type de colonne attributaire est inconnu, cela indique qu'ArcGIS ne prend pas en charge ce type de données. Lorsque vous spécifiez une requête, toutes les colonnes comportant un type de données inconnu doivent être exclues ou converties en un type de données pris en charge par ArcGIS. Reportez-vous à la rubrique Types de données de bases de données pris en charge dans ArcGIS pour obtenir la liste des types de données pris en charge par base de données.
Conseil :
ArcGIS AllSource a ajouté la prise en charge des types de données suivants :
- Entier très grand
- Date uniquement
- Heure uniquement
- Décalage de l’horodatage
La prise en charge des nouveaux types de données varie en fonction des bases de données et de la plateforme de stockage des données cloud. Pour plus d’informations, reportez-vous à la rubrique Types de données de base de données pris en charge dans ArcGIS.
Lorsque vous créez une couche de requête, utilisez la syntaxe SQL spécifique à la base de données. SELECT * FROM Test.myuser.US_States est un exemple courant de cette syntaxe. Cette instruction génère une couche de requête contenant toutes les lignes de la table US_States. L’intégralité des États-Unis apparaît alors sur la carte.
Pour savoir comment utiliser des variables dans les requêtes SQL, reportez-vous à la rubrique Définir des paramètres dans une couche de requête.
Valider l’instruction SQL
Après avoir défini la requête SQL, validez-la. Lors de la validation, ArcGIS utilise les propriétés de la première ligne renvoyée dans la table pour déterminer la validité de la requête.
ArcGIS utilise également les propriétés de la première ligne renvoyée par la requête pour filtrer les autres lignes à afficher sur la carte pour respecter les exigences ArcGIS. Par exemple, ArcGIS prend en charge une seule référence spatiale dans une table spatiale. Si les entités de votre classe d’entités utilisent des ID de référence spatiale (SRID) différentes, par défaut, la couche de requête renverra uniquement les lignes qui ont le même SRID que la première entité renvoyée par la requête. De même, ArcGIS prend en charge un seul type de géométrie par table. Par défaut, seules les entités ayant le même type de géométrie que la première ligne renvoyée par la requête apparaîtront sur la carte. Pour utiliser un SRID ou un type de géométrie différent, définissez les propriétés spatiales de la couche de requête.
Spécifier un identifiant unique
L’identifiant unique est l’une des nombreuses colonnes utilisées par ArcGIS pour identifier chaque ligne de la table.
Pendant la validation, ArcGIS tente d’identifier une seule colonne d’identifiant unique pour la table. Si une colonne adéquate est trouvée, vous pouvez l’utiliser pour la couche de requête. Si aucun identifiant unique n’est trouvé, ou si vous voulez utiliser un identifiant unique différent, vous pouvez le définir dans le volet suivant de la boîte de dialogue.
Si vous voulez publier une couche d’entités comportant la couche de requête, le champ d’identifiant unique de la couche de requête doit être une colonne unique, non nulle et gérée par la base de données.
Définir les propriétés spatiales (facultatif)
Pour les classes d’entités ou les vues contenant une colonne spatiale, vous pouvez définir les valeurs suivantes ou utiliser les valeurs par défaut détectées par ArcGIS lors de la validation :
- Type de géométrie : détermine si la couche stocke des entités ponctuelles, multi-points, linéaires ou surfaciques.
- Valeurs Z et M : ces options déterminent si la couche contiendra des entités avec des coordonnées z ou m.
- Référence spatiale : il s'agit du système de coordonnées et d'autres propriétés spatiales associées à la couche.
Il peut arriver qu’ArcGIS ne soit pas en mesure de déterminer avec précision la référence spatiale en fonction de la valeur SRID actuelle définie sur les entités dans la base de données. Lorsque cela se produit, la couche de requête a une référence spatiale inconnue et vous devez en définir une. Cela ne s’applique pas aux stockages de données cloud, pour lesquels il est impossible de définir une référence spatiale.
Remarque :
La définition d’une référence spatiale pour la couche de requête ne reprojette pas les données. Elle définit simplement la référence spatiale qui doit être utilisée lors de l’appariement des résultats de la requête dans ArcGIS. - SRID : identifiant de référence spatiale de la couche utilisé pour s’assurer que seules les géométries dotées du même identifiant de référence spatiale sont renvoyées par la requête. La valeur SRID est vierge si la couche de requête ne possède pas de champ spatial. Si cette valeur est définie, toutes les entités dépourvues de la valeur SRID de géométrie spécifiée sont exclues du jeu de résultats. Si les données de votre base de données utilisent un SRID personnalisé, vous devez indiquer ce SRID dans les propriétés spatiales de la couche de requête. Cela ne s’applique pas aux stockages de données cloud.
Créer une couche de requête destinée à une table de base de données relationnelle
Si la table que vous voulez interroger ne contient pas des centaines de milliers d’enregistrements, vous pouvez la faire glisser sur la carte pour créer automatiquement une couche de requête, comme décrit dans la première section ci-dessous. Dans le cas de jeux de données plus volumineux, utilisez la boîte de dialogue New Query Layer (Nouvelle couche de requête) pour définir la couche de requête.
Faire glisser la table sur la carte
Lorsque vous faites glisser une classe d’entités, une table ou une vue de base de données sur la carte à partir d’une connexion à une base de données (.sde) dans la fenêtre Catalog (Catalogue), ArcGIS AllSource crée automatiquement une couche de requête qui sélectionne toutes les lignes et tous les champs de cette classe d’entités, table ou vue. Cela s’applique toutefois uniquement aux bases de données et non aux géodatabases d’entreprise.
ArcGIS AllSource calcule l’étendue de la couche lorsque vous la faites glisser dans la carte. Si vous ajoutez une table contenant de nombreuses entités, le calcul de l’étendue peut prendre plus de temps. Si vous connaissez l’étendue des données ou si vous voulez utiliser l’étendue de la référence spatiale de la classe d’entités, au lieu d’attendre que l’étendue soit calculée, vous pouvez le faire. Cliquez sur le bouton approprié dans la boîte de dialogue Calculer à partir de l'étendue. Si vous cliquez sur Input Extent (Étendue en entrée), vous devez saisir une étendue valide englobant toutes les entités de la table.
ArcGIS AllSource identifie également les propriétés spatiales de la première ligne et les définit comme propriétés spatiales de la couche de requête. Seules les entités avec les mêmes propriétés sont dessinées sur la carte.
Après avoir ajouté la couche à la carte, vous pouvez si nécessaire modifier la couche de requête.
Définir une requête dans la boîte de dialogue Nouvelle couche de requête
Pour définir une couche de requête sur une carte dans un projet ArcGIS AllSource à l’aide de la boîte de dialogue New Query Layer (Nouvelle couche de requête), procédez comme suit :
- Dans ArcGIS AllSource, ouvrez la carte à laquelle vous voulez ajouter la couche de requête.
- Cliquez sur le bouton Add Data (Ajouter des données) dans le groupe Layer (Couche) sur le ruban Map (Carte), et sélectionnez Query Layer (Couche de requête) dans le menu déroulant.
La boîte de dialogue New Query Layer (Nouvelle couche de requête) s’ouvre.
- Spécifiez une connexion en procédant de l’une des manières suivantes :
- Si le fichier de connexion (.sde) existe dans le projet, sélectionnez-le dans la liste déroulante.
- Si la connexion n’existe pas dans le projet, cliquez sur le bouton de nouvelle connexion à une base de données et créez une connexion. Une fois la connexion créée, choisissez-la dans la liste déroulante.
- Dans la zone de texte Name (Nom), indiquez un nom pour la couche de requête à créer.
Il s’agit du nom qui apparaîtra dans la fenêtre Contents (Contenu) de la carte.
- Entrez ou collez une requête SQL dans la zone de texte Query (Requête).
Pour afficher une liste de tables et leurs colonnes, cochez la case List of Tables (Liste de tables). Vous pouvez double-cliquer sur une table de la section List of Tables (Liste de tables) pour ajouter toutes les colonnes de la table à la zone de texte Query (Requête) et modifier la requête dans la zone de texte Query (Requête). Par exemple, vous pouvez supprimer de la requête les colonnes que vous ne souhaitez pas inclure et y ajouter des clauses à la requête pour limiter les données incluses dans la couche de requête.
- Choisissez comment les propriétés spatiales de la couche seront définies.
- Sélectionnez Let ArcGIS Pro discover spatial properties for the layer (Autoriser ArcGIS Pro à découvrir les propriétés spatiales de la couche) (option par défaut) pour autoriser ArcGIS AllSource à utiliser les propriétés spatiales de la première ligne renvoyée par la requête. ArcGIS AllSource découvre ces propriétés lorsque vous validez l’instruction SQL.
- Pour que la couche inclue les entités avec des propriétés spatiales différentes de celles de la première ligne, sélectionnez Define spatial properties for the layer (Définir les propriétés spatiales de la couche).
- Cliquez sur Validate (Valider) pour vérifier que la syntaxe de la requête est correcte et qu’ArcGIS peut utiliser la requête.
Le processus de validation exécute la requête dans la base de données pour vérifier que le jeu de résultats de la requête respecte les normes de modélisation de données appliquées par ArcGIS. Une couche de requête n'est pas ajoutée à la carte tant qu'elle n'est pas validée.
Les règles de validation sont les suivantes :
- Le jeu de résultats doit comporter un champ spatial au maximum.
- Le jeu de résultats doit comporter une référence spatiale au maximum.
- Le jeu de résultats doit comporter un seul type de forme.
- Le jeu de résultats ne doit comporter aucun type de champ non pris en charge par ArcGIS.
Si la validation échoue pour quelque raison que ce soit, un message d'erreur est renvoyé pour que vous puissiez modifier la requête.
La validation est particulièrement importante si vous utilisez des données de bases de données spatiales n'appliquant pas les mêmes normes qu'ArcGIS.
- Une fois la requête validée, cliquez sur Next (Suivant).
- Sélectionnez le champ d’identifiant unique de la couche de requête ou utilisez le champ sélectionné par ArcGIS AllSource.
Toutes les entités de la carte nécessitent un identifiant unique. La couche de requête doit donc contenir un champ d’identifiant unique comprenant une valeur pour chaque entité. En savoir plus sur la façon de choisir un champ d’identifiant unique pour une couche de requête.
- Sélectionnez le type de géométrie et la référence spatiale.
Ces paramètres peuvent être déjà configurés si vous avez choisi de laisser ArcGIS AllSource définir les propriétés spatiales.
- Sélectionnez le type de géométrie dans le menu déroulant.
- Cliquez sur le bouton Coordinate System (Système de coordonnées) pour choisir le système de coordonnées de la référence spatiale utilisée par les données, ou importez la référence spatiale à partir d’un jeu de données existant. Cette action ne reprojette pas les données.
- Si ArcGIS AllSource a défini les propriétés spatiales à l’étape 6, cliquez sur Finish (Terminer) pour ajouter la couche de requête à la carte.
Les deux étapes suivantes ne s’appliquent pas si c’est ArcGIS AllSource qui a défini les propriétés spatiales.
- Si c’est vous qui avez défini les propriétés spatiales de la couche à l’étape 6, une section supplémentaire apparaît dans la boîte de dialogue ci-dessus. Dans cette section (Layer Extent Properties (Propriétés de l’étendue de la couche)), spécifiez l’étendue spatiale de la couche de requête en choisissant parmi les options suivantes :
- Input Extent (Étendue en entrée) : lorsque vous cliquez sur Next (Suivant), vous devez saisir l’étendue. L’étendue que vous indiquez doit être valide et inclure toutes les entités de la table.
- Use Map Extent (Utiliser l’étendue de la carte) : l’étendue de la carte actuelle est utilisée pour l’étendue de la couche de requête. Cliquez sur Next (Suivant) pour vérifier les valeurs d’étendue de la carte.
- Use Spatial Reference Extent (Utiliser l’étendue de la référence spatiale) : l’étendue de la référence spatiale est utilisée pour l’étendue de la couche de requête. Pour certaines références spatiales, cela correspond à l’intégralité du globe. Cliquez sur Next (Suivant) et vérifiez les valeurs d’étendue de la référence spatiale.
- Une fois que vous avez fini de définir ou de vérifier l’étendue de la couche, cliquez sur Finish (Terminer) pour ajouter la couche de requête à la carte.
Pour plus d’informations sur la modification des propriétés de la couche de requête, reportez-vous à la rubrique Modifier une couche de requête.
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?