| Précédent | Niveau supérieur | Suivant |
| 9.10. Fonctions de support d'enum | Sommaire | 9.12. Fonctions et opérateurs pour les adresses réseau |
Les types géométriques point, box,
lseg, line, path,
polygon et circle ont un large ensemble des
fonctions et opérateurs de support natifs, affichés dans Tableau 9.36, Tableau 9.37 et Tableau 9.38.
Tableau 9.36. Opérateurs géométriques
Opérateur Description Exemple(s) |
|---|
Ajoute les coordonnées du deuxième
|
Concatène deux chemins ouverts (renvoie NULL si un des chemins est fermé).
|
Soustrait les coordonnées du deuxième
|
Multiplie chaque point du premier argument avec le second
|
Divise chaque point du premier argument par le deuxième
|
Calcule la longueur totale.
Disponible pour les types
|
Calcule le point central.
Disponible pour les types
|
Renvoie le nombre de points.
Disponible pour les types
|
Calcule le point d'intersection, ou NULL s'il n'y en a pas.
Disponible pour les types
|
Calcule l'intersection de deux boîtes, ou NULL s'il n'y en a pas.
|
Calcule le point le plus proche du premier objet à partir du deuxième
objet. Disponible pour ces paires de types :
(
|
Calcule la distance entre les objets. Disponible pour les sept types
géométriques, pour toutes les combinaisons du
|
Est-ce que le premier objet contient le second ?
Disponible pour ces paires de types :
(
|
Est-ce que le premier objet est contenu dans le second ?
Disponibles pour ces paires de types :
(
|
Est-ce que ces objets se surchargent ? (Un point en commun rend ceci vrai.)
Disponible pour
|
Est-ce que le premier objet est strictement à gauche du second ?
Disponible pour
|
Est-ce que le premier objet est strictement à droite du second ?
Disponible pour
|
Est-ce que le premier objet ne s'étend pas à droite du second ?
Disponible pour
|
Est-ce que le premier objet ne s'étend pas à gauche du second ?
Disponible pour
|
Est-ce que le premier objet se trouve strictement en dessous du second ?
Disponible pour
|
Est-ce que le premier objet se trouve strictement au-dessus du second ?
Disponible pour
|
Est-ce que le premier objet ne s'étend pas au-dessus du second ?
Disponible pour
|
Est-ce que le premier objet ne s'étend pas en dessous du second ?
Disponible pour
|
Est-ce que le premier objet est en-dessous du second (les coins peuvent se toucher) ?
|
Est-ce que le premier objet se trouve au dessus du second (les coins peuvent se toucher) ?
|
Est-ce que ces objets s'intersectent ?
Disponible pour ces paires de types :
(
|
La lign est-elle horizontale ?
|
Les points sont-ils alignés horizontalement (autrement dit, même coordonnée y) ?
|
La ligne est-elle verticale ?
|
Les points sont-ils alignés verticalement (autrement dit, même coordonnée x) ?
|
Les lignes sont-elles perpendiculaires ?
|
Les lignes sont-elles parallèles ?
|
Ces objets sont-ils les mêmes ?
Disponible pour
|
[a] Faire une « Rotation » d'une boîte avec ces opérateurs déplace seulement ses coins : la boîte est toujours considérée avoir des côtés parallèles sur les axes. De ce fait, la taille de la boîte n'est pas préservée, bien qu'une vraie rotation le ferait. |
Notez que l'opérateur « same as », ~=,
représente la notion habituelle d'égalité pour les types
point, box, polygon et
circle. Certains types géométriques ont aussi un opérateur
= mais = compare seulement des
aires égales. Les autres opérateurs de comparaison
scalaires (<= et ainsi de suite), si disponibles
pour ces types, comparent aussi des aires.
Avant PostgreSQL 14, les opérateurs
de comparaison au-dessus / en dessous point
<<| point et point
|>> point étaient respectivement
appelés <^ et >^. Ces
noms sont toujours disponibles, mais sont dépréciés et seront éventuellement
supprimés.
Tableau 9.37. Fonctions géométriques
Fonction Description Exemple(s) |
|---|
Calcule l'aire.
Disponible pour
|
Calcule le point central.
Disponible pour
|
Extrait la diagonale de la boîte sous la forme d'un segment de ligne
(identique à
|
Calcule le diamètre d'un cercle.
|
Calcule la taille verticale d'une boîte.
|
Le chemin est-il fermé ?
|
Le chemin est-il ouvert ?
|
Calcule la longueur totale.
Disponible pour
|
Renvoie le nombre de points.
Disponible pour
|
Convertit le chemin en un chemin fermé.
|
Convertit le chemin en un chemin ouvert.
|
Calcule le rayon du cercle.
|
Calcule la pente d'une ligne tracée entre les deux points.
|
Calcule la taille horizontale d'une boîte.
|
Tableau 9.38. Fonctions de conversion de type géométrique
Fonction Description Exemple(s) |
|---|
Calcule la boîte inscrite dans un cercle.
|
Convertit le point en boîte vide.
|
Convertit deux points (utilisés comme coins) en une boîte.
|
Calcule la boîte englobante d'un polygone.
|
Calcule la boîte englobante de deux boîtes.
|
Calcule le plus petit cercle englobant une boîte.
|
Calcule le cercle à partir de son centre et de son rayon.
|
Convertit un poligône en cercle. Le centre du cercle est la moyenne des positions des points du polygone, et le rayon est la distance moyenne des points du polygone à partir de ce centre.
|
Convertit deux points en une ligne qui les traverse.
|
Extrait la diagonale de la boîte en un segment de ligne.
|
Construit le segment de ligne à partir de deux points finaux.
|
Convertit un polygone en un chemin fermé avec la même liste de points.
|
Calcule un point à partir de ses coordonnées.
|
Calcule le centre d'une boîte.
|
Calcule le centre d'un cercle.
|
Calcule le centre d'un segment de ligne.
|
Calcule le centre d'un polygone (la moyenne des positions des points du polygone).
|
Convertit une boîte en un polygone à 4 points.
|
Convertit un cercle en un polygone à 12 points.
|
Convertit un cercle en un polygone à
|
Convertit un chemin fermé en un polygone avec la même liste de points.
|
Il est possible d'accéder aux deux nombres composants d'un
point comme si le point était un tableau avec les index 0 et
1. Par exemple, si t.p est une colonne
point, alors SELECT p[0] FROM t récupère
la coordonnée X et UPDATE t SET p[1] = ... modifie la
coordonnée Y. De la même façon, une valeur de type box ou
lseg peut être traitée comme un tableau de deux valeurs
point.