6.2. Extensions PostGIS



 Table des matières

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.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