ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

New WINDEV, WEBDEV and WINDEV Mobile 2024 feature!
Help / WLanguage / Managing databases / HFSQL / 
  • Propriétés spécifiques à la description des variables de type Forme
  • Fonctions manipulant le type Forme
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
Forme (Type of variable)
In french: Forme
Le type Géométrie permet stocker n'importe quel type de géométrie : un point, un polygone, etc.
Ainsi, une fonction WLangage pouvant renvoyer un point ou un polygone selon la valeur de ses paramètres peut avoir une variable de type Géométrie comme type de retour.
Lorsqu'une variable de type Géométrie est déclarée, elle est vide jusqu'à sa première affectation.
Remarque : Pour plus de détails sur la déclaration de ce type de variable et l'utilisation des propriétés WLangage, consultez Déclaration d'une variable.
Example
// Exemple 1 : récupération d'un point sans vérification
f is Geometry()
// Récupération de la géométrie
f = GetPoint() // GetPoint est une procédure permettant de récupérer un point
p is Point2D = f
// Exemple 2 : vérification du type de la géométrie : on s'assure d'avoir un point avant de tenter la conversion
f is Geometry 
// Récupération de la géométrie ...
// Vérification de la géométrie
IF f.Type = gtPoint2D THEN
   monPoint2D is Point2D
   monPoint2D = f
   //...
END
// Exemple 3 : il est pas possible de changer le type d'une géométrie
point is Point2D
polyligne is Linestring2D
f is Geometry // Géométrie est vide et peut prendre n'importe quel type de géométrie
f = point // Géométrie contient maintenant un Point2D.
f = polyligne // Géométrie contient maintenant un Polyligne2D.
// Exemple 4 : récupération d'un polygone géographique sans vérification
// On peut se passer de la déclaration d'une géométrie intermédiaire et 
// directement convertir le résultat d'une fonction

f = GetGéométrie() // GetGéométrie est une procédure permettant de récupérer une géométrie

IF f.Type = gtPolygonGeo THEN
   polygone is PolygonGeo
   polygone = f
   // ...
END
// Exemple 5 : si on ne sait pas quel est le type de la géométrie que l'on récupère,
// on peut coder un comportement par type de géométrie
géométrieInconnue is Geometry
géométrieInconnue = GetGéométrieInconnue() 
// GetGéométrieInconnue est une procédure permettant de récupérer une géométrie
SWITCH géométrieInconnue.Type 
	CASE gtPoint2D :
	       // ...
	CASE gtLinestring2D :
	       // ...
	CASE gtPolygon2D :
	       // ...
	OTHER CASE:
	       // ...
END
Properties

Propriétés spécifiques à la description des variables de type Forme

Les propriétés suivantes peuvent être utilisées pour manipuler une variable de type Forme :
Nom de la propriétéType manipuléEffet
TypeConstante de type EntierType de la géométrie en cours :
  • tgInvalide : Type invalide.
    Remarque : Jusqu'à la version 2024 Update 2, cette constante se nommait tfInvalide.
  • tgMultiPoint2D : Ensemble de points 2D.
    Remarque : Jusqu'à la version 2024 Update 2, cette constante se nommait tfMultiPoint2D.
  • tgMultiPointGéo : Ensemble de points géographiques.
    Remarque : Jusqu'à la version 2024 Update 2, cette constante se nommait tfMultiPointGéo.
  • tgMultiPolygone2D : Ensemble de polygones 2D.
    Remarque : Jusqu'à la version 2024 Update 2, cette constante se nommait tfMultiPolygone2D.
  • tgMultiPolygoneGéo : Ensemble de polygones géographiques.
    Remarque : Jusqu'à la version 2024 Update 2, cette constante se nommait tfMultiPolygoneGéo.
  • tgMultiPolyligne2D : Ensemble de polylignes 2D.
    Remarque : Jusqu'à la version 2024 Update 2, cette constante se nommait tfMultiPolyligne2D.
  • tgMultiPolyligneGéo : Ensemble de polylignes géographiques.
    Remarque : Jusqu'à la version 2024 Update 2, cette constante se nommait tfMultiPolyligneGéo.
  • tgPoint2D : Point en 2 dimensions, identifié par des coordonnées X et Y dans le plan cartésien.
    Remarque : Jusqu'à la version 2024 Update 2, cette constante se nommait tfPoint2D.
  • tgPointGéo : Point géographique, identifié par une latitude et une longitude.
    Remarque : Jusqu'à la version 2024 Update 2, cette constante se nommait tfPointGéo.
  • tgPolygone2D : Ensemble de segments droits qui se suivent et qui se rejoignent pour former un polygone.
    Remarque : Jusqu'à la version 2024 Update 2, cette constante se nommait tfPolygone2D.
  • tgPolygoneGéo : Ensemble de segments courbés qui se suivent et qui se rejoignent pour former un polygone (la courbe de ces segments respecte la courbure de la Terre).
    Remarque : Jusqu'à la version 2024 Update 2, cette constante se nommait tfPolygoneGéo.
  • tgPolyligne2D : Ensemble de segments droits qui se suivent.
    Remarque : Jusqu'à la version 2024 Update 2, cette constante se nommait tfPolyligne2D.
  • tgPolyligneGéo : Ensemble de segments courbés qui se suivent (la courbe de ces segments respecte la courbure de la Terre).
    Remarque : Jusqu'à la version 2024 Update 2, cette constante se nommait tfPolyligneGéo.
Cette propriété est disponible en lecture uniquement.
Remarks

Fonctions manipulant le type Forme

Les fonctions manipulant des variables de type Forme sont les suivantes :
New in version 2024
ConvexEnvelopeShape
Calculates the convex envelope of the specified Geometry.
New in version 2024
CorregeForm
Allows you to obtain a corrected version of the specified Geometry.
New in version 2024
EqualForm
Finds out whether two Geometry s are spatially equal, i.e. whether the first Geometry is included in the second, and whether the second is included in the first.
New in version 2024
FormAire
Calculate the area of a given Geometry.
New in version 2024
FormContains
Determines whether an Geometry A contains an Geometry B.
New in version 2024
FormDeserializeWKT2D
Builds a 2-dimensional Geometry from a textual representation in WKT format.
New in version 2024
FormDeserializeWKTGeo
Builds a geographic Geometry from a textual representation in WKT format.
New in version 2024
FormDifference
Returns the Geometry Receiver corresponding to the difference between two Geometry s.
New in version 2024
FormDisjoint
Determines whether two geometries are disjoint, i.e. whether their intersection is empty.
New in version 2024
FormIsValid
Checks whether the specified Geometry is valid within the meaning of the OGC standard.
New in version 2024
FormSerializeWKT
Serialize an Geometry in Well Known Text (WKT) format.
New in version 2024
FormUnion
Returns the Geometry Receiver corresponding to the union between two Geometry s.
New in version 2024
GeometryCover
Permet de savoir si tout point de la forme B se trouve à l'intérieur ou dans le contour de la forme A. C'est équivalent à renvoyer vrai s'il n'existe aucun point de B dans l'extérieur de A.
New in version 2024
GeometryCoveredBy
Permet de savoir si tout point de la forme A se trouve à l'intérieur ou dans le contour de la forme B. C'est équivalent à renvoyer vrai s'il n'existe aucun point de A dans l'extérieur de B.
New in version 2024
GeometryCross
Permet de savoir si deux formes se croisent. La notion de croisement est très spécifique. Deux formes se croisent si : - Les intérieurs de la forme A et de la forme B ont au moins un point en commun. - L'intérieur de A n'a pas tous ses points dans l'intérieur de B, et vice-versa : A ne doit pas contenir B et B ne doit pas contenir A. - L'intersection des intérieurs doit avoir une dimension inférieure au maximum de la dimension des arguments.
Exemple 1 : 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 arguments (2). Toutefois, ces polygones se chevauchent et s'intersectent.
Exemple 2 : une polyligne passant au travers d'un polygone mais ayant des points hors de ce polygone croise le polygone, car l'intersection entre les deux formes est une polyligne, dont la dimension est inférieure à celle du polygone.
New in version 2024
GeometryDistance
Calcule la distance entre deux formes. Pour les formes autres que les points, cette distance correspond à la distance entre les points les plus proches que l'on puisse trouver entre les deux formes.
Pour les formes 2D, calcule la distance en utilisant la norme euclidienne (Pythagore). La distance est renvoyée dans la même unité que celle donnée aux coordonnées des points.
Pour les formes géographiques, utilise le modèle approché de la Terre WGS84 pour prendre en compte sa courbure. La distance est renvoyée en mètres.
New in version 2024
GeometryIntersect
Vérifie si deux formes ont une intersection non vide. Cette fonction ne renvoie pas la forme résultant de l'intersection, mais seulement si l'intersection existe ou non. Elle est donc beaucoup plus rapide que la fonction de calcul d'intersection entre deux formes.
New in version 2024
GeometryIntersection
Calcule l'intersection entre la première forme passée en paramètre et la seconde. Cela renvoie une nouvelle forme, qui contient une collection de formes d'un type donné : MultiPoint, MultiPolyligne, ou MultiPolygone.
Dans le cas où l'intersection entre deux formes est constituée d'un seul élément, il s'agit tout de même d'une collection, avec un seul élément. Dans le cas où l'intersection est vide (si les géométries passées en paramètre sont disjointes), la collection renvoyée est vide. Dans le cas où le résultat de l'intersection est disjoint (par exemple en faisant l'intersection de deux polygones en "U"), la collection contient plusieurs éléments.
Si le type des formes passées en paramètres est connu, alors le type du résultat est également pré-déterminé. La plupart des applications géospatiales ne travaillant pas avec des colonnes de données hétérogènes (rubrique de type "Forme" autorisant de mixer des points, lignes, polygones etc au sein d'une même rubrique), il n'y a donc en général pas besoin de vérifier le type des formes renvoyées par la fonction.
New in version 2024
GeometryOverlap
Permet de savoir si les formes se chevauchent, c'est-à-dire si elles ont la même dimension et que leurs intérieurs ont une intersection non vide de la même dimension que les formes passées en paramètres, différente des deux paramètres. Il faut de plus que chaque forme ait au moins un point à l'intérieur de l'autre.
New in version 2024
GeometrySerializeDSV
Sérialise une forme géométrique en utilisant le format DSV spécifié. Ce format permet de choisir quels éléments textuels séparent les différents éléments géométriques dans le texte.
Important : la chaîne renvoyée par cette fonction est TOUJOURS une chaîne ANSI ne pouvant contenir que des caractères ASCII. Il en va de même des séparateurs, qui doivent tous être des chaînes ANSI avec seulement des caractères ASCII.
New in version 2024
GeometryTouch
Renvoie vrai si les deux formes se touchent.
Deux formes se touchent si les contours des deux formes ont une intersection, mais que les intérieurs n'ont *pas* d'intersection. Deux formes se touchent si elles ont un point ou un segment de leurs contours en commun.
Voir les images ci-dessous pour un exemple de chacune des trois situations.
New in version 2024
GeometryWithin
Renvoie vrai si la forme A est complètement dans la forme B, c'est-à-dire que B contient complètement A. En détail : - Il n'existe pas de point de A dans l'extérieur de B : tout point de A est soit dans l'intérieur de B, soit dans son contour. - Il existe au moins un point de l'intérieur de A dans l'intérieur de B.
New in version 2024
PerimeterForm
Calculates the perimeter of a given Geometry (Polygon or multiPolygon).
New in version 2024
ShapeLength
Calculate the length of a given Geometry.
New in version 2024
SymmetricDifferenceForm
Calculate the symmetrical difference between two geometries.
Minimum version required
  • Version 2024
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 03/27/2024

Send a report | Local help