|
|
|
|
- Parcours des données spatiales : utilisation des index spatiaux
Permet de savoir si tout point de la géométrie A se trouve à l'intérieur ou dans le contour de la géométrie B. Dans ce cas, il n'existe aucun point de la géométrie A dans l'extérieur de la géométrie B.
oPolygone2D_1 is Polygon2D
Linestring2DAddPoint(oPolygone2D_1.Outline, -5.00, 3.00)
Linestring2DAddPoint(oPolygone2D_1.Outline, 4.00, 5.00)
Linestring2DAddPoint(oPolygone2D_1.Outline, 4.00, -3.00)
Linestring2DAddPoint(oPolygone2D_1.Outline, -4.00, -3.00)
Linestring2DAddPoint(oPolygone2D_1.Outline, -5.00, 3.00)
oPolygone2D_2 is Polygon2D
Linestring2DAddPoint(oPolygone2D_2.Outline, -2.00, 1.00)
Linestring2DAddPoint(oPolygone2D_2.Outline, 3.00, 1.00)
Linestring2DAddPoint(oPolygone2D_2.Outline, -0.00, -1.00)
Linestring2DAddPoint(oPolygone2D_2.Outline, -2.00, 1.00)
GeometryCoveredBy(oPolygone2D_2, oPolygone2D_1)
GeometryWithin(oPolygone2D_2, oPolygone2D_1)
GeometryCoveredBy(oPolygone2D_1.Outline, oPolygone2D_1)
GeometryWithin(oPolygone2D_1.Outline, oPolygone2D_1)
Sintaxis
<Résultat> = FormeEstCouvert(<Géométrie A> , <Géométrie B>)
<Résultat>: Booléen - Vrai si la géométrie A est couverte par la géométrie B,
- 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 : Observaciones - Cette fonction est identique à la fonction FormeCouvre en inversant les paramètres.
- La fonction FormeEstContenu est similaire à la fonction . Cependant, avec la fonction , il n'est pas nécessaire d'avoir un point de l'intérieur de la géométrie A dans l'intérieur de la géométrie B. Ainsi, un polygone couvre son contour, mais il ne le contient pas.
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 . 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.RubriqueSpatiale, variable_spatiale) où : - Fonction_WLangage correspond à la fonction .
- 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 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. 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 is PolygonGeo
polyGeo.Contour.AjoutePoint(0n48.8187479172765, 0n1.9550104465229536)
polyGeo.Contour.AjoutePoint(0n48.685649220185574, 0n2.023674998054354)
polyGeo.Contour.AjoutePoint(0n48.82612543243871, 0n2.2106580854197566)
polyGeo = GeometryCorrect(polyGeo)
nbEnregs is int
FOR EACH DatasCommunes where GeometryCoveredBy(DatasCommunes.geometry, polyGeo)
Trace(DatasCommunes.NomCommune)
END
Clasificación Lógica de negocio / UI: Lógica de negocio
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|