ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

New WINDEV, WEBDEV and WINDEV Mobile 2024 feature!
Help / WLanguage / Managing databases / HFSQL / 
  • Exemples
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
GeometryCross (Function)
In french: FormeCroise
Permet de savoir si deux géométries se croisent.
Pour que deux géométries se croisent :
  • Les intérieurs de la géométrie A et de la géométrie B ont au moins un point en commun.
  • L'intérieur de la géométrie A n'a pas tous ses points dans l'intérieur de la géométrie B, et vice-versa : la géométrie A ne doit pas contenir la géométrie B et la géométrie B ne doit pas contenir la géométrie A.
  • L'intersection des intérieurs doit avoir une dimension inférieure au maximum de la dimension des géométries manipulées.
Example
oPolygone2D_1 is Polygon2D
Linestring2DAddPoint(oPolygone2D_1.Outline, -2.00, 1.00)
Linestring2DAddPoint(oPolygone2D_1.Outline, 2.00, 1.00)
Linestring2DAddPoint(oPolygone2D_1.Outline, 2.00, -1.00)
Linestring2DAddPoint(oPolygone2D_1.Outline, -2.00, -1.00)
// Ajout du dernier point (identique au premier)
Linestring2DAddPoint(oPolygone2D_1.Outline, -2.00, 1.00)
// Corrige la géométrie créée
oPolygone2D_1 = GeometryCorrect(oPolygone2D_1)

oPolyligne is Linestring2D
Linestring2DAddPoint(oPolyligne, 0.00, 2.00)
Linestring2DAddPoint(oPolyligne, -2.00, -2.00)
// Corrige la géométrie créée
oPolyligne = GeometryCorrect(oPolyligne)

// On a bien un croisement entre la polyligne et le premier polygone
Trace(GeometryCross(polyligne, polygone1))
Syntax
<Résultat> = GéométrieCroise(<Géométrie A> , <Géométrie B>)
<Résultat>: Booléen
  • Vrai si la géométrie A croise 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 :
Remarks

Exemples

Exemple 1 : Croisement de deux polygones :
Deux polygones (qui sont donc de dimension 2) ayant une partie de leur intérieur en commun ne se croisent pas, car leur intersection est également un polygone, dont la dimension est égale à la dimension des deux géométries (2). Toutefois, ces polygones se chevauchent et s'intersectent.
Dans ce cas :
  • la fonction GeometryCross renvoie Faux.
  • une erreur non fatale est levée lorsque la fonction GeometryCross est appelée avec deux polygones.
Exemple 2 : Croisement d'une polyligne et d'un polygone :
Une polyligne passant au travers d'un polygone mais ayant des points hors de ce polygone, croise le polygone. En effet, l'intersection entre les deux géométries est une polyligne, dont la dimension est inférieure à celle du polygone.
Exemple :
// Définition d'un triangle délimitant une zone géographique
// Mémorisation de ce triangle dans une variable de type PolygoneGéo 
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)

// Recherche des communes qui ont du territoire dans le triangle ciblé
nbEnregs is int
FOR EACH DatasCommunes where GeometryCross(DatasCommunes.geometry, polyGeo) 
	// Nom de la commune dans une trace
	Trace(DatasCommunes.NomCommune)
END
Business / UI classification: Business Logic
Component: wd290hf.dll
Minimum version required
  • Version 2024
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 03/29/2024

Send a report | Local help