Tous les produits
Search
Centre de documentation

ApsaraDB RDS:ST_Union

Dernière mise à jour :Aug 27, 2026

Calcule l'union géométrique de plusieurs objets geometry, en dissolvant les limites partagées et en fusionnant les zones qui se chevauchent pour produire une seule géométrie de sortie.

Syntaxe

geometry  ST_Union(geometry set  g1Field);
geometry  ST_Union(geometry  g1 , geometry  g2);
geometry  ST_Union(geometry[]  g1Array);
geometry  ST_Union(geometry set  g1Field, float8 gridsize);
geometry  ST_Union(geometry set  g1Field, cstring options);
geometry  ST_Union(geometry set  g1Field, float8 gridsize, cstring options);
geometry  ST_Union(geometry[]  g1Array, float8 gridsize);
geometry  ST_Union(geometry[]  g1Array, cstring options);
geometry  ST_Union(geometry[]  g1Array, float8 gridsize, cstring options);

Paramètres

Paramètre Description
g1Field Colonne geometry du jeu de données sur laquelle effectuer l'union. Utilisée dans la variante d'agrégation.
g1 Premier objet geometry.
g2 Deuxième objet geometry.
g1Array Tableau d'objets geometry à unir.
gridsize Taille de la cellule de grille utilisée pour aligner les sommets lors de l'opération d'union. Les sommets situés dans la même cellule de grille sont fusionnés. Valeur par défaut : -1.0 (désactivé).
options Chaîne JSON permettant d'activer le calcul parallèle et de définir le degré de parallélisme (de 1 à 64). Exemple : '{"parallel": 4}' active le calcul parallèle avec 4 workers. Valeur par défaut : '{}' (calcul séquentiel).

Description

La fonction ST_Union existe en deux versions :

  • Version 1 — accepte deux objets geometry (g1, g2) et renvoie leur union sous forme d'objet MULTI, NON-MULTI ou GeometryCollection. Si l'une des entrées est NULL, la fonction renvoie NULL.

  • Version 2 — fonctionne comme une fonction d'agrégation sur une colonne de jeu de données (g1Field) ou sur un tableau d'objets geometry (g1Array). Renvoie un objet MULTI ou NON-MULTI.

Notes d'utilisation

ST_Union par rapport à ST_Collect

ST_Union dissout les limites entre les géométries d'entrée et vérifie les zones de chevauchement. ST_Collect regroupe les géométries sans les traiter. Par conséquent, ST_Union est généralement plus lente que ST_Collect.

Utilisez ST_Collect lorsque le résultat n'a pas besoin d'être exempt de chevauchements. Privilégiez ST_Union lorsque vous avez besoin d'une sortie topologiquement propre, par exemple pour calculer la surface totale de polygones fusionnés.

Exemples

Comparaison entre ST_Union et ST_Collect

La requête suivante exécute les deux fonctions sur deux polygones adjacents. ST_Union dissout l'arête partagée, tandis que ST_Collect la conserve.

SELECT ST_Union(g1,g2),ST_Collect(g1,g2)
             from (select 'POLYGON((0 0,1 0,1 2,0 2,0 0))'::geometry as g1,'POLYGON((1 0,3 0,3 1,1 1,1 0))'::geometry as g2) as t;

12

Utilisation des paramètres gridsize et options

Les exemples suivants illustrent la variante d'agrégation avec les paramètres optionnels gridsize et options.

-- Specify the gridsize parameter.
select st_area(st_union(geom, 0.005)) from tableA;

-- Specify the options parameter.
select st_area(st_union(geom, '{"parallel": 4}'::cstring)) from tableA;

-- Specify the gridsize and options parameters at a time.
select st_area(st_union(geom, 0.005, '{"parallel": 4}'::cstring)) from tableA;

Étapes suivantes