|
|
|
|
|
- Cas particuliers
- Parcours des données spatiales : utilisation des index spatiaux
GéométrieChevauche (Fonction) En anglais : GeometryOverlap Permet de savoir si deux géométries se chevauchent. Les conditions nécessaires pour que deux géométries se chevauchent sont les suivantes : - Les géométries ont la même dimension (par exemple, deux géométries de type polygone en 2 dimensions).
- Les intérieurs des géométries ont une intersection non vide de la même dimension que les géométries considérées.
- Chaque géométrie possède au moins un point à l'intérieur de l'autre géométrie.
oPolygone2D_1 est un Polygone2D
Polyligne2DAjoutePoint(oPolygone2D_1.Contour, -4.38, 6.50)
Polyligne2DAjoutePoint(oPolygone2D_1.Contour, -6.81, 1.51)
Polyligne2DAjoutePoint(oPolygone2D_1.Contour, -1.42, -0.23)
Polyligne2DAjoutePoint(oPolygone2D_1.Contour, 0.89, 4.19)
Polyligne2DAjoutePoint(oPolygone2D_1.Contour, -4.38, 6.50)
oPolygone2D_1 = GéométrieCorrige(oPolygone2D_1)
oPolygone2D_2 est un Polygone2D
Polyligne2DAjoutePoint(oPolygone2D_2.Contour, 2.35, 7.52)
Polyligne2DAjoutePoint(oPolygone2D_2.Contour, -3.01, 4.47)
Polyligne2DAjoutePoint(oPolygone2D_2.Contour, 1.82, 2.10)
Polyligne2DAjoutePoint(oPolygone2D_2.Contour, 2.35, 7.52)
oPolygone2D_2 = GéométrieCorrige(oPolygone2D_2)
Trace("GéométrieChevauche(oPolygone2D_1, oPolygone2D_2) = " + GéométrieChevauche(oPolygone2D_1, oPolygone2D_2))
Syntaxe
<Résultat> = GéométrieChevauche(<Géométrie A> , <Géométrie B>)
<Résultat> : Booléen - Vrai si les géométries se chevauchent,
- Faux dans le cas contraire.
En cas d'erreur, la variable ErreurDétectée est à Vrai. Pour connaître le libellé de l'erreur, utilisez la fonction ErreurInfo avec la constante errMessage.
<Géométrie A> : Variable correspondant à des données spatiales Nom de la variable correspondant à la première géométrie manipulée. Cette géométrie peut correspondre à un des types de variables suivants : <Géométrie B> : Variable correspondant à des données spatiales Nom de la variable correspondant à la seconde géométrie manipulée. Cette géométrie peut correspondre à un des types de variables suivants : Remarques Cas particuliers - Si la géométrie A est incluse dans la géométrie B, leur intersection est égale à la géométrie A. Dans ce cas, la fonction GéométrieChevauche renvoie Faux.
- Si les paramètres <Géométrie A> et <Géométrie B> sont identiques, la fonction GéométrieChevauche renvoie Faux.
- Si les géométries considérées sont des multipolygones, il suffit que l'un des polygones de la géométrie A chevauche un des polygones de la géométrie B pour que la fonction GéométrieChevauche renvoie Vrai.
Parcours des données spatiales : utilisation des index spatiaux Il est possible d'effectuer un parcours sur un fichier de données avec un filtre concernant des données spatiales. Par exemple, le filtre utilisé peut être basé sur le résultat de la fonction GéométrieChevauche. Pour optimiser ce filtre sur des données spatiales, il est recommandé d'utiliser les index spatiaux via la syntaxe suivante : POUR TOUT Fichier AVEC Fonction_WLangage(Fichier.Rubrique_spatiale, Variable_spatiale) où : - Fonction_WLangage correspond à la fonction GéométrieChevauche.
- Rubrique_spatiale correspond à une rubrique spatiale du fichier de données. Cette rubrique doit :
- être de type "Données géographiques" ou de type "Données géométriques".
- être définie comme une "Clé spatiale".
- Variable_spatiale correspond à une variable spatiale donnée, utilisée pour la comparaison avec la rubrique spatiale. Cette variable est par exemple, une variable de type PolygoneGéo, Polygone2D, etc.
Remarque : Bien que disponible, la syntaxe "POUR TOUT Fichier" n'est pas recommandée car cette syntaxe n'utilisant pas les index spatiaux, ses performances ne sont pas optimisées. En effet, dans ce cas, tout le fichier de données est parcouru : les index spatiaux ne sont pas utilisés. POUR TOUT Fichier SI Fonction_WLangage(Fichier.Rubrique_spatiale, Variable_spatiale) = Vrai ALORS ... FIN FIN Exemple :
polyGeo est un PolygoneGéo
PolyligneGéoAjoutePoint(polyGeo.Contour, 0n48.8187479172765, 0n1.9550104465229536)
PolyligneGéoAjoutePoint(polyGeo.Contour, 0n48.685649220185574, 0n2.023674998054354)
PolyligneGéoAjoutePoint(polyGeo.Contour, 0n48.82612543243871, 0n2.2106580854197566)
polyGeo = GéométrieCorrige(polyGeo)
nbEnregs est un entier
POUR CHAQUE DatasCommunes AVEC GéométrieChevauche(DatasCommunes.rub_Geometrie, polyGeo)
Trace(DatasCommunes.NomCommune)
FIN
Classification Métier / UI : Code métier
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|