Sélectionner selon l’emplacement : relations 3D

Exemple de résultats en 2D et en 3D

L'exemple suivant montre les différents résultats obtenus selon que l'on utilise les relations spatiales Dans une distance (WITHIN_A_DISTANCE dans Python) ou Dans une distance 3D (WITHIN_A_DISTANCE_3D dans Python) avec des données 3D. La couche d'entités en entrée correspond aux chambres (cubes violets) et la couche de sélection au petit cercle jaune. L'opération consiste à répondre à la question "Quelles pièces se trouvent à une certaine distance d'un emplacement x, y, z donné (le point jaune)" ? Le résultat est assez différent selon la Relation utilisée. Si la relation Dans une distance (WITHIN_A_DISTANCE dans Python) est utilisée, toutes les pièces se trouvant à ladite distance (dans les coordonnées x et y uniquement) sont sélectionnées, c'est-à-dire celles situées du rez-de-chaussée au dernier étage.

Résultat de la sélection des pièces se trouvant à une distance donnée du point jaune

En revanche, avec la relation Dans une distance 3D, la distance entre l'emplacement de x,y,z (point jaune) et chaque pièce est calculée en trois dimensions ; ainsi, seules les pièces se trouvant réellement à une distance 3D du point sont sélectionnées.

Résultat de la sélection des pièces se trouvant à une distance 3D du point jaune

Couches en entrée et couches de sélection valides

Les couches qui satisfont l'un des critères suivants sont valides comme entrée et couches de sélection :

  • Couche d'une classe d'entités avec les types de géométrie suivants : point, multi-points, ligne, multipatch, polygone.
  • Couche qui utilise une hauteur de base et/ou une extrusion.
  • Couche désignant un fichier de couche (.lyrx) qui satisfait l'un des critères ci-dessus. Cela peut être utile lors de l'exécution d'une opération dans un script Python autonome.

Optimiser le résultat

Lors de l'utilisation de multipatch, la surface de la géométrie permet d'évaluer si la relation 3D est avérée, que le multipatch soit fermé ou non. Par exemple, lors de l'évaluation de la distance 3D entre une entité ponctuelle donnée et un multipatch tel qu'un tétraèdre, la distance est calculée à la surface de ce dernier, que le point soit contenu ou non dans le tétraèdre.

L'utilisation de la relation Dans une distance 3D sur des données stockées dans un système de coordonnées non projetées (autrement dit, les données stockées dans un système de coordonnées géographiques) peut produire de mauvais résultats pour les raisons suivantes :

  • La conversion de degrés décimaux en unités linéaires n'est pas cohérente dans de grandes étendues géographiques.
  • Les distances globales prises en charge par le système de coordonnées géographiques ne tiennent pas compte de la courbure de la surface de la Terre (toutes les mesures sont faites sur un plan).
Pour obtenir les meilleurs résultats, exécutez l'opération dans un système de coordonnées projetées, afin de minimiser la distorsion de distance dans les données.