Chapitre 6. Référence des fonctions PostGIS


Les fonctions listées ci-dessous font partie de celles qu'un utilisateur PostGIS utilise couramment. Il existe d'autres fonctions qui servent à la manipulation d'objets PostGIS mais qui ne sont d'aucune utilité à l'utilisateur Lambda.

 Table des matières

6.1. Fonctions OpenGIS
6.1.1. Fonctions de gestion
6.1.2. Fonctions "relationelles"
6.1.3. Fonctions de traitement géométrique
6.1.4. Accès aux caractéristiques géométriques
6.1.5. Constructeurs géométriques
6.2. Extensions PostGIS
6.2.1. Fonctions de gestion
6.2.2. Opérateurs
6.2.3. Fonctions de mesure
6.2.4. Extraction d'informations géométriques
6.2.5. Constructeurs géométriques
6.2.6. Éditeur géométriques
6.2.7. Mise en référence linéaire
6.2.8. Fonctions diverses
6.2.9. Support des transactions longues
6.3. Fonctions SQL-MM
6.4 Fonctions ArcSDE

6.1. Fonctions OpenGIS


haut de la page | table des matières

6.1.1. Fonctions de gestion

AddGeometryColumn(varchar, varchar, varchar, integer, varchar, integer)

Syntax : AddGeometryColumn(<nom_du_schema>, <nom_de_la_table>, <nom_de_la_colonne>, <srid>, <type>, <dimension>). Ajouter une colonne géométrique aux attributs d'une table existante. Le nom du schéma est le nom du schéma de la table (inutilisé pour les installations de PostgreSQL ne supportant pas les schémas). Le SRID doit être une valeur entière faisant référence à une entrée de la table spatial_ref_sys. Le type doit être une chaine de caractères en majuscule correspondant au type géométrique, par exemple, POLYGON ou MULTILINESTRING.

DropGeometryColumn(varchar, varchar, varchar)

Syntax : DropGeometryColumn(<nom_du_schema>, <nom_de_la_table>, <nom_de_la_colonne>). Supprimer une colonne géométrique d'une table spatiale. Notez que le nom_du_schéma devra correspondre au champ f_schema_name du tuple correspondant dans la table geometry_columns.

SetSRID(geometry, integer)

Attribut au SRID sur une géométrie une valeur entière particulière. Utile pour construire des cadres limites pour des requêtes.

haut de la page | table des matières

6.1.2. Fonctions "relationelles"

Distance(geometry, geometry)

Renvoie la distance cartésienne entre deux géométries dans l'unité de projection.

Equals(geometry, geometry)

(Effectué par le module GEOS) : retourne 1 (vrai) si les géométries passées en paramètres sont "spatialement égales". Utilisez ceci pour un meilleur résultat que l'opération '='. equals('LINESTRING(0 0, 10 10)','LINESTRING(0 0, 5 5, 10 10)') est vrai.
OGC SPEC s2.1.1.2

Disjoint(geometry, geometry)

(Effectué par le module GEOS) : retourne 1 (vrai) si les géométries sont spatialement disjointes.
Ne pas appeler avec une GeometryCollection en argument.
NOTE : c'est la version "permissive" qui retourne un booléen, pas un entier.
OGC SPEC s2.1.1.2 //s2.1.13.3 - a.Relate(b, 'FF*FF****')

Intersects(geometry, geometry)

(Effectué par le module GEOS) : retourne 1 (vrai) si les géométries "s'intersectent spatialement"
Ne pas appeler avec une GeometryCollection en argument.
NOTE : c'est la version "permissive" qui retourne un booléen, pas un entier.
OGC SPEC s2.1.1.2 //s2.1.13.3 - Intersects(g1, g2 ) --> Not (Disjoint(g1, g2 ))

Touches(geometry, geometry)

(Effectué par le module GEOS) : retourne 1 (vrai) si les géométries se "touchent spatialement".
Ne pas appeler avec une GeometryCollection en argument.
NOTE : c'est la version "permissive" qui retourne un booléen, pas un entier.
OGC SPEC s2.1.1.2 // s2.1.13.3- a.Touches(b) -> (I(a) intersection I(b) = {empty set} ) and (a intersection b) not empty

Crosses(geometry, geometry)

(Effectué par le module GEOS) : retourne 1 (vrai) si les géométries se "croisent spatialement".
Ne pas appeler avec une GeometryCollection en argument.
NOTE : c'est la version "permissive" qui retourne un booléen, pas un entier.
OGC SPEC s2.1.1.2 // s2.1.13.3 - a.Relate(b, 'T*T******')

Within(geometry A, geometry B)

(Effectué par le module GEOS) : retourne 1 (vrai) si la géométrie A est "spatialement inclue" dans la géométrie B.
Ne pas appeler avec une GeometryCollection en argument.
NOTE : c'est la version "permissive" qui retourne un booléen, pas un entier.
OGC SPEC s2.1.1.2 // s2.1.13.3 - a.Relate(b, 'T*F**F***')

Overlaps(geometry, geometry)

(Effectué par le module GEOS) : retourne 1 (vrai) si les géométries se superposent spatialement.
Ne pas appeler avec une GeometryCollection en argument.
NOTE : c'est la version "permissive" qui retourne un booléen, pas un entier.
OGC SPEC s2.1.1.2 // s2.1.13.3

Contains(geometry A, geometry B)

(Effectué par le module GEOS) : retourne 1 (vrai) si la géométrie A "contient spatialement" la géométrie B.
Ne pas appeler avec une GeometryCollection en argument.
NOTE : c'est la version "permissive" qui retourne un booléen, pas un entier.
OGC SPEC s2.1.1.2 // s2.1.13.3 - same as within(geometry B, geometry A)


Relate(geometry, geometry, intersectionPatternMatrix)

(Effectué par le module GEOS) : retourne 1 (vrai) si cette géométries est spatialement reliée à une autre géométrie, en testant l'intersections entre l'intérieur, la limite et l'extérieur des deux géométries comme spécifié par les valeurs dans l'intersectionPatternMatrix.
Ne pas appeler avec une GeometryCollection en argument.
NOTE : c'est la version "permissive" qui retourne un booléen, pas un entier.
OGC SPEC s2.1.1.2 // s2.1.13.3

Relate(geometry, geometry)

(Effectué par le module GEOS) : retourne la DE-9IM (la neuvième matrice d'intersection dimentionellement étendue)
Ne pas appeler avec une GeometryCollection en argument.
NOTE : c'est la version "permissive" qui retourne un booléen, pas un entier.
pas dans les specs de l'OGC, mais implémenté. voir s2.1.13.2

haut de la page | table des matières

6.1.3. Fonctions de traitement géométrique

Centroid(geometry)

Renvoie le barycentre de l'entité géométrique sous forme de point. Le calcul sera plus précis si vous utilisez le module GEOS (mis en place au moment de la compilation).

Area(geometry)

Renvoie la superficie de l'entité géométrique s'il s'agit d'un polygone ou d'un multi-polygone.

Length(geometry)

Renvoie la longueur d'un segment dans son système de référencement courant. Synonyme de length2d().
OGC SPEC 2.1.5.1

PointOnSurface(geometry)

Renvoie un point situé en surface.
Implémenté grâce à GEOS.
OGC SPEC 3.2.14.2 and 3.2.18.2 -

Boundary(geometry)

Renvoie le contour fermé du graphe de cet objet géométrique (geometry). Le graphe (combinatorial boundary) se définit comme décrit aux sections 3.12.3.2 des spécifications OGC. Comme le résultat de cette opération est un contour fermé, et par conséquent topologiquement fermé, le contour résultant peut se représenter au moyen des primitives géométriques décrites à la section 3.1.2.2. des spécifications OGC.
Exécuté par le module GEOS.
OGC SPEC s2.1.1.1

Buffer(geometry, double, [integer])

Renvoie un objet géométrique qui représente tous les points dont la distance à l'objet géométrique est inférieure ou égale à la distance fixée. Les calculs se font dans le système de référencement courant de cet objet géométrique. Le troisième paramètre optionnel fixe le nombre de segments à utiliser pour fournir une approximation du cercle quadratique (par défaut 8 ).
Exécuté par le module GEOS.
Ne l'appelez jamais avec une GeometryCollection en argument.
OGC SPEC s2.1.1.3

ConvexHull(geometry)

Renvoie un objet de type geometry qui représente la partie convexe de la géométrie passée en argument.
Exécuté par le module GEOS.
OGC SPEC s2.1.1.3

Intersection(geometry, geometry)

Renvoie un objet géométrique qui représente l'ensemble d'intersection des objets géométriques désignés.
Exécuté par le module GEOS.
Ne l'appelez jamais avec une GeometryCollection en argument
OGC SPEC s2.1.1.3

SymDifference(geometry A, geometry B)

Renvoie un objet géométrique qui représente l'ensemble d'exclusion de l'objet géométrique A avec l'objet géométrique B.
Ne l'appelez jamais avec une GeometryCollection en argument.
OGC SPEC s2.1.1.3

Difference(geometry A, geometry B)

Renvoie un objet géométrique qui représente l'ensemble de différence entre l'objet géométrique A et l'objet géométrique B.
Exécuté par le module GEOS.
Ne l'appelez jamais avec une GeometryCollection en argument.
OGC SPEC s2.1.1.3

GeomUnion(geometry, geometry)

Renvoie un objet géométrique qui représente l'ensemble d'union des objets géométriques désignés.
Exécuté par le module GEOS.
Ne l'appelez jamais avec une GeometryCollection en argument.
NOTE : initialement nommé "union", cette fonction a été renommé GeomUnion car Union est un mot-clef SQL.
OGC SPEC s2.1.1.3

GeomUnion(geometry set)

Renvoie un objet géométrique qui représente l'union de l'ensemble des objets géométriques pour un ensemble donné.
Exécuté par le module GEOS.
Ne l'appelez jamais avec une GeometryCollection en argument.
Non défini de façon explicite dans les OGC SPEC

MemGeomUnion(geometry set)

Identique à la fonction ci-dessus, mais travaille en utilisant moins de mémoire et plus de temps de calcul du processeur.

haut de la page | table des matières

6.1.4. Accès aux caractéristiques géométriques

AsText(geometry)

Renvoie la représentation textuelle de l'objet géométrique. Par exemple : POLYGON(0 0,0 1,1 1,1 0,0 0)
OGC SPEC s2.1.1.1

AsBinary(geometry)

Renvoie la géométrie au format binaire de l'OGC, en utilisant l'encodage endian (small endian/big endian) du serveur sur lequel la base de données tourne. C'est utile dans le cas de parseurs binaires, pour extraire des données de la base sans avoir à les convertir en chaines de caractères.
OGC SPEC s2.1.1.1 - voir aussi asBinary(,'XDR') et asBinary(,'NDR')

SRID(geometry)

Renvoie l'entier SRID du système de référence spatial de l'objet géométrique.
OGC SPEC s2.1.1.1

Dimension(geometry)

La dimension propre à l'objet géométrique, qui doit être inférieure ou égale à la dimension de ses coordonnées. OGC SPEC s2.1.1.1 - renvoie 0 pour des points, 1 pour des lignes, 2 pour des polygones, et la plus grande dimension trouvée parmi les composants d'une GEOMETRYCOLLECTION.

select dimension('GEOMETRYCOLLECTION(LINESTRING(1 1,0 0),POINT(0 0)');

 dimension
-----------
 1
Envelope(geometry)

Renvoie un POLYGON représentant le cadre limite de l'objet géométrique.
OGC SPEC s2.1.1.1 - Le cadre limite minimale de cet objet géométrique, retournée sous forme de géométrie. Le polygone est défini par les angles du cadre limite ((MINX, MINY), (MAXX, MINY), (MAXX, MAXY), (MINX, MAXY), (MINX, MINY)).
NOTE : PostGIS ajoutera des coordonnées Zmin/Zmax aussi.

IsEmpty(geometry)

Renvoie vrai si la géométrie est vide. Si c'est vrai, Geometry représente alors l'ensemble vide - i.e. GEOMETRYCOLLECTION(EMPTY).
OGC SPEC s2.1.1.1

IsSimple(geometry)

Renvoie vrai si l'objet geometry ne comporte pas d'anomalies, telle qu'une auto-intersection ou une auto-tangence de l'objet.
Exécuté par le module GEOS
OGC SPEC s2.1.1.1

IsClosed(geometry)

Renvoie vrai si les points de départ et d'arrivée de l'objet géométrique coïncident.

IsRing(geometry)

Renvoie vrai si le contour est fermé (StartPoint ( ) = EndPoint ( )) et si le contour est simple (ne passe pas plus d'une fois par le même point).
Exécuté par le module GEOS
OGC spec 2.1.5.1

NumGeometries(geometry)

Si la géométrie est une GEOMETRYCOLLECTION (or MULTI*) renvoie le nombre d'objets géométriques, autrement renvoie NULL.

GeometryN(geometry,int)

Renvoie le nième objet géométrique si la géométrie est une GEOMETRYCOLLECTION, MULTIPOINT, MULTILINESTRING ou MULTIPOLYGON.
Sinon, renvoie NULL.
Note : l'index débute à 1conformément aux spécifications OGC depuis la version 0.8.0. Les versions antérieures débutaient à 0.

NumPoints(geometry)

Trouve et renvoie le nombre de points de la première ligne géométrique. Renvoie NULL s'il n'y a pas de ligne dans la géométrie.

PointN(geometry,integer)

Renvoie le nième point de la première ligne de la géométrie. Renvoie NULL s'il n'y a pas de ligne dans la géométrie.

Note : l'index débute à 1 conformément aux spécifications OGC depuis la version 0.8.0. Les versions antérieures débutaient à 0.

ExteriorRing(geometry)

Renvoie le pourtour extérieur de la géométrie d'un polygone. Retourne NULL si l'objet n'est pas un polygone.

NumInteriorRings(geometry)

Retourne le nombre de pourtours intérieurs du premier polygone de la géométrie. Renvoie NULL s'il n'y a aucun polygone dans la géométrie.

NumInteriorRing(geometry)

Équivalent à NumInteriorRings(geometry). Les spécifications OpenGIS donnent les deux appellations sans lever l'ambiguïté sur le nom réel de la fonction, nous fournissons par conséquent les deux appellations.

InteriorRingN(geometry,integer)

Renvoie le nième pourtour intérieur de la géométrie du polygone. Renvoie NULL si la géométrie n'est pas un polygone, ou si la valeur N ne se trouve pas dans l'intervalle considéré.

Note : l'index débute à 1conformément aux spécifications OGC depuis la version 0.8.0. Les versions antérieures débutaient à 0.

EndPoint(geometry)

Renvoie le dernier point d'une ligne géométrique en tant que point.

StartPoint(geometry)

Renvoie le premier point d'une ligne géométrique en tant que point.

GeometryType(geometry)

Renvoie le type géométrique sous forme de chaine. Par exemple : LINESTRING, POLYGON, MULTIPOINT, etc.
OGC SPEC s2.1.1.1 - Renvoie le nom du sous-type géométrique instanciable dont la géométrie fait partie. Le nom du sous-type géométrique instanciable est renvoyé sous forme de chaine.

X(geometry)

Renvoie la coordonnée X du point. L'objet en entrée doit être un point.

Y(geometry)

Renvoie la coordonnée Y du point. L'objet en entrée doit être un point.

Z(geometry)

Renvoie la coordonnée Z du point, ou NULL si la valeur n'est pas disponible. L'objet en entrée doit être un point.

M(geometry)

Renvoie la coordonnée M du point, ou NULL si la valeur n'est pas disponible. L'objet en entrée doit être un point.
Note : cela ne fait pas (encore) partie des spécifications OGC, mais on les donne ici afin de compléter la liste de fonctions d'extraction de coordonnées ponctuelles.

haut de la page | table des matières

6.1.5. Constructeurs géométriques

GeomFromText(text,[<srid>]) :
Construit une géométrie à partir d'un WKT et d'un SRID donné.
OGC SPEC 3.2.6.2 - l'option SRID correspond à la mise en conformité
PointFromText(text,[<srid>]) :
Construit une géométrie à partir d'un WKT et d'un SRID donné. Si aucun SRID n'est passé en paramètre, la valeur utilisée sera -1.
OGC SPEC 3.2.6.2 - l'option SRID correspond à la mise en conformité
Retourne une erreur si le WKT n'est pas un POINT.
LineFromText(text,[<srid>]) :
Construit une géométrie à partir d'un WKT et d'un SRID donné. Si aucun SRID n'est donné, la valeur utilisée sera -1.
OGC SPEC 3.2.6.2 - l'option SRID correspond à la mise en conformité
Retourne une erreur si le WKT n'est pas une LINE.
LinestringFromText(text,[<srid>]) :
Construit une géométrie à partir d'un WKT et d'un SRID donné. Si aucun SRID n'est donné, la valeur utilisée sera -1.
Retourne une erreur si le WKT n'est pas une LINE.
PolyFromText(text,[<srid>]) :
Construit une géométrie à partir d'un WKT et d'un SRID donné. Si aucun SRID n'est donné, la valeur utilisée sera -1.
OGC SPEC 3.2.6.2 - l'option SRID correspond à la mise en conformité
Retourne une erreur si le WKT n'est pas un polygone
PolygonFromText(text,[<srid>]) :
Construit une géométrie à partir d'un WKT et d'un SRID donné. Si aucun SRID n'est donné, la valeur utilisée sera -1.
correspond à la mise en conformité
Retourne une erreur si le WKT n'est pas un POLYGON.
MPointFromText(text,[<srid>]) :
Construit une géométrie à partir d'un WKT et d'un SRID donné. Si aucun SRID n'est donné, la valeur utilisée sera -1.
OGC SPEC 3.2.6.2 - l'option SRID correspond à la mise en conformité
Retourne une erreur si le WKT n'est pas un MULTIPOINT.
MLineFromText(text,[<srid>]) :
Construit une géométrie à partir de WKT avec un SRID donné. Si aucun SRID n'est donné, la valeur utilisée sera -1.
OGC SPEC 3.2.6.2 - l'option SRID correspond à la mise en conformité
Retourne une erreur si le WKT n'est pas un MULTILINESTRING.
MPolyFromText(text,[<srid>]) :
Construit une géométrie à partir d'un WKT et d'un SRID donné. Si aucun SRID n'est donné, la valeur utilisée sera -1.
OGC SPEC 3.2.6.2 - l'option SRID correspond à la mise en conformité
Retourne une erreur si le WKT n'est pas un MULTIPOLYGON.
GeomCollFromText(text,[<srid>]) :
Construit une géométrie à partir d'un WKT et d'un SRID donné. Si aucun SRID n'est donné, la valeur utilisée sera -1.
OGC SPEC 3.2.6.2 - l'option SRID correspond à la mise en conformité
Retourne une erreur si le WKB n'est pas un GEOMETRYCOLLECTION.
GeomFromWKB(bytea,[<srid>]) :
Construit une géométrie à partir d'un WKB et d'un SRID donné. Si aucun SRID n'est donné, la valeur utilisée sera -1.
OGC SPEC 3.2.6.2 - l'option SRID correspond à la mise en conformité
GeomFromWKB(bytea,[<srid>]) :
Construit une géométrie à partir d'un WKB et d'un SRID donné. Si aucun SRID n'est donné, la valeur utilisée sera -1.
OGC SPEC 3.2.7.2 - l'option SRID correspond à la mise en conformité
PointFromWKB(bytea,[<srid>]) :
Construit une géométrie à partir d'un WKB et d'un SRID donné. Si aucun SRID n'est donné, la valeur utilisée sera -1.
OGC SPEC 3.2.7.2 - l'option SRID correspond à la mise en conformité
Retourne une erreur si le WKB n'est pas un POINT.
LineFromWKB(bytea,[<srid>]) :
Construit une géométrie à partir d'un WKB et d'un SRID donné. Si aucun SRID n'est donné, la valeur utilisée sera -1.
OGC SPEC 3.2.7.2 - l'option SRID correspond à la mise en conformité
Retourne une erreur si le WKB n'est pas une LINESTRING.
LinestringFromWKB(bytea,[<srid>]) :
Construit une géométrie à partir d'un WKB et d'un SRID donné. Si aucun SRID n'est donné, la valeur utilisée sera -1.
correspond à la mise en conformité
Retourne une erreur si le WKB n'est pas une LINESTRING.
PolyFromWKB(bytea,[<srid>]) :
Construit une géométrie à partir d'un WKB et d'un SRID donné. Si aucun SRID n'est donné, la valeur utilisée sera -1.
OGC SPEC 3.2.7.2 - l'option SRID correspond à la mise en conformité
Retourne une erreur si le WKB n'est pas un POLYGON.
PolygonFromWKB(bytea,[<srid>]) :
Construit une géométrie à partir de WKB avec un SRID donné. Si aucun SRID n'est donné, on prend par défaut la valeur -1.
correspond à la mise en conformité
Retourne une erreur si le WKB n'est pas un POLYGON.
MPointFromWKB(bytea,[<srid>]) :
Construit une géométrie à partir d'un WKB et d'un SRID donné. Si aucun SRID n'est donné, la valeur utilisée sera -1.
OGC SPEC 3.2.7.2 - l'option SRID correspond à la mise en conformité
Retourne une erreur si le WKB n'est pas un MULTIPOINT.
MLineFromWKB(bytea,[<srid>]) :
Construit une géométrie à partir d'un WKB et d'un SRID donné. Si aucun SRID n'est donné, on prend par défaut la valeur -1.
OGC SPEC 3.2.7.2 - l'option SRID correspond à la mise en conformité
Retourne une erreur si le WKB n'est pas un MULTILINESTRING.
MPolyFromWKB(bytea,[<srid>]) :
Construit une géométrie à partir d'un WKB et d'un SRID donné. Si aucun SRID n'est donné, la valeur utilisée sera -1.
OGC SPEC 3.2.7.2 - l'option SRID correspond à la mise en conformité
Retourne une erreur si le WKB n'est pas un MULTIPOLYGON.
GeomCollFromWKB(bytea,[<srid>]) :
Construit une géométrie à partir d'un WKB et d'un SRID donné. Si aucun SRID n'est donné, on prend par défaut la valeur -1.
OGC SPEC 3.2.7.2 - l'option SRID correspond à la mise en conformité
Retourne une erreur si le WKB n'est pas un GEOMETRYCOLLECTION.
BdPolyFromText(text WKT, integer SRID) :
Construit un polygone à partir d'une collection quelconque de polylignes fermées en tant que représentation texte MultiLineString.
Retroune une erreur si le WKB n'est pas un MULTILINESTRING. Retourne une erreur si la sortie est un MULTIPOLYGON; utilisez BdMPolyFromText dans ce cas, ou voyez BuildArea() pour une approche spécifique à PostGIS.
OGC SFSQL 1.1 - 3.2.6.2
Disponibilité : 1.1.0 - requiert GEOS >= 2.1.0.
BdMPolyFromText(text WKT, integer SRID) :
Construit un MULTIPOLYGON à partir d'une collection quelconque de polylignes fermées en tant que représentation texte MultiLineString.
Retourne une erreur si le WKT n'est pas un MULTILINESTRING. Forcez la sortie en MULTIPOLYGON même si le résultat ne comportte qu'un seul POLYGON; utilisez BdPolyFromText si vous êtes sûr qu'un seul POLYGON sortira de l'opération, ou voyez BuildArea() pour une approche spécifique à PostGIS.
OGC SFSQL 1.1 - 3.2.6.2
Disponibilité : 1.1.0 - requiert GEOS >= 2.1.0.

haut de la page | table des matières

6.2. Extensions PostGIS


haut de la page | table des matières

6.2.1. Fonctions de gestion

DropGeometryTable([<nom_de_schéma>], <nom_de_la_table>) :
Supprime une table ainsi que toutes ses références dans geometry_columns.
NOTE : utilise current_schema() pour des installations de PostgreSQL supportant les schémas si le schéma n'est spécifié.
UpdateGeometrySRID([<schema_name>], <table_name>, <column_name>, <srid>) :
Met à jour le SRID de toutes les propriétés dans une colonne géographique mettant à jour les contraintes et les références dans geometry_column.
NOTE : utilise current_schema() sur des installations PostgreSQL supportant les schémas si le schéma n'est pas spécifié.
update_geometry_stats([<table_name>, <column_name>]) :
Met à jour les statistiques concernant les tables spatiales qui seront utilisées par le planificateur de requête. Vous aurait aussi besoin d'exécuter : VACUUM ANALYZE [nom_de_la_table] [nom_de_colonne] pour compléter le processus de rapatriement des statistiques.
NOTE : à partir de la version 8.0 de PostgreSQL le rapatriement des statistiques est automatiquement effectué lors de l'exécution du VACUUM ANALYZE.
postgis_version() :
Renvoie le numéro de version de PostGIS et les options de compilation utilisées.
NOTE : avant la version 1.1.0 c'était une fonction procédurale, elle pouvait donc retourner des informations imprécises (dans le cas d'une mise à jour incomplète de la base de données).
postgis_lib_version() :
Renvoie le numéro de version de la bibliothèque PostGIS.
Disponible depuis la version : 0.9.0
postgis_lib_build_date() :
Renvoie la date de compilation de la bibliothèque PostGIS.
Disponible depuis la version : 1.0.0RC1
postgis_script_build_date() :
Renvoie la date de création des scripts PostGIS.
Disponible depuis la version : 1.0.0RC1
postgis_scripts_installed() :
Renvoie la version des scripts PostGIS installée dans la base de données.
NOTE : si le résultat de cette fonction ne correspond pas à celui obtenu avec postgis_scripts_released() cela signifie que vous avez sans doute oublié de mettre à jour convenablement vos bases de données existantes. Rapportez vous à la section "Mise à jour" du présent manuel pour de plus amples informations.
Disponible depuis la version : 0.9.0
postgis_scripts_released() :
Renvoie le numéro de version du script lwpostgis.sql fournit avec la bibliothèque PostGIS installée.
NOTE : à partir de la version 1.1.0, cette fonction renvoie la même valeur que postgis_lib_version(). Conservé pour des raisons de compatibilité arrière.
Disponible depuis la version : 0.9.0
postgis_geos_version() :
Renvoie le numéro de version de la bibliothèque GEOS, ou NULL si la gestion de GEOS n'est pas activée.
Disponible depuis la version : 0.9.0
postgis_jts_version() :
Renvoie le numéro de version de la bibliothèque JTS ou NULL si la gestion de JTS n'est pas activée.
Disponible depuis la version : 1.1.0
postgis_proj_version() :
Renvoie le numéro de version de la bibliothèque PROJ4 ou NULL si la gestion de PROJ4 n'est pas activée.
Disponible depuis la version : 0.9.0
postgis_uses_stats() :
Renvoie vrai si l'utilisation de STATS a été activé, faux sinon.
Disponible depuis la version : 0.9.0
postgis_full_version() :
Retourne la version complète de PostGIS et les informations de compilation.
Disponible depuis la version : 0.9.0

haut de la page | table des matières

6.2.2. Opérateurs

A &< B
L'opérateur "&<" renvoie vrai si le cadre limite de A "recouvre" ou "est à la gauche" du cadre limite de B.

A &> B
L'opérateur "&>" renvoie vrai si le cadre limite de A "recouvre" ou "est à la droite" du cadre limite de B.

A << B
L'opérateur "<<" renvoie vrai si le cadre limite de A est strictement à la gauche du cadre limite de B.

A >> B
L'opérateur ">>" renvoie vrai si le cadre limite de A est strictement à la droite du cadre limite de B.

A &<| B
L'opérateur "&<|" renvoie vrai si le cadre limite de A recouvre ou est en dessous du cadre limite de B.

A |&> B
L'opérateur "|&>" renvoie vrai si le cadre limite de A recouvre ou est au dessus du cadre limite de B.

A <<| B
L'opérateur "<<|" renvoie vrai si le cadre limite de A est strictement au dessous du cadre limite de B.

A |>> B
L'opérateur "|>>" renvoie vrai si le cadre limite de A est strictement au dessus du cadre limite de B.

A ~= B
L'opérateur "~=" est l'opérateur "même que". Il vérifie l'égalité géométrique de deux propriétés. Donc si A et B ont les même propriétés, point-par-point, l'opérateur retourne vrai.

A @ B
L'opérateur "@" renvoie vrai si le cadre limite de A est totalement inclus dans le cadre limite de B.

A ~ B
L'opérateur "~" renvoie vrai si le cadre limite de A contient entièrement le cadre limite de B.

A && B
L'opérateur "&&" est l'opérateur de superposition.Si le cadre limite de A recouvre le cadre limite de B, l'opérateur renvoie vraie.

haut de la page | table des matières

6.2.3. Fonctions de mesure

area2d(geometry) :
renvoie la superficie d'un objet géométrique si c'est un polygone ou multi-polygone.

distance_sphere(point, point) :
renvoie la distance linéaire en mètre entre deux points en latitude/longitude. Utilise une Terre sphérique avec un rayon de 6370986 mètres. Plus rapide que distance_spheroid(), mais moins précis. N'est implémenté que pour des points.

distance_spheroid(point, point, spheroid) :
renvoie la distance linéaire en mètre entre deux points en latitude/longitude pour un sphéroïde donné. Voir l'explication sur les sphéroïdes donnés dans length_spheroid(). N'est implémenté que pour des points.

length2d(geometry) :
renvoie la longueur bi-dimensionnelle de l'objet géométrique si c'est un linestring ou multi-linestring.

length3d(geometry) :
renvoie la longueur tri-dimensionnelle de l'objet géométrique si c'est un linestring ou multi-linestring.

length_spheroid(geometry,spheroid) :
calcule la longueur d'un objet géométrique sur un ellipsoïde. C'est très pratique si les coordonnées de l'objet géométrique sont en latitude/longitude et qu'on veut connaitre la longueur sans avoir à reprojeter les données. L'ellipsoïde est un type spécifique de la base de données et peut se construire comme suit :

    SPHEROID[<NAME>,<SEMI-MAJOR AXIS>,<INVERSE FLATTENING>]
Par exemple :
    SPHEROID["GRS_1980",6378137,298.257222101]
Voici un exemple de calcul :
SELECT length_spheroid( geometry_column, 'SPHEROID["GRS_1980",6378137,298.257222101]' ) FROM geometry_table;
length3d_spheroid(geometry,spheroid) :
calcule la longueur de l'objet géométrique sur un ellipsoïde, en prenant en compte l'altitude. C'est exactement comme length_spheroid sauf que les coordonnées verticales (exprimées dans les mêmes unités que les valeurs d'axes du sphéroïde) sont utilisées pour calculer la distance supplémentaire ajoutée par le positionnement vertical.
distance(geometry, geometry) :
renvoie la distance la plus courte entre deux objets géométriques.
max_distance(linestring,linestring) :
renvoie la plus grande distance entre deux "line strings".
perimeter(geometry) :
renvoie le périmètre bi-dimensionnel d'un objet géométrique, si c'est un polygon ou un multi-polygon.
perimeter2d(geometry) :
renvoie le périmètre bi-dimensionnel d'un objet géométrique, si c'est un polygon ou un multi-polygon.
perimeter3d(geometry) :
renvoie le périmètre tri-dimensionnel d'un objet géométrique, si c'est un polygon ou un multi-polygon.
azimuth(geometry, geometry) :
renvoie l'azimut du segment défini par les géométries des points désignés, ou NULL si les deux points sont superposés. La valeur retournée est en radians. Disponibilité : 1.1.0
haut de la page | table des matières

6.2.4. Extraction d'informations géométriques

AsBinary(geometry,{'NDR'|'XDR'}) :
Renvoie la géométrie au format "binaire bien connu" de l'OGC en temps que bytea, en utilisant l'encodage little-endian (NDR) ou big-endian (XDR). C'est utile avec les curseurs binaires pour extraire de la base des données sans avoir à les convertir en chaine de caractères.

AsEWKT(geometry) :
Renvoie la géométrie au format EWKT (en tant que text).

AsEWKB(geometry, {'NDR'|'XDR'}) :
Renvoie la géométrie au format EWKB (en tant que bytea ) en utilisant soit l'encodage little-endian (NDR) soit big-endian (XDR).

AsHEXEWKB(geometry, {'NDR'|'XDR'}) :
Renvoie la géométrie au format HEXEWKB (en tant que text ) en utilisant soit l'encodage little-endian (NDR) soit big-endian (XDR).

AsSVG(geometry, [rel], [precision]) :
Renvoie la géométrie sous forme de donnée chemin SVG. Utilisez 1 comme second paramètre pour obtenir la donnée chemin représentée en terme de mouvements relatifs, la valeur par défaut (0) utilise le mouvement absolu. Le troisième argument peut être utilisé pour réduire le nombre maximal de chiffres après la virgule à utiliser dans le résultat (sa valeur par défaut est 15). Les points seront représentés sous la forme cx/cy si le paramètre "rel" vaut 0 et x/y lorsque "rel" vaut 1.

AsGML(geometry, [precision]) :
Renvoie la géométrie en temps qu'élément GML. Le second paramètre peut être utilisé pour réduire le nombre maximum de chiffres après la virgule à utiliser dans le résultat (par défaut sa valeur est 15).

AsKML(geometry, [precision]) :
Renvoie la géométrie en temps qu'élément KML. Le second paramètre peut être utilisé pour réduire le nombre maximum de chiffres après la virgule à utiliser dans le résultat (par défaut sa valeur est 15).

haut de la page | table des matières

6.2.5. Constructeurs géométriques

GeomFromEWKT(text) :

Construit une géométrie à partir de EWKT.

GeomFromEWKB(bytea) :

Construit une géométrie à partir de EWKB.

MakePoint(<x>, <y>, [<z>], [<m>]) :

Construit une géométrie de points 2d,3dz ou 4d.

MakePointM(<x>, <y>, <m>) :

Construit une géométrie de points 3dm.

MakeBox2D(<LL>, <UR>) :

Construit une BOX2D définie par la géométrie de points 2D.

MakeBox3D(<LLB>, <URT>) :

Construit une BOX3D définie par la géométrie de points 2D.

MakeLine(geometry set) :

Construit une Linestring à partir d'un ensemble de points géométriques. Vous aurez probablement besoin d'utiliser un sous-ensemble pour les ordonner avant de les traiter au moyen de cette fonction.

MakeLine(geometry, geometry) :

Construit une Linestring à partir de deux points géométriques donnés.

LineFromMultiPoint(multipoint) :

Construit une LineString à partir d'une géométrie MultiPoint.

MakePolygon(linestring, [linestring[]]) :

Construit un Polygon formé de l'enveloppe donnée et d'une liste de trous. Vous pouvez construire cette liste en utilisant Accum. Les objets géométriques choisis doivent être des contours LINESTRINGS fermés (voir IsClosed et GeometryType).

BuildArea(geometry) :

Construit une géométrie surfacique formée par le contour d'un objet géométrique donné. Le type renvoyé peut être un Polygon ou un Multipolygon, tout dépend de l'objet géométrique en entrée. Si l'objet en entrée ne forme pas un polygone, la fonction renvoie NULL.

Voir aussi BdPolyFromText et BdMPolyFromText - interface de cette fonction aux stantards OGC.

Disponibilité : 1.1.0 - requiert GEOS >= 2.1.0.

Polygonize(geometry set) :

Agrégat. Construit une GeometryCollection contenant des polygones potentiels formés à partir des contours d'un ensemble d'objets géométriques.

Disponibilité : 1.0.0RC1 - requiert GEOS >= 2.1.0.

Collect(geometry set) :

Cette fonction renvoie une GEOMETRYCOLLECTION ou un objet MULTI à partir d'un ensemble d'objets géométriques. La fonction collect() est une fonction "aggrégative" dans la terminologie de PostgreSQL. Cela signifie qu'elle opère sur des listes de données, de la même façon que les fonctions sum() et mean(). Par exemple, "SELECT COLLECT(GEOM) FROM GEOMTABLE GROUP BY ATTRCOLUMN" va renvoyer une GEOMETRYCOLLECTION séparée pour chaque valeur distincte de ATTRCOLUMN.

Collect(geometry, geometry) :

Cette fonction renvoie une géométrie qui est la collection de deux géométries en entrée. Le type en sortie peut être un MULTI* ou une GEOMETRYCOLLECTION.

Dump(geometry) :

Il s'agit d'une fonction retournant un ensemble (SRF). Elle renvoie un ensemble de lignes de geometry_dump, formée par une géométrie (geom) et un tableau d'entier (path). Quand la géométrie en entrée est un type simple (POINT,LINESTRING,POLYGON), on obtiendra en sortie un seul enregistrement avec un tableau vide et la géométrie donnée en entrée comme geom. Quand la géométrie en entrée est une collection ou multi, on obtiendra un enregistrement pour chacun des composants de la collection, et le chemin indiquera la position de chaque composant à l'intérieur de la collection.

NOTE : cette fonction n'est pas accessible en compilant avec PostgreSQL 7.2.x

haut de la page | table des matières

6.2.6. Éditeur géométriques

AddBBOX(geometry) :

Ajoute le cadre limite à une géométrie. Cela devrait rendre les requêtes basées sur le cadre limite plus rapide, mais cela augmentera la taille de la géométrie.

DropBBOX(geometry) :

Supprimer le cache du cadre limite de la géométrie. Cela réduit la taille de la géométrie, mais rend les requêtes basées sur le cadre limite plus lentes.

AddPoint(linestring, point, [<position>]) :

Ajoute un point à une LINESTRING avant le point <position> (index d'origine 0). Le troisième paramètre peut être omis ou prendre la valeur -1 si vous souhaitez ajouter le point à la fin.

RemovePoint(linestring, décalage) :

Supprime un point d'une LINESTRING. Le décalage commence à 0.
Disponibilité : 1.1.0

SetPoint(linestring, N, point) :

Remplace le point N de la LINESTRING par le point passé en argument. L'index à pour origine 0.
Disponibilité : 1.1.0

Force_collection(geometry) :

Convertie une géométrie en une GEOMETRYCOLLECTION. Cela est utile pour simplifier la représentation en WKB.

Force_2d(geometry) :

Passe une géométrie dans le mode 2d, toutes les géométries auront donc uniquement les coordonnées X et Y. Cela est utile pour forcer la compatibilité avec l'OGC (pouisuqe l'OCG ne spécifie que des géométries 2d).

Force_3dz(geometry), Force_3d(geometry) :

Passe un géométrie dans le mode XYZ.

Force_3dm(geometry) :

Passe une géométrie dans le mode XYM.

Force_4d(geometry) :

Passe un géométrie dans le mode XYZM.

Multi(geometry) :

Renvoi la géométrie comme une géométrie multiple (MULTI*). Si la géométrie est déjà une MULTI*, elle est renvoyée inchangée.

Transform(geometry,entier) :

Renvoi une nouvelle géométrie dont les coordonnées sont transformées à l'aide du SRID représenté par le paramètre entier. Le SRID de destination doit exister dans la table SPATIAL_REF_SYS.

Translate(geometry,float8,float8,float8) :

Effectue la translation d'une géométrie vers une nouvelle position en utilisant les paramètres numériques comme vecteur de translation. Par exemple : translate(geom, X, Y, Z).

Scale(geometry,float8,float8,float8) :

Effectue une homothétie de la géométrie en multipliant les coordonnées par les paramètres. Par exemple : scale(geom, facteurX, facteurY, facteurZ).
Disponibilité : 1.1.0

TransScale(geometry,float8,float8,float8,float8) :

Commence par effectuer une translation de la géométrie en utilisant les deux flottants, puis effectue l'homothétie en utilisant les deux paramètres suivant, fonctionne uniquement dans le mode 2d. Utiliser transcale(geom, X, Y, facteurX, facteurY) est un raccourci efficace pour scale(translate(geom,X,Y,0),facteurX,facteurY,1).
Disponibilité : 1.1.0

Reverse(geometry) :

Renvoit la géométrie avec les sommets en ordre inverse.

ForceRHR(geometry) :

Force une collection de polygones à abéïr à la règle de la main droite.

Simplify(geometry, tolerance) :

Renvoi un version "simplifiée" de la géométrie passée en argument en utilisant l'algorithme Douglas-Peuker. Cela n'effectue actuellement une simplification que pour des (MULTI)LINES et des (MULTI)POLYGONS mais vous pouvez l'utiliser sans risque avec tout type de géométries. Puisque les simplifications se font objet par objet, vous pouvez aussi passé en argument une GEOMETRYCOLLECTION à cette fonction. Notez que la géométrie retournée peut avoir perdu sa simplicité (voir IsSimple).


SnapToGrid(geometry, originX, originY, sizeX, sizeY), SnapToGrid(geometry, sizeX, sizeY), SnapToGrid(geometry, size)
Snap all points of the input geometry to the grid defined by its origin and cell size. Remove consecutive points falling on the same cell, eventually returning NULL if output points are not enough to define a geometry of the given type. Collapsed geometries in a collection are stripped from it.
Note

The returned geometry might loose its simplicity (see IsSimple).
Note

Before release 1.1.0 this function always returned a 2d geometry. Starting at 1.1.0 the returned geometry will have same dimensionality as the input one with higher dimension values untouched. Use the version taking a second geometry argument to define all grid dimensions.

Availability: 1.0.0RC1


SnapToGrid(geometry, geometry, sizeX, sizeY, sizeZ, sizeM)
Snap all points of the input geometry to the grid defined by its origin (the second argument, must be a point) and cell sizes. Specify 0 as size for any dimension you don't want to snap to a grid.

Availability: 1.1.0

Segmentize(geometry, maxlength)
Return a modified [multi]polygon having no ring segment longer then the given distance. Interpolated points will have Z and M values (if needed) set to 0. Distance computation is performed in 2d only.

LineMerge(geometry) :

Renvoit un (ensemble d') objet(s) de type linestring composé(s) des lignes contigües inclues dans l'objet de type geometry passé en paramètre.
ndrpf: si le résultat est un ensemble, ce dernier semble être ordonné suivant la valeur minimal des coordonnées des points startpoint et endpoint (à vérifier).


Disponibilité : 1.1.0 - nécessite GEOS >= 2.1.0

Exemple concrêt : (ndrpf)


Cas d'un ensemble de linestring contigües :

select astext(linemerge(geometryfromtext('MULTILINESTRING((0 0,5 5),(5 5,6 10))',-1)));
LINESTRING(0 0,5 5,6 10)



Cas d'un ensemble de linestring non contigües :

select astext(linemerge(geometryfromtext('MULTILINESTRING((0 0,5 5),(5 4,6 10))',-1)));
MULTILINESTRING((0 0,5 5),(5 4,6 10))

haut de la page | table des matières

6.2.7. Mise en référence linéaire

line_interpolate_point(linestring, location) :

Retourne un point interpolé le long d'une ligne. Le premier argument doit être une LINESTRING. Le second argument est un flotant (float8) dont la valeur est comprise entre 0 et 1 et qui représente une fraction de la longuer 2d totale où le point doit être localisé.

Voir la fonction line_locate_point() pour localiser l'endroit le plus prêt d'un point sur une ligne.

Note : depuis la version 1.1.1 cette fonction interpole aussi les valeurs M et Z (lorsqu'elles sont présentes), tandis que les versions précédantes leur attribut la valeur 0.0.

Disponibilité : 0.8.2

line_substring(linestring, debut, fin) :

Retourne une ligne étant une sous partie de celle passée en argument commençant et terminant aux fractions de la longueur totale passées en argument. Le second et le troisième argument sont des flotants (float8) dont la valeur est comprise entre 0 et 1.

Si les valeurs de debut et fin sont identiques cette fonction est alors équivalente à line_interpolate_point().

Voir line_locate_point() pour localiser l'endroit le plus prêt d'un point sur une ligne.

Note : depuis la version 1.1.1 cette fonction interpole aussi les valeurs M et Z (lorsqu'elles sont présentes), tandis que les versions précédantes leur attribut des valeurs non spécifiées.

Disponibilité : 1.1.0

line_locate_point(LineString, Point) :

Retourne un flotant compris entre 0 et 1 représentant la position du point sur une LINESTRING le plus proche du point donné, sous la forme d'une fraction de la longuer 2d totale.

Vous pouvez utiliser la position retournée pour extraire un POINT (avec line_interpolate_point) ou la sous partie d'une ligne (line_substring).

Disponibilité : 1.1.0

locate_along_measure(geometry, float8) :

Renvoie un ensemble d'éléments géométriques dont les éléments respecte la mesure spécifiée. Les éléments de type POLYGON ne sont pas supportés.


La sémantique est spécifiée par : ISO/IEC CD 13249-3:200x(E) - Text for Continuation CD Editing Meeting

Availability: 1.1.0

locate_between_measures(geometry, float8, float8) :

Retourne un ensemble de valeurs géométriques dont les éléments sont inclues dans l'intervale de valeurs spécifié. Les éléments de type POLYGON ne sont pas supportés.

La sémantique est spécifiée par : ISO/IEC CD 13249-3:200x(E) - Text for Continuation CD Editing Meeting

Availability: 1.1.0

haut de la page | table des matières

6.2.8. Fonctions diverses

Summary(geometry) :

Renvoie un résumé textuel du contenu géométrique.

box2d(geometry) :

Renvoie une BOX2D représentant le cadre limite de l'objet géométrique.

box3d(geometry) :

Renvoie une BOX3D représentant le cadre limite de l'objet géométrique.

extent(geometry set) :

La fonction extent() est une fonction d'agrégation, selon la terminologie de PostgreSQL. Cela signifie qu'elle opère sur des ensembles de données, à la manière des fonctions sum() et mean(). Par exemple, "SELECT EXTENT(GEOM) FROM GEOMTABLE" renverra une boîte BOX3D qui correspond au cadre limite de tout les objets géométriques contenus dans la table. De la même façon, "SELECT EXTENT(GEOM) FROM GEOMTABLE GROUP BY CATEGORY" renverra un résultat d'emprise pour chacune des catégories.

zmflag(geometry) :

Renvoie le drapeau ZM (dimension(s) de la géométrie) des objets géométriques sous forme de small int. Il peut prendre les valeurs : 0=2d, 1=3dm, 2=3dz, 3=4d.

HasBBOX(geometry) :

Renvoie vrai si le cadre limite de l'objet géométrique est en cache, et faux sinon. Utilisez addBBOX() et dropBBOX() pour contrôler la mise en cache.

ndims(geometry) :

Renvoie le nombre de dimensions de l'objet géométrique sous forme de small int. Il peut prendre les valeurs 2,3 ou 4.

nrings(geometry) :

Si l'objet géométrique est un polygon ou un multi-polygon renvoie le nombre de rings.

npoints(geometry) :

Renvoie le nombre de points dans l'objet géométrique.

isvalid(geometry) :

Renvoie vrai si l'objet géométrique est valide.

expand(geometry, float) :

Cette fonction renvoie un cadre limite étendue dans chacune des directions à partir du cadre limite de l'objet géométrique en entrée, en fonction d'une variable spécifiée en second argument. Très utile pour les requêtes de distance(), pour ajouter un filtre d'index à la requête.

estimated_extent([schema], table, geocolumn) :

Renvoie l'emprise 'estimé' de la table spatiale désignée. L'estimation provient des statistiques du champ de géométrie. Le schéma courant sera utilisé si rien d'autre n'est précisé.

Pour PostgreSQL>=8.0.0, les statistiques sont rassemblées par VACUUM ANALYZE et l'emprise résultante représentera à peu près 95% de l'emprise réelle.

Pour PostgreSQL< 8.0.0, les statistiques sont rassemblées par update_geometry_stats() et l'emprise résultante sera exacte.

find_srid(varchar,varchar,varchar) :

La syntaxe est find_srid(<db/schema>, <table>, <column>) et la fonction renvoie l'entier SRID du champ spécifié en cherchant dans la table geometry_columns. Si le champ géométrie n'a pas été ajouté à l'aide la fonction adéquate AddGeometryColumns(), cette fonction ne marchera pas non plus.

mem_size(geometry) :

Renvoie la quantité d'espace disque (en bytes) qu'occupe l'objet géométrique.

numb_sub_objects(geometry) :

Renvoie le nombre d'objet stockés dans la géométrie. C'est spécialement utile pour les MULTI-géométries et les GEOMETRYCOLLECTIONs.

point_inside_circle(geometry,float,float,float) :

La syntaxe de cette fonction est point_inside_circle(<geometry>,<circle_center_x>,<circle_center_y>,<radius>). Renvoie vrai si l'objet géométrique est un point et se trouve à l'intérieur d'un cercle. Sinon renvoie faux.

xmin(box3d) ymin(box3d) zmin(box3d) :

Renvoie le minima spécifié d'une bounding box.

xmax(box3d) ymax(box3d) zmax(box3d) :

Renvoie le maxima spécifié d'une bounding box.

Accum(geometry set) :

Agrégat. Construit un tableau d'objets géométriques.

haut de la page | table des matières

6.2.9. Support des transactions longues

Ce module et les fonctions pl/pgsql associées (définies dans le fichier lwgeom/long_xact.sql.in du répertoire des sources de PostGIS) ont été implémentés afin de fournir le support pour de longs vérouillages requis par les spécifications Web Feature Service (page 34 du document).

Note : les utilisateurs doivent utiliser le mode d'isolation serializable sans quoi le méchanisme de vérouillage devrait ne pas fonctionner.

EnableLongTransactions() :

Active le support des transactions longues. Cette fonction crée les tables de métadonnées nécessaires, elle a besoin d'être appeler une seule fois avant l'utilisation de l'une des autres fonctions décrites dans cette partie. L'appeler une deuxième fois serait inutile.
Disponibilité : 1.1.3

DisableLongTransactions() :

Désactive le support des transactions longues. Cette fonctione supprime les tables de métadonnées du support des transactions longues, et enlève tout les triggers utilisés par les tables de vérification du vérouillage.
Disponibilité : 1.1.3

CheckAuth([<schema>], <table>, <rowid_col>) :

Vérifie si les mises à jour et les suppressions des lignes de la table spécifiée sont possibles (autorisables). Identifie les lignes en utilisant la colonne : <rowid_col>.
Disponibilité : 1.1.3

LockRow([<schema>], <table>, <rowid>, <authid>, [<expires>]) :

Attribut le verroux/l'autorisation pour une ligne spécific dans la table.
<authid> est une chaîne de charactère.
<expires> est une durée (de type timestamp) dont la valeur par défaut est : now()+1heure.
Renvoit 1 si le verroux a pu être assigné, 0 sinon (déjà verrouillé par un autre processus).
Disponibilité : 1.1.3

UnlockRows(<authid>) :

Supprime tout les verroux rattachés à l'identifiant d'autorisation spécifié. Renvoit le nombre de verroux relachés.
Disponibilité : 1.1.3

AddAuth(<authid>) :

Ajoute un marqueur d'autorisation à utiliser dans la transaction courrante.
Disponibilité : 1.1.3

haut de la page | table des matières

6.3. Fonctions SQL-MM

Voici une liste des fonctions SQL-MM que PostGIS supporte. L'implémentation de ces fonctions est calquée sur celle d'ArcSDE, certaines parties, qui seront explicitées ici, varient donc des spécifications.

Avec la version 1.2.0, ces fonctions ont été implémentées par encapsulation des fonctions existantes de PostGIS. Ce qui à pour résultat, que certaines fonctionalités des objets géométriques de type courbes ne soient pas disponibles.

Note

SQL-MM définie le SRID par défaut à 1 pour les contructeurs d'entité géométriques. PostGIS utilise quand à lui la valeur -1.

ST_Area

Revoie l'aire d'une ST_Surface ou ST_MultiSurface.

SQL-MM 3: 8.1.2, 9.5.3

ST_AsBinary

Renvoie la représentation binaire d'une ST_Geometry.

SQL-MM 3: 5.1.37

ST_AsText

Renvoie la représentation textuelle d'une ST_Geometry.

SQL-MM 3: 5.1.25

ST_Boundary

Return the boundary of the ST_Geometry value.

SQL-MM 3: 5.1.14

ST_Buffer

Renvoie l'ensemble des points dans l'espace autour d'une ST_Geometry.

SQL-MM 3: 5.1.17

ST_Centroid

Renvoie le barycentre d'une ST_Surface ou ST_MultiSurface.

SQL-MM 3: 8.1.4, 9.5.5

ST_Contains

Test si une ST_Geometry en contient spatialement une autre.

SQL-MM 3: 5.1.31

ST_ConvexHull

Renvoie l'enveloppe convexe d'une typeST_Geometry.

SQL-MM 3: 5.1.16

ST_CoordDim

Renvoie la dimension des coordonnées d'une ST_Geometry.

SQL-MM 3: 5.1.3

ST_Crosses

Test si deux ST_Geometry se croisent spatialement.

SQL-MM 3: 5.1.29

ST_Difference

Renvoie un objet de type ST_Geometry qui représente l'ensemble des points différents de deux objets de type ST_Geometry.

SQL-MM 3: 5.1.20

ST_Dimension

Renvoie la dimension d'un objet de type ST_Geometry.

SQL-MM 3: 5.1.2

ST_Disjoint

Test si un objet de type ST_Geometry est spatialement disjoint
d'un autre ST_Geometry.

SQL-MM 3: 5.1.26

ST_Distance

Renvoie la distance entre deux entités géométriques.

SQL-MM 3: 5.1.23

ST_EndPoint

Renvoie un objet de type ST_Point qui est le point final d'une entité de type ST_Curve.

SQL-MM 3: 7.1.4

ST_Envelope

Renvoie le rectangle englobant une entité de type ST_Geometry.

SQL-MM 3: 5.1.15

ST_Equals

Test si deux valeurs de type ST_Geometry sont spatialement égales.

SQL-MM 3: 5.1.24

ST_ExteriorRing

Renvoie l'anneau extérieur d'une ST_Surface.

SQL-MM 3: 8.2.3, 8.3.3

ST_GeometryN

Renvoie la valeur de type ST_Geometry à partir de l'index indiquée dans un ensemble de type ST_GeomCollection.

SQL-MM 3: 9.1.5

ST_GeometryType

Renvoie le type d'une ST_Geometry.

SQL-MM 3: 5.1.4

ST_GeomFromText

Renvoie une ST_Geometry à partir de sa représentation textuelle.

SQL-MM 3: 5.1.40

ST_GeomFromWKB

Renvoie une ST_Geometry à partir de sa représentation binaire.

SQL-MM 3: 5.1.41

ST_InteriorRingN

Renvoie l'anneau intérieur d'une entité géométrique de type ST_Surface.

SQL-MM 3: 8.2.6, 8.3.5

ST_Intersection

Renvoie un objet de type ST_Geometry représentant l'ensemble des points d'intersection de deux objets de types ST_Geometry.

SQL-MM 3: 5.1.18

ST_Intersects

Test si une valeur de type ST_Geometry intersecte spatialement un autre objet de type ST_Geometry.

SQL-MM 3: 5.1.27

ST_IsClosed

Test si un objet de type ST_Curve or ST_MultiCurve est fermé.

Note

SQL-MM spécifie que le résultat de ST_IsClosed(NULL) doit être 0, alors que PostGIS renvoie NULL.

SQL-MM 3: 7.1.5, 9.3.3

ST_IsEmpty

Test si une entité de type ST_Geometry correspond à l'ensemble vide.

Note

SQL-MM spécifie que le résultat de ST_IsEmpty(NULL) doit être 0, alors que PostGIS renvoie la valeur NULL.

SQL-MM 3: 5.1.7

ST_IsRing

Test si une entité de type ST_Curve est un anneau.

Note

SQL-MM spécifie que le résultat de ST_IsRing(NULL) doit être 0, alors ue PostGIS renvoie la valeur NULL.

SQL-MM 3: 7.1.6

ST_IsSimple

Test si une entité de type ST_Geometry ne contient pas d'anomalies géométriques, comme par exemple l'auto-intersection ou l'auto-tangent.

Note

SQL-MM spécifie que le résultat de ST_IsSimple(NULL) doit être 0, alors que PostGIS renvoie la valeur NULL dans ce cas.

SQL-MM 3: 5.1.8

ST_IsValid

Test si une entité de type ST_Geometry est bien formée.

Note

SQL-MM spécifie que le résultat de ST_IsValid(NULL) doit être 0, alors que PostGIS renvoie la valeur NULL dans ce cas.

SQL-MM 3: 5.1.9

ST_Length

Renvoie la longuer d'une ST_Curve ou ST_MultiCurve.

SQL-MM 3: 7.1.2, 9.3.4

ST_LineFromText

Renvoie une ST_LineString à parti de sa représentation textuelle.

SQL-MM 3: 7.2.8

ST_LineFromWKB

Renvoie une ST_LineString à parti de sa représentation binaire.

SQL-MM 3: 7.2.9

ST_MLineFromText

Renvoie un ST_MultiLineString à parti de sa représentation textuelle.

SQL-MM 3: 9.4.4

ST_MLineFromWKB

Renvoie un ST_MultiLineString à parti de sa représentation binaire.

SQL-MM 3: 9.4.5

ST_MPointFromText

Renvoie un ST_MultiPoint à parti de sa représentation textuelle.

SQL-MM 3: 9.2.4

ST_MPointFromWKB

Renvoie un ST_MultiPoint à parti de sa représentation binaire.

SQL-MM 3: 9.2.5

ST_MPolyFromText

Renvoie un ST_MultiPolygon à parti de sa représentation textuelle.

SQL-MM 3: 9.6.4

ST_MPolyFromWKB

Return a specified ST_MultiPolygon à parti de sa représentation binaire.

SQL-MM 3: 9.6.5

ST_NumGeometries

Renvoie le nombre l'éléments dans ST_GeomCollection.

SQL-MM 3: 9.1.4

ST_NumInteriorRing

Return the number of interior rings in an ST_Surface.

SQL-MM 3: 8.2.5

ST_NumPoints

Return the number of points in an ST_LineString or
ST_CircularString value.

SQL-MM 3: 7.2.4

ST_OrderingEquals

ST_OrderingEquals compare deux entités géométriques et renvoie t (vraie) si les entités géométriques sont égales et que les coordonées sont dans le même ordre, sinon revoie f (faux).

Note

Cette fonction est implémentée comme dans l'api SQL d'ArcSDE plutôt que comme spécifié par SQL-MM.

SQL-MM 3: 5.1.43

ST_Overlaps

Test si un objet de type ST_Geometry en recouvre spatialement une autre.

SQL-MM 3: 5.1.32

ST_Perimeter

Return the length measurement of the boundary of an
ST_Surface or ST_MultiRSurface value.

SQL-MM 3: 8.1.3, 9.5.4

ST_Point

Renvoie un objet de type ST_Point à partir des coordonées passés en paramètre.

SQL-MM 3: 6.1.2

ST_PointFromText

Renvoie un objet de type ST_Point à partir de sa représentation textuelle.

SQL-MM 3: 6.1.8

ST_PointFromWKB

Renvoie un objet de type ST_Point à partir de sa représentation binaire.

SQL-MM 3: 6.1.9

ST_PointN

Return the specified ST_Point value in an ST_LineString or
ST_CircularString

SQL-MM 3: 7.2.5, 7.3.5

ST_PointOnSurface

Renvoie une valeur ST_Point garantie pour intersecter spatialement la valeur de ST_Surface ou de ST_MultiSurface.

SQL-MM 3: 8.1.5, 9.5.6

ST_PolyFromText

Renvoie un objet de type ST_Polygon à partir de sa représentation textuelle.

SQL-MM 3: 8.3.6

ST_PolyFromWKB

Renvoie un objet de type ST_Polygon à partir de sa représentation binaire.

SQL-MM 3: 8.3.7

ST_Polygon

Renvoie un polygone construit à partir de la polyligne définie SRID.

SQL-MM 3: 8.3.2

ST_Relate

Test if an ST_Geometry value is spatially related to another
ST_Geometry value.

SQL-MM 3: 5.1.25

ST_SRID

Renvoie l'identifiant du SRID d''une entité géométrique de type ST_Geometry.

SQL-MM 3: 5.1.5

ST_StartPoint

Renvoie un objet de type ST_Point qui est le point de départ d'une entité géométrique de type ST_Curve.

SQL-MM 3: 7.1.3

ST_SymDifference

Renvoie un objet de type ST_Geometry qui représente l'ensemble d'exclusion de deux entités géométriques de type ST_Geometry value that represents the point set
symmetrcy difference of two ST_Geometry values.

SQL-MM 3: 5.1.21

ST_Touches

Test si un entité géométrique de type ST_Geometry en touche spatialement une autre.

SQL-MM 3: 5.1.28

ST_Transform

Renvoie un objet de type ST_Geometry value transformed to the specified
spatial reference system.

SQL-MM 3: 5.1.6

ST_Union

Renvoie un objet de type ST_Geometry qui représente l'ensemble des points de l'union de deux entités géométriques de type ST_Geometry.

SQL-MM 3: 5.1.19

ST_Within

Test si une entité gémétrique de type ST_Geometry est contenue dans une autre.

SQL-MM 3: 5.1.30

ST_WKBToSQL

Renvoie un objet de type ST_Geometry à partir de sa représentation binaire.

SQL-MM 3: 5.1.36

ST_WKTToSQL

Renvoie une entité géométrique de type ST_Geometry à partir de sa représentation textuelle.

SQL-MM 3: 5.1.34

ST_X

Renvoie la composante x des coordonées d'un ST_Point.

SQL-MM 3: 6.1.3

ST_Y

Renvoie la composante y des coordonées d'un ST_Point.

SQL-MM 3: 6.1.4

haut de la page | table des matières

6.4 Fonctions ArcSDE

Des fonctions supplémentaires ont été ajoutées pour améliorer le support d'une interface de style ArcSDE.

SE_EnvelopesIntersect :

Renvoie vrai si les emprises de deux objets géométriques s'intersectent, sinon, elle renvoie faux.

SE_Is3d :

Test si une valeur géométrique a une composante z.

SE_IsMeasured :

Test si une valeur géométrique a une composante m.

SE_LocateAlong :

Renvoie un ensemble d'objet géométriques dont les éléments respectent la mesure spécifiée.

SE_LocateBetween :

Renvoie un ensemble d'objet géométriques dont les éléments sont inclues dans l'intervalle de valeur spécifié.

SE_M :

Renvoie la composante m d'une valeur de type ST_Point

SE_Z :

Renvoie la composante z d'une valeur géométrique de type ST_Point .

haut de la page | table des matières