Filtrer des entités à l’aide d’ensembles de définition

Lorsque vous ajoutez un jeu de données à une carte ou une scène en tant que couche, vous souhaitez parfois l’utiliser et afficher un sous-ensemble des entités du jeu de données. Exemples :

  • Dans un jeu de données de villes du monde, travailler uniquement avec celles comportant plus d’un million d’habitants.
  • Dans un jeu de données de lignes hydrologiques, travailler uniquement avec les cours d’eau pérennes.
  • Dans un jeu de données de parcelles, travailler uniquement avec celles qui sont en zone commerciale.

Les ensembles de définition permettent de définir un sous-ensemble d’entités d’une couche avec lesquelles travailler en filtrant les entités extraites du jeu de données par la couche. Cela signifie qu’un ensemble de définition a un impact non seulement sur le dessin, mais également sur les entités qui apparaissent dans la table attributaire de la couche, qui peuvent être sélectionnées, étiquetées, identifiées et traitées par les outils de géotraitement.

Si vous voulez restreindre les entités dessinées, mais conserver toutes les entités pour les requêtes et le traitement, envisagez d’utiliser des filtres d’affichage. Les ensembles de définition et les filtres d’affichage peuvent être utilisés ensemble sur une couche, mais souvenez-vous que les ensembles de définition restreignent les entités disponibles dans la couche, alors que les filtres d’affichage limitent uniquement celles qui sont affichées.

Les ensembles de définitions comportent une ou plusieurs clauses. Rédigés en langage SQL, ils sont construits dans le générateur de requêtes. Reportez-vous à la rubrique Écrire une requête dans le générateur de requêtes pour en savoir plus sur l’utilisation des clauses et des requêtes ainsi que sur l’enregistrement et le téléchargement des requêtes à partir de fichiers.

Plusieurs ensembles de définition peuvent être associés à une couche, mais un seul peut être actif à un moment donné. Même si plusieurs ensembles de définition existent pour une couche, ils peuvent tous être inactifs ; aucun ensemble n’est alors appliqué.

Remarque :

Cette rubrique décrit l’utilisation d’ensembles de définition sur une couche d’entités, mais ils peuvent être utilisés de la même manière sur des tables autonomes.

Créer un ensemble de définition pour une couche

Pour créer un ensemble de définition sur une couche, procédez comme suit :

  1. Assurez-vous que la couche est sélectionnée dans la fenêtre Contents (Contenu).
  2. Sous Feature Layer (Couche d’entités), dans l’onglet Data (Données), dans le groupe Definition Query (Ensemble de définition), cliquez sur Lanceur pour ouvrir la boîte de dialogue Layer Properties (Propriétés de la couche) avec l’onglet Definition Query (Ensemble de définition) ouvert.
  3. Cliquez sur New definition query (Nouvel ensemble de définitions).

    Un ensemble est créé ; il porte un nom par défaut et contient une clause unique non terminée.

  4. Choisissez parmi les valeurs des menus pour élaborer la clause. Ces menus et leurs valeurs sont spécifiques des données source sous-jacentes.
  5. Vous pouvez également cliquer sur Add Clause (Ajouter une clause) Ajouter une clause pour ajouter une autre clause à l’ensemble. Sélectionnez les valeurs requises dans les menus de la nouvelle clause. Répétez cette étape pour ajouter des clauses supplémentaires, si nécessaire.
  6. Vous pouvez éventuellement placer le pointeur sur le nom de l’ensemble et cliquer dessus pour le renommer.
  7. Vous pouvez cliquer sur Verify the SQL expression is valid (Vérifier que l’expression SQL est valide) Vérifier que l’expression SQL est valide pour vérifier la requête.
  8. Pour valider et finaliser l’ensemble, cliquez sur Apply (Appliquer).
  9. S’il s’agit du seul ensemble de définition de la couche, il devient l’ensemble de définition actif et il est appliqué immédiatement. S’il existe d’autres ensembles de définition, cliquez sur Set as Active (Définir comme actif) Définir comme actif pour appliquer un ensemble de définition à la couche.

Définir l’ensemble de définition actif

Vous pouvez définir plus d’un ensemble de définition pour une couche ou une table et passer de l’un à l’autre. Un seul ensemble de définition est actif à la fois, sinon aucun ensemble n’est actif. Les ensembles de définition sont stockés en tant que propriétés de la couche.

Pour passer d’un ensemble de définition actif à un autre, procédez comme suit :

  1. Assurez-vous que la couche est sélectionnée dans la fenêtre Contents (Contenu).
  2. Sous Feature Layer (Couche d’entités), dans l’onglet Data (Données), dans le groupe Definition Query (Ensemble de définition), choisissez un ensemble dans le menu Definition Query (Ensemble de définition) pour l’appliquer à la couche.
  3. Il est possible également de définir l’ensemble actif dans la boîte de dialogue Layer Properties (Propriétés de la couche).
    • Cliquez sur Set as Active (Définir comme actif) Définir comme actif pour appliquer cet ensemble à la couche. Tout autre ensemble devient inactif. L’ensemble actif se trouve en bas de la boîte de dialogue Properties (Propriété). Si la liste comporte un grand nombre d’ensembles et que l’ensemble actif n’est pas visible, cliquez sur Show the active definition query (Afficher l’ensemble de définition actif) Afficher l’ensemble de définition actif pour faire défiler la liste jusqu’à lui.
    • Cliquez sur Clear active query (Effacer la requête active) Effacer la requête active pour n’appliquer aucune requête à la couche ou la table. Toutes les requêtes sont conservées par la couche ou la table, mais aucune d’entre elles n’est effectivement appliquée.

Modifier des requêtes existantes

Avec la couche sélectionnée dans la fenêtre Contents (Contenu), sous Feature Layer (Couche d’entités), dans l’onglet Data (Données), dans le groupe Definition Query (Ensemble de définition), cliquez sur Lanceur pour ouvrir la boîte de dialogue Layer Properties (Propriétés de la couche) avec l’onglet Definition Query (Ensemble de définition) ouvert. Pour modifier un ensemble de définition, placez le pointeur dessus et effectuez l’une des opérations suivantes :

  • Pour modifier, ajouter des clauses à un ensemble de définition ou en supprimer, cliquez sur Edit (Mettre à jour) dans la cellule de la requête.
    • Pour mettre à jour une clause d’une requête, modifiez les valeurs comme vous le souhaitez.
    • Pour retirer une clause de la requête, cliquez sur Remove Clause (Supprimer la clause) Supprimer la clause.
    • Pour ajouter une clause à la requête, cliquez sur Add Clause (Ajouter une clause) Ajouter une nouvelle clause.

    Cliquez sur Apply (Appliquer) pour appliquer les modifications à l’ensemble de définition.

  • Pour supprimer l’ensemble de définition de la couche ou de la table, passez le pointeur de la souris sur la cellule de l’ensemble de définition et cliquez sur Remove definition query (Supprimer l’ensemble de définition) Supprimer.
  • Pour renommer un ensemble de définition, cliquez sur son nom et entrez-en un nouveau.
  • Pour exporter la syntaxe de la requête vers un fichier d’expression de requête (fichier .exp), cliquez sur Save (Enregistrer) Enregistrer.
  • Pour remplacer la requête actuelle par une autre requête à partir d’un fichier d’expression de requête (fichier .exp), cliquez sur Load (Charger) Charger la requête.

Définir des ensembles de définition pour plusieurs couches à la fois

Si plusieurs couches partagent des ensembles de définition avec un nom commun, même si le contenu des requêtes n’est pas identique, les requêtes peuvent être activées pour toutes les couches en même temps. Cela signifie que vous pouvez générer un certain nombre de requêtes associées dans certains cas et les appliquer simultanément. Vous pouvez ensuite passer d’un ensemble de requêtes à un autre selon tel ou tel scénario, si nécessaire.

Pour appliquer simultanément des ensembles de définition avec un nom commun à plusieurs couches, procédez comme suit :

  1. Assurez-vous que les couches sont sélectionnées dans la fenêtre Contents (Contenu).
  2. Sous Feature Layer (Couche d’entités), dans l’onglet Data (Données), dans le groupe Definition Query (Ensemble de définition), choisissez un ensemble dans le menu Definition Query (Ensemble de définition) pour l’appliquer à la couche. Seuls les ensembles de définitions avec un nom commun à toutes les couches sélectionnées sont visibles.

Partage de couches comportant des ensembles de définitions

Lorsqu’une couche est partagée en tant que couche d’entités ou au sein d’une couche d’images de carte, seul l’ensemble de définition actif est préservé et appliqué. Les autres ensembles de définitions sont ignorés.

Rubriques connexes