- Catégories :
ST_SIMPLIFY¶
Si l’objet d’entrée GEOGRAPHY représente une ligne ou un polygone, renvoie une approximation plus simple de l’objet. Cette fonction identifie et supprime les sommets sélectionnés, ce qui permet d’obtenir un objet similaire comportant moins de sommets.
Par exemple, si l’objet d’entrée est un polygone avec 50 sommets, ST_SIMPLIFY peut renvoyer un polygone plus simple avec uniquement 20 de ces sommets.
Lors de la simplification d’un objet, la fonction ne supprime un sommet que si la distance entre ce sommet et l’arête résultant de la suppression de ce sommet est dans la tolérance spécifiée.
Syntaxe¶
ST_SIMPLIFY( <geography_expression>, <tolerance> [ , <preserve_collapsed> ] )
Arguments¶
Obligatoire :
geography_expression
L’objet GEOGRAPHY à simplifier.
Selon le type de l’objet GEOGRAPHY, ST_SIMPLIFY a l’effet suivant :
Type d’objet
Effet de ST_SIMPLIFY
LineString, MultiLineString, polygone ou MultiPolygon
ST_SIMPLIFY applique l’algorithme de simplification
Point ou MultiPoint
ST_SIMPLIFY n’a aucun effet.
GeometryCollection ou FeatureCollection
ST_SIMPLIFY applique l’algorithme de simplification à chaque objet de la collection.
tolerance
Distance maximale en mètres entre un sommet et l’arête résultant de la suppression du sommet. Si la distance dépasse cette tolérance pour un sommet, ST_SIMPLIFY conserve ce sommet dans l’objet simplifié.
Facultatif :
preserve_collapsed
Si
TRUE
, conserve les objets qui seraient autrement trop petits compte tenu de la tolérance.Par exemple, lorsque
preserve_collapsed
estFALSE
ettolerance
est10
(mètres), une ligne de 1 m est réduite à un point dans l’objet simplifié. Lorsquepreserve_collapsed
estTRUE
, la ligne est conservée dans l’objet simplifié.Par défaut :
FALSE
.
Renvoie¶
La fonction renvoie une valeur de type GEOGRAPHY.
Exemples¶
Les exemples de cette section affichent la sortie au format WKT :
alter session set GEOGRAPHY_OUTPUT_FORMAT='WKT';
L’exemple suivant renvoie un LineString simplifié qui a moins de sommets que le LineString d’origine. Dans l’objet simplifié, un sommet est omis si la distance entre le sommet et l’arête qui remplace le sommet est inférieure à 1000 mètres.
SELECT ST_SIMPLIFY( TO_GEOGRAPHY('LINESTRING(-122.306067 37.55412, -122.32328 37.561801, -122.325879 37.586852)'), 1000); +----------------------------------------------------------------------------------------------------+ | ST_SIMPLIFY( | | TO_GEOGRAPHY('LINESTRING(-122.306067 37.55412, -122.32328 37.561801, -122.325879 37.586852)'), | | 1000) | |----------------------------------------------------------------------------------------------------| | LINESTRING(-122.306067 37.55412,-122.325879 37.586852) | +----------------------------------------------------------------------------------------------------+