This is an automated email from the ASF dual-hosted git repository.

jiayu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sedona.git


The following commit(s) were added to refs/heads/master by this push:
     new 77c29dfcc3 [GH-2678] Add SVG visuals for 21 geometry processing 
functions (Phase 3) (#2683)
77c29dfcc3 is described below

commit 77c29dfcc354395be26b576156b7502d25a76a6f
Author: Jia Yu <[email protected]>
AuthorDate: Wed Mar 4 13:54:39 2026 -0700

    [GH-2678] Add SVG visuals for 21 geometry processing functions (Phase 3) 
(#2683)
---
 docs/api/flink/Geometry-Processing/ST_BuildArea.md |  2 ++
 docs/api/flink/Geometry-Processing/ST_Centroid.md  |  2 ++
 .../flink/Geometry-Processing/ST_ConcaveHull.md    |  2 ++
 .../api/flink/Geometry-Processing/ST_ConvexHull.md |  2 ++
 .../Geometry-Processing/ST_DelaunayTriangles.md    |  2 ++
 .../flink/Geometry-Processing/ST_GeneratePoints.md |  2 ++
 .../Geometry-Processing/ST_GeometricMedian.md      |  2 ++
 .../api/flink/Geometry-Processing/ST_LabelPoint.md |  5 ++--
 .../ST_MinimumBoundingCircle.md                    |  2 ++
 .../ST_MinimumBoundingRadius.md                    |  2 ++
 .../Geometry-Processing/ST_OrientedEnvelope.md     |  2 ++
 .../flink/Geometry-Processing/ST_PointOnSurface.md |  2 ++
 .../api/flink/Geometry-Processing/ST_Polygonize.md |  2 ++
 .../Geometry-Processing/ST_ReducePrecision.md      |  2 ++
 docs/api/flink/Geometry-Processing/ST_Simplify.md  |  2 ++
 .../Geometry-Processing/ST_SimplifyPolygonHull.md  |  2 ++
 .../ST_SimplifyPreserveTopology.md                 |  5 ++--
 .../api/flink/Geometry-Processing/ST_SimplifyVW.md |  2 ++
 .../Geometry-Processing/ST_TriangulatePolygon.md   |  2 ++
 .../Geometry-Processing/ST_VoronoiPolygons.md      |  2 ++
 .../Geometry-Processing/ST_BuildArea.md            |  2 ++
 .../vector-data/Geometry-Processing/ST_Centroid.md |  2 ++
 .../Geometry-Processing/ST_ConcaveHull.md          |  2 ++
 .../Geometry-Processing/ST_ConvexHull.md           |  2 ++
 .../Geometry-Processing/ST_DelaunayTriangles.md    |  2 ++
 .../Geometry-Processing/ST_GeneratePoints.md       |  2 ++
 .../Geometry-Processing/ST_GeometricMedian.md      |  2 ++
 .../Geometry-Processing/ST_LabelPoint.md           |  5 ++--
 .../ST_MaximumInscribedCircle.md                   |  2 ++
 .../ST_MinimumBoundingCircle.md                    |  2 ++
 .../ST_MinimumBoundingRadius.md                    |  2 ++
 .../Geometry-Processing/ST_OrientedEnvelope.md     |  2 ++
 .../Geometry-Processing/ST_PointOnSurface.md       |  2 ++
 .../Geometry-Processing/ST_Polygonize.md           |  2 ++
 .../Geometry-Processing/ST_ReducePrecision.md      |  2 ++
 .../vector-data/Geometry-Processing/ST_Simplify.md |  2 ++
 .../Geometry-Processing/ST_SimplifyPolygonHull.md  |  2 ++
 .../ST_SimplifyPreserveTopology.md                 |  5 ++--
 .../Geometry-Processing/ST_SimplifyVW.md           |  2 ++
 .../Geometry-Processing/ST_TriangulatePolygon.md   |  2 ++
 .../Geometry-Processing/ST_VoronoiPolygons.md      |  2 ++
 docs/api/sql/Geometry-Processing/ST_BuildArea.md   |  2 ++
 docs/api/sql/Geometry-Processing/ST_Centroid.md    |  2 ++
 docs/api/sql/Geometry-Processing/ST_ConcaveHull.md |  2 ++
 docs/api/sql/Geometry-Processing/ST_ConvexHull.md  |  2 ++
 .../Geometry-Processing/ST_DelaunayTriangles.md    |  2 ++
 .../sql/Geometry-Processing/ST_GeneratePoints.md   |  2 ++
 .../sql/Geometry-Processing/ST_GeometricMedian.md  |  2 ++
 docs/api/sql/Geometry-Processing/ST_LabelPoint.md  |  5 ++--
 .../ST_MaximumInscribedCircle.md                   |  2 ++
 .../ST_MinimumBoundingCircle.md                    |  2 ++
 .../ST_MinimumBoundingRadius.md                    |  2 ++
 .../sql/Geometry-Processing/ST_OrientedEnvelope.md |  2 ++
 .../sql/Geometry-Processing/ST_PointOnSurface.md   |  2 ++
 docs/api/sql/Geometry-Processing/ST_Polygonize.md  |  2 ++
 .../sql/Geometry-Processing/ST_ReducePrecision.md  |  2 ++
 docs/api/sql/Geometry-Processing/ST_Simplify.md    |  2 ++
 .../Geometry-Processing/ST_SimplifyPolygonHull.md  |  2 ++
 .../ST_SimplifyPreserveTopology.md                 |  5 ++--
 docs/api/sql/Geometry-Processing/ST_SimplifyVW.md  |  2 ++
 .../Geometry-Processing/ST_TriangulatePolygon.md   |  2 ++
 .../sql/Geometry-Processing/ST_VoronoiPolygons.md  |  2 ++
 docs/image/ST_BuildArea/ST_BuildArea.svg           | 24 ++++++++++++++++
 docs/image/ST_Centroid/ST_Centroid.svg             | 16 +++++++++++
 docs/image/ST_ConcaveHull/ST_ConcaveHull.svg       | 26 ++++++++++++++++++
 docs/image/ST_ConvexHull/ST_ConvexHull.svg         | 22 +++++++++++++++
 .../ST_DelaunayTriangles/ST_DelaunayTriangles.svg  | 22 +++++++++++++++
 docs/image/ST_GeneratePoints/ST_GeneratePoints.svg | 24 ++++++++++++++++
 .../ST_GeometricMedian/ST_GeometricMedian.svg      | 21 ++++++++++++++
 docs/image/ST_LabelPoint/ST_LabelPoint.svg         | 16 +++++++++++
 .../ST_MaximumInscribedCircle.svg                  | 17 ++++++++++++
 .../ST_MinimumBoundingCircle.svg                   | 17 ++++++++++++
 .../ST_MinimumBoundingRadius.svg                   | 19 +++++++++++++
 .../ST_OrientedEnvelope/ST_OrientedEnvelope.svg    | 18 ++++++++++++
 docs/image/ST_PointOnSurface/ST_PointOnSurface.svg | 16 +++++++++++
 docs/image/ST_Polygonize/ST_Polygonize.svg         | 30 ++++++++++++++++++++
 .../ST_ReducePrecision/ST_ReducePrecision.svg      | 15 ++++++++++
 docs/image/ST_Simplify/ST_Simplify.svg             | 29 ++++++++++++++++++++
 .../ST_SimplifyPolygonHull.svg                     | 15 ++++++++++
 .../ST_SimplifyPreserveTopology.svg                | 15 ++++++++++
 docs/image/ST_SimplifyVW/ST_SimplifyVW.svg         | 32 ++++++++++++++++++++++
 .../ST_TriangulatePolygon.svg                      | 17 ++++++++++++
 .../ST_VoronoiPolygons/ST_VoronoiPolygons.svg      | 21 ++++++++++++++
 83 files changed, 562 insertions(+), 12 deletions(-)

diff --git a/docs/api/flink/Geometry-Processing/ST_BuildArea.md 
b/docs/api/flink/Geometry-Processing/ST_BuildArea.md
index d0af8e9157..32629719c2 100644
--- a/docs/api/flink/Geometry-Processing/ST_BuildArea.md
+++ b/docs/api/flink/Geometry-Processing/ST_BuildArea.md
@@ -21,6 +21,8 @@
 
 Introduction: Returns the areal geometry formed by the constituent linework of 
the input geometry.
 
+![ST_BuildArea](../../../image/ST_BuildArea/ST_BuildArea.svg "ST_BuildArea")
+
 Format: `ST_BuildArea (A: Geometry)`
 
 Return type: `Geometry`
diff --git a/docs/api/flink/Geometry-Processing/ST_Centroid.md 
b/docs/api/flink/Geometry-Processing/ST_Centroid.md
index 0ed4aab063..7344638c42 100644
--- a/docs/api/flink/Geometry-Processing/ST_Centroid.md
+++ b/docs/api/flink/Geometry-Processing/ST_Centroid.md
@@ -21,6 +21,8 @@
 
 Introduction: Return the centroid point of A
 
+![ST_Centroid](../../../image/ST_Centroid/ST_Centroid.svg "ST_Centroid")
+
 Format: `ST_Centroid (A: Geometry)`
 
 Return type: `Geometry`
diff --git a/docs/api/flink/Geometry-Processing/ST_ConcaveHull.md 
b/docs/api/flink/Geometry-Processing/ST_ConcaveHull.md
index 11ba5678e2..16b1d010d5 100644
--- a/docs/api/flink/Geometry-Processing/ST_ConcaveHull.md
+++ b/docs/api/flink/Geometry-Processing/ST_ConcaveHull.md
@@ -21,6 +21,8 @@
 
 Introduction: Return the Concave Hull of polygon A, with alpha set to 
pctConvex[0, 1] in the Delaunay Triangulation method, the concave hull will not 
contain a hole unless allowHoles is set to true
 
+![ST_ConcaveHull](../../../image/ST_ConcaveHull/ST_ConcaveHull.svg 
"ST_ConcaveHull")
+
 Format:
 
 `ST_ConcaveHull (A: Geometry, pctConvex: Double)`
diff --git a/docs/api/flink/Geometry-Processing/ST_ConvexHull.md 
b/docs/api/flink/Geometry-Processing/ST_ConvexHull.md
index c369642854..617ff90d4c 100644
--- a/docs/api/flink/Geometry-Processing/ST_ConvexHull.md
+++ b/docs/api/flink/Geometry-Processing/ST_ConvexHull.md
@@ -21,6 +21,8 @@
 
 Introduction: Return the Convex Hull of polygon A
 
+![ST_ConvexHull](../../../image/ST_ConvexHull/ST_ConvexHull.svg 
"ST_ConvexHull")
+
 Format: `ST_ConvexHull (A: Geometry)`
 
 Return type: `Geometry`
diff --git a/docs/api/flink/Geometry-Processing/ST_DelaunayTriangles.md 
b/docs/api/flink/Geometry-Processing/ST_DelaunayTriangles.md
index 2020e30252..457437ae71 100644
--- a/docs/api/flink/Geometry-Processing/ST_DelaunayTriangles.md
+++ b/docs/api/flink/Geometry-Processing/ST_DelaunayTriangles.md
@@ -21,6 +21,8 @@
 
 Introduction: This function computes the [Delaunay 
triangulation](https://en.wikipedia.org/wiki/Delaunay_triangulation) for the 
set of vertices in the input geometry. An optional `tolerance` parameter allows 
snapping nearby input vertices together prior to triangulation and can improve 
robustness in certain scenarios by handling near-coincident vertices. The 
default for  `tolerance` is 0. The Delaunay triangulation geometry is bounded 
by the convex hull of the input vertex set.
 
+![ST_DelaunayTriangles](../../../image/ST_DelaunayTriangles/ST_DelaunayTriangles.svg
 "ST_DelaunayTriangles")
+
 The output geometry representation depends on the provided `flag`:
 
 - `0` - a GeometryCollection of triangular Polygons (default option)
diff --git a/docs/api/flink/Geometry-Processing/ST_GeneratePoints.md 
b/docs/api/flink/Geometry-Processing/ST_GeneratePoints.md
index 51e4c22ec8..2ee1688f95 100644
--- a/docs/api/flink/Geometry-Processing/ST_GeneratePoints.md
+++ b/docs/api/flink/Geometry-Processing/ST_GeneratePoints.md
@@ -21,6 +21,8 @@
 
 Introduction: Generates a specified quantity of pseudo-random points within 
the boundaries of the provided polygonal geometry. When `seed` is either zero 
or not defined then output will be random.
 
+![ST_GeneratePoints](../../../image/ST_GeneratePoints/ST_GeneratePoints.svg 
"ST_GeneratePoints")
+
 Format:
 
 `ST_GeneratePoints(geom: Geometry, numPoints: Integer, seed: Long = 0)`
diff --git a/docs/api/flink/Geometry-Processing/ST_GeometricMedian.md 
b/docs/api/flink/Geometry-Processing/ST_GeometricMedian.md
index 74797b4731..1b0e695fa5 100644
--- a/docs/api/flink/Geometry-Processing/ST_GeometricMedian.md
+++ b/docs/api/flink/Geometry-Processing/ST_GeometricMedian.md
@@ -21,6 +21,8 @@
 
 Introduction: Computes the approximate geometric median of a MultiPoint 
geometry using the Weiszfeld algorithm. The geometric median provides a 
centrality measure that is less sensitive to outlier points than the centroid.
 
+![ST_GeometricMedian](../../../image/ST_GeometricMedian/ST_GeometricMedian.svg 
"ST_GeometricMedian")
+
 The algorithm will iterate until the distance change between successive 
iterations is less than the supplied `tolerance` parameter. If this condition 
has not been met after `maxIter` iterations, the function will produce an error 
and exit, unless `failIfNotConverged` is set to `false`.
 
 If a `tolerance` value is not provided, a default `tolerance` value is `1e-6`.
diff --git a/docs/api/flink/Geometry-Processing/ST_LabelPoint.md 
b/docs/api/flink/Geometry-Processing/ST_LabelPoint.md
index 3d8157b2f1..7ad87f2a57 100644
--- a/docs/api/flink/Geometry-Processing/ST_LabelPoint.md
+++ b/docs/api/flink/Geometry-Processing/ST_LabelPoint.md
@@ -19,8 +19,9 @@
 
 # ST_LabelPoint
 
-Introduction: `ST_LabelPoint` computes and returns a label point for a given 
polygon or geometry collection. The label point is chosen to be sufficiently 
far from boundaries of the geometry. For a regular Polygon this will be the
-centroid.
+Introduction: `ST_LabelPoint` computes and returns a label point for a given 
polygon or geometry collection. The label point is chosen to be sufficiently 
far from boundaries of the geometry. For a regular Polygon this will be the 
centroid.
+
+![ST_LabelPoint](../../../image/ST_LabelPoint/ST_LabelPoint.svg 
"ST_LabelPoint")
 
 The algorithm is derived from Tippecanoe’s `polygon_to_anchor`, an approximate 
solution for label point generation, designed to be faster than optimal 
algorithms like `polylabel`. It searches for a “good enough” label point within 
a limited number of iterations. For geometry collections, only the largest 
Polygon by area is considered. While `ST_Centroid` is a fast algorithm to 
calculate the center of mass of a (Multi)Polygon, it may place the point 
outside of the Polygon or near a bounda [...]
 
diff --git a/docs/api/flink/Geometry-Processing/ST_MinimumBoundingCircle.md 
b/docs/api/flink/Geometry-Processing/ST_MinimumBoundingCircle.md
index 0cba4af835..1fc1b9bd48 100644
--- a/docs/api/flink/Geometry-Processing/ST_MinimumBoundingCircle.md
+++ b/docs/api/flink/Geometry-Processing/ST_MinimumBoundingCircle.md
@@ -21,6 +21,8 @@
 
 Introduction: Returns the smallest circle polygon that contains a geometry. 
The optional quadrantSegments parameter determines how many segments to use per 
quadrant and the default number of segments is 48.
 
+![ST_MinimumBoundingCircle](../../../image/ST_MinimumBoundingCircle/ST_MinimumBoundingCircle.svg
 "ST_MinimumBoundingCircle")
+
 Format:
 
 `ST_MinimumBoundingCircle(geom: Geometry, [Optional] quadrantSegments: 
Integer)`
diff --git a/docs/api/flink/Geometry-Processing/ST_MinimumBoundingRadius.md 
b/docs/api/flink/Geometry-Processing/ST_MinimumBoundingRadius.md
index 49e5feac09..644a4d3b64 100644
--- a/docs/api/flink/Geometry-Processing/ST_MinimumBoundingRadius.md
+++ b/docs/api/flink/Geometry-Processing/ST_MinimumBoundingRadius.md
@@ -21,6 +21,8 @@
 
 Introduction: Returns a struct containing the center point and radius of the 
smallest circle that contains a geometry.
 
+![ST_MinimumBoundingRadius](../../../image/ST_MinimumBoundingRadius/ST_MinimumBoundingRadius.svg
 "ST_MinimumBoundingRadius")
+
 Format: `ST_MinimumBoundingRadius(geom: Geometry)`
 
 Return type: `Struct<center: Geometry, radius: Double>`
diff --git a/docs/api/flink/Geometry-Processing/ST_OrientedEnvelope.md 
b/docs/api/flink/Geometry-Processing/ST_OrientedEnvelope.md
index 71ef552013..9103b99541 100644
--- a/docs/api/flink/Geometry-Processing/ST_OrientedEnvelope.md
+++ b/docs/api/flink/Geometry-Processing/ST_OrientedEnvelope.md
@@ -21,6 +21,8 @@
 
 Introduction: Returns the minimum-area rotated rectangle enclosing a geometry. 
The rectangle may be rotated relative to the coordinate axes. Degenerate inputs 
may result in a Point or LineString being returned.
 
+![ST_OrientedEnvelope](../../../image/ST_OrientedEnvelope/ST_OrientedEnvelope.svg
 "ST_OrientedEnvelope")
+
 Format: `ST_OrientedEnvelope(geom: Geometry)`
 
 Return type: `Geometry`
diff --git a/docs/api/flink/Geometry-Processing/ST_PointOnSurface.md 
b/docs/api/flink/Geometry-Processing/ST_PointOnSurface.md
index 50aff6bd88..a690c2359a 100644
--- a/docs/api/flink/Geometry-Processing/ST_PointOnSurface.md
+++ b/docs/api/flink/Geometry-Processing/ST_PointOnSurface.md
@@ -21,6 +21,8 @@
 
 Introduction: Returns a POINT guaranteed to lie on the surface.
 
+![ST_PointOnSurface](../../../image/ST_PointOnSurface/ST_PointOnSurface.svg 
"ST_PointOnSurface")
+
 Format: `ST_PointOnSurface(A: Geometry)`
 
 Return type: `Geometry`
diff --git a/docs/api/flink/Geometry-Processing/ST_Polygonize.md 
b/docs/api/flink/Geometry-Processing/ST_Polygonize.md
index c59f66bb3c..b6bf36bb81 100644
--- a/docs/api/flink/Geometry-Processing/ST_Polygonize.md
+++ b/docs/api/flink/Geometry-Processing/ST_Polygonize.md
@@ -21,6 +21,8 @@
 
 Introduction: Generates a GeometryCollection composed of polygons that are 
formed from the linework of an input GeometryCollection. When the input does 
not contain any linework that forms a polygon, the function will return an 
empty GeometryCollection.
 
+![ST_Polygonize](../../../image/ST_Polygonize/ST_Polygonize.svg 
"ST_Polygonize")
+
 !!!note
     `ST_Polygonize` function assumes that the input geometries form a valid 
and simple closed linestring that can be turned into a polygon. If the input 
geometries are not noded or do not form such linestrings, the resulting 
GeometryCollection may be empty or may not contain the expected polygons.
 
diff --git a/docs/api/flink/Geometry-Processing/ST_ReducePrecision.md 
b/docs/api/flink/Geometry-Processing/ST_ReducePrecision.md
index 5918b16368..c80ae8bec3 100644
--- a/docs/api/flink/Geometry-Processing/ST_ReducePrecision.md
+++ b/docs/api/flink/Geometry-Processing/ST_ReducePrecision.md
@@ -21,6 +21,8 @@
 
 Introduction: Reduce the decimals places in the coordinates of the geometry to 
the given number of decimal places. The last decimal place will be rounded.
 
+![ST_ReducePrecision](../../../image/ST_ReducePrecision/ST_ReducePrecision.svg 
"ST_ReducePrecision")
+
 Format: `ST_ReducePrecision (A: Geometry, B: Integer)`
 
 Return type: `Geometry`
diff --git a/docs/api/flink/Geometry-Processing/ST_Simplify.md 
b/docs/api/flink/Geometry-Processing/ST_Simplify.md
index 25808aa23e..5ebe03d68a 100644
--- a/docs/api/flink/Geometry-Processing/ST_Simplify.md
+++ b/docs/api/flink/Geometry-Processing/ST_Simplify.md
@@ -21,6 +21,8 @@
 
 Introduction: This function simplifies the input geometry by applying the 
Douglas-Peucker algorithm.
 
+![ST_Simplify](../../../image/ST_Simplify/ST_Simplify.svg "ST_Simplify")
+
 !!!Note
     The simplification may not preserve topology, potentially producing 
invalid geometries. Use 
[ST_SimplifyPreserveTopology](ST_SimplifyPreserveTopology.md) to retain valid 
topology after simplification.
 
diff --git a/docs/api/flink/Geometry-Processing/ST_SimplifyPolygonHull.md 
b/docs/api/flink/Geometry-Processing/ST_SimplifyPolygonHull.md
index 0dcb357117..0ff94349d1 100644
--- a/docs/api/flink/Geometry-Processing/ST_SimplifyPolygonHull.md
+++ b/docs/api/flink/Geometry-Processing/ST_SimplifyPolygonHull.md
@@ -21,6 +21,8 @@
 
 Introduction: This function computes a topology-preserving simplified hull, 
either outer or inner, for a polygonal geometry input. An outer hull fully 
encloses the original geometry, while an inner hull lies entirely within. The 
result maintains the same structure as the input, including handling of 
MultiPolygons and holes, represented as a polygonal geometry formed from a 
subset of vertices.
 
+![ST_SimplifyPolygonHull](../../../image/ST_SimplifyPolygonHull/ST_SimplifyPolygonHull.svg
 "ST_SimplifyPolygonHull")
+
 Vertex reduction is governed by the `vertexFactor` parameter ranging from 0 to 
1, with lower values yielding simpler outputs with fewer vertices and reduced 
concavity. For both hull types, a `vertexFactor` of 1.0 returns the original 
geometry. Specifically, for outer hulls, 0.0 computes the convex hull; for 
inner hulls, 0.0 produces a triangular geometry.
 
 The simplification algorithm iteratively removes concave corners containing 
the least area until reaching the target vertex count. It preserves topology by 
preventing edge crossings, ensuring the output is a valid polygonal geometry in 
all cases.
diff --git a/docs/api/flink/Geometry-Processing/ST_SimplifyPreserveTopology.md 
b/docs/api/flink/Geometry-Processing/ST_SimplifyPreserveTopology.md
index 375acd5aea..ff04851a28 100644
--- a/docs/api/flink/Geometry-Processing/ST_SimplifyPreserveTopology.md
+++ b/docs/api/flink/Geometry-Processing/ST_SimplifyPreserveTopology.md
@@ -19,8 +19,9 @@
 
 # ST_SimplifyPreserveTopology
 
-Introduction: Simplifies a geometry and ensures that the result is a valid 
geometry having the same dimension and number of components as the input,
-and with the components having the same topological relationship.
+Introduction: Simplifies a geometry and ensures that the result is a valid 
geometry having the same dimension and number of components as the input, and 
with the components having the same topological relationship.
+
+![ST_SimplifyPreserveTopology](../../../image/ST_SimplifyPreserveTopology/ST_SimplifyPreserveTopology.svg
 "ST_SimplifyPreserveTopology")
 
 Return type: `Geometry`
 
diff --git a/docs/api/flink/Geometry-Processing/ST_SimplifyVW.md 
b/docs/api/flink/Geometry-Processing/ST_SimplifyVW.md
index 1a0693c317..55b2f4a6ca 100644
--- a/docs/api/flink/Geometry-Processing/ST_SimplifyVW.md
+++ b/docs/api/flink/Geometry-Processing/ST_SimplifyVW.md
@@ -21,6 +21,8 @@
 
 Introduction: This function simplifies the input geometry by applying the 
Visvalingam-Whyatt algorithm.
 
+![ST_SimplifyVW](../../../image/ST_SimplifyVW/ST_SimplifyVW.svg 
"ST_SimplifyVW")
+
 !!!Note
     The simplification may not preserve topology, potentially producing 
invalid geometries. Use 
[ST_SimplifyPreserveTopology](ST_SimplifyPreserveTopology.md) to retain valid 
topology after simplification.
 
diff --git a/docs/api/flink/Geometry-Processing/ST_TriangulatePolygon.md 
b/docs/api/flink/Geometry-Processing/ST_TriangulatePolygon.md
index 3e5c0b4caf..00b9d435ad 100644
--- a/docs/api/flink/Geometry-Processing/ST_TriangulatePolygon.md
+++ b/docs/api/flink/Geometry-Processing/ST_TriangulatePolygon.md
@@ -21,6 +21,8 @@
 
 Introduction: Generates the constrained Delaunay triangulation for the input 
Polygon. The constrained Delaunay triangulation is a set of triangles created 
from the Polygon's vertices that covers the Polygon area precisely, while 
maximizing the combined interior angles across all triangles compared to other 
possible triangulations. This produces the highest quality triangulation 
representation of the Polygon geometry. The function returns a 
GeometryCollection of Polygon geometries compris [...]
 
+![ST_TriangulatePolygon](../../../image/ST_TriangulatePolygon/ST_TriangulatePolygon.svg
 "ST_TriangulatePolygon")
+
 Format: `ST_TriangulatePolygon(geom: Geometry)`
 
 Return type: `Geometry`
diff --git a/docs/api/flink/Geometry-Processing/ST_VoronoiPolygons.md 
b/docs/api/flink/Geometry-Processing/ST_VoronoiPolygons.md
index d58e9ab74e..f0671f9977 100644
--- a/docs/api/flink/Geometry-Processing/ST_VoronoiPolygons.md
+++ b/docs/api/flink/Geometry-Processing/ST_VoronoiPolygons.md
@@ -21,6 +21,8 @@
 
 Introduction: Returns a two-dimensional Voronoi diagram from the vertices of 
the supplied geometry. The result is a GeometryCollection of Polygons that 
covers an envelope larger than the extent of the input vertices. Returns null 
if input geometry is null. Returns an empty geometry collection if the input 
geometry contains only one vertex. Returns an empty geometry collection if the 
extend_to envelope has zero area.
 
+![ST_VoronoiPolygons](../../../image/ST_VoronoiPolygons/ST_VoronoiPolygons.svg 
"ST_VoronoiPolygons")
+
 Format: `ST_VoronoiPolygons(g1: Geometry, tolerance: Double, extend_to: 
Geometry)`
 
 Optional parameters:
diff --git a/docs/api/snowflake/vector-data/Geometry-Processing/ST_BuildArea.md 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_BuildArea.md
index 8f8e24116c..29cb62dab8 100644
--- a/docs/api/snowflake/vector-data/Geometry-Processing/ST_BuildArea.md
+++ b/docs/api/snowflake/vector-data/Geometry-Processing/ST_BuildArea.md
@@ -21,6 +21,8 @@
 
 Introduction: Returns the areal geometry formed by the constituent linework of 
the input geometry.
 
+![ST_BuildArea](../../../../image/ST_BuildArea/ST_BuildArea.svg "ST_BuildArea")
+
 Format: `ST_BuildArea (A:geometry)`
 
 Return type: `Geometry`
diff --git a/docs/api/snowflake/vector-data/Geometry-Processing/ST_Centroid.md 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_Centroid.md
index 1dff71848e..72d4f52635 100644
--- a/docs/api/snowflake/vector-data/Geometry-Processing/ST_Centroid.md
+++ b/docs/api/snowflake/vector-data/Geometry-Processing/ST_Centroid.md
@@ -21,6 +21,8 @@
 
 Introduction: Return the centroid point of A
 
+![ST_Centroid](../../../../image/ST_Centroid/ST_Centroid.svg "ST_Centroid")
+
 Format: `ST_Centroid (A:geometry)`
 
 Return type: `Geometry`
diff --git 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_ConcaveHull.md 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_ConcaveHull.md
index 508adc9b84..e46ba6c6f1 100644
--- a/docs/api/snowflake/vector-data/Geometry-Processing/ST_ConcaveHull.md
+++ b/docs/api/snowflake/vector-data/Geometry-Processing/ST_ConcaveHull.md
@@ -21,6 +21,8 @@
 
 Introduction: Return the Concave Hull of polygon A, with alpha set to 
pctConvex[0, 1] in the Delaunay Triangulation method, the concave hull will not 
contain a hole unless allowHoles is set to true
 
+![ST_ConcaveHull](../../../../image/ST_ConcaveHull/ST_ConcaveHull.svg 
"ST_ConcaveHull")
+
 Format: `ST_ConcaveHull (A:geometry, pctConvex:float)`
 
 Format: `ST_ConcaveHull (A:geometry, pctConvex:float, allowHoles:Boolean)`
diff --git 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_ConvexHull.md 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_ConvexHull.md
index a84e634120..5f55d1f30e 100644
--- a/docs/api/snowflake/vector-data/Geometry-Processing/ST_ConvexHull.md
+++ b/docs/api/snowflake/vector-data/Geometry-Processing/ST_ConvexHull.md
@@ -21,6 +21,8 @@
 
 Introduction: Return the Convex Hull of polygon A
 
+![ST_ConvexHull](../../../../image/ST_ConvexHull/ST_ConvexHull.svg 
"ST_ConvexHull")
+
 Format: `ST_ConvexHull (A:geometry)`
 
 Return type: `Geometry`
diff --git 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_DelaunayTriangles.md 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_DelaunayTriangles.md
index 769aefd992..40532ddd3d 100644
--- a/docs/api/snowflake/vector-data/Geometry-Processing/ST_DelaunayTriangles.md
+++ b/docs/api/snowflake/vector-data/Geometry-Processing/ST_DelaunayTriangles.md
@@ -21,6 +21,8 @@
 
 Introduction: This function computes the [Delaunay 
triangulation](https://en.wikipedia.org/wiki/Delaunay_triangulation) for the 
set of vertices in the input geometry. An optional `tolerance` parameter allows 
snapping nearby input vertices together prior to triangulation and can improve 
robustness in certain scenarios by handling near-coincident vertices. The 
default for  `tolerance` is 0. The Delaunay triangulation geometry is bounded 
by the convex hull of the input vertex set.
 
+![ST_DelaunayTriangles](../../../../image/ST_DelaunayTriangles/ST_DelaunayTriangles.svg
 "ST_DelaunayTriangles")
+
 The output geometry representation depends on the provided `flag`:
 
 - `0` - a GeometryCollection of triangular Polygons (default option)
diff --git 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_GeneratePoints.md 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_GeneratePoints.md
index cd193b3010..8d61569646 100644
--- a/docs/api/snowflake/vector-data/Geometry-Processing/ST_GeneratePoints.md
+++ b/docs/api/snowflake/vector-data/Geometry-Processing/ST_GeneratePoints.md
@@ -21,6 +21,8 @@
 
 Introduction: Generates a specified quantity of pseudo-random points within 
the boundaries of the provided polygonal geometry. When `seed` is either zero 
or not defined then output will be random.
 
+![ST_GeneratePoints](../../../../image/ST_GeneratePoints/ST_GeneratePoints.svg 
"ST_GeneratePoints")
+
 Format:
 
 `ST_GeneratePoints(geom: Geometry, numPoints: Integer, seed: Long = 0)`
diff --git 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_GeometricMedian.md 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_GeometricMedian.md
index 8c1ce719ad..9dc2389c71 100644
--- a/docs/api/snowflake/vector-data/Geometry-Processing/ST_GeometricMedian.md
+++ b/docs/api/snowflake/vector-data/Geometry-Processing/ST_GeometricMedian.md
@@ -21,6 +21,8 @@
 
 Introduction: Computes the approximate geometric median of a MultiPoint 
geometry using the Weiszfeld algorithm. The geometric median provides a 
centrality measure that is less sensitive to outlier points than the centroid.
 
+![ST_GeometricMedian](../../../../image/ST_GeometricMedian/ST_GeometricMedian.svg
 "ST_GeometricMedian")
+
 The algorithm will iterate until the distance change between successive 
iterations is less than the supplied `tolerance` parameter. If this condition 
has not been met after `maxIter` iterations, the function will produce an error 
and exit, unless `failIfNotConverged` is set to `false`.
 
 If a `tolerance` value is not provided, a default `tolerance` value is `1e-6`.
diff --git 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_LabelPoint.md 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_LabelPoint.md
index 9f6be52d0c..96db166c33 100644
--- a/docs/api/snowflake/vector-data/Geometry-Processing/ST_LabelPoint.md
+++ b/docs/api/snowflake/vector-data/Geometry-Processing/ST_LabelPoint.md
@@ -19,8 +19,9 @@
 
 # ST_LabelPoint
 
-Introduction: `ST_LabelPoint` computes and returns a label point for a given 
polygon or geometry collection. The label point is chosen to be sufficiently 
far from boundaries of the geometry. For a regular Polygon this will be the
-centroid.
+Introduction: `ST_LabelPoint` computes and returns a label point for a given 
polygon or geometry collection. The label point is chosen to be sufficiently 
far from boundaries of the geometry. For a regular Polygon this will be the 
centroid.
+
+![ST_LabelPoint](../../../../image/ST_LabelPoint/ST_LabelPoint.svg 
"ST_LabelPoint")
 
 The algorithm is derived from Tippecanoe’s `polygon_to_anchor`, an approximate 
solution for label point generation, designed to be faster than optimal 
algorithms like `polylabel`. It searches for a “good enough” label point within 
a limited number of iterations. For geometry collections, only the largest 
Polygon by area is considered. While `ST_Centroid` is a fast algorithm to 
calculate the center of mass of a (Multi)Polygon, it may place the point 
outside of the Polygon or near a bounda [...]
 
diff --git 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_MaximumInscribedCircle.md
 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_MaximumInscribedCircle.md
index 50c4f4958e..204d27fe99 100644
--- 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_MaximumInscribedCircle.md
+++ 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_MaximumInscribedCircle.md
@@ -21,6 +21,8 @@
 
 Introduction: Finds the largest circle that is contained within a 
(multi)polygon, or which does not overlap any lines and points. Returns a row 
with fields:
 
+![ST_MaximumInscribedCircle](../../../../image/ST_MaximumInscribedCircle/ST_MaximumInscribedCircle.svg
 "ST_MaximumInscribedCircle")
+
 - `center` - center point of the circle
 - `nearest` - nearest point from the center of the circle
 - `radius` - radius of the circle
diff --git 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_MinimumBoundingCircle.md
 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_MinimumBoundingCircle.md
index 114a8ab05f..fe287d6043 100644
--- 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_MinimumBoundingCircle.md
+++ 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_MinimumBoundingCircle.md
@@ -21,6 +21,8 @@
 
 Introduction: Returns the smallest circle polygon that contains a geometry.
 
+![ST_MinimumBoundingCircle](../../../../image/ST_MinimumBoundingCircle/ST_MinimumBoundingCircle.svg
 "ST_MinimumBoundingCircle")
+
 Format: `ST_MinimumBoundingCircle(geom: geometry, [Optional] 
quadrantSegments:int)`
 
 Return type: `Geometry`
diff --git 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_MinimumBoundingRadius.md
 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_MinimumBoundingRadius.md
index b54838da74..6af88a9a93 100644
--- 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_MinimumBoundingRadius.md
+++ 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_MinimumBoundingRadius.md
@@ -21,6 +21,8 @@
 
 Introduction: Returns two columns containing the center point and radius of 
the smallest circle that contains a geometry.
 
+![ST_MinimumBoundingRadius](../../../../image/ST_MinimumBoundingRadius/ST_MinimumBoundingRadius.svg
 "ST_MinimumBoundingRadius")
+
 Format: `ST_MinimumBoundingRadius(geom: geometry)`
 
 Return type: `Struct<center: Geometry, radius: Double>`
diff --git 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_OrientedEnvelope.md 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_OrientedEnvelope.md
index 2ffea3353c..2c667c1b1b 100644
--- a/docs/api/snowflake/vector-data/Geometry-Processing/ST_OrientedEnvelope.md
+++ b/docs/api/snowflake/vector-data/Geometry-Processing/ST_OrientedEnvelope.md
@@ -21,6 +21,8 @@
 
 Introduction: Returns the minimum-area rotated rectangle enclosing a geometry. 
The rectangle may be rotated relative to the coordinate axes. Degenerate inputs 
may result in a Point or LineString being returned.
 
+![ST_OrientedEnvelope](../../../../image/ST_OrientedEnvelope/ST_OrientedEnvelope.svg
 "ST_OrientedEnvelope")
+
 Format: `ST_OrientedEnvelope(geometry: Geometry)`
 
 Return type: `Geometry`
diff --git 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_PointOnSurface.md 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_PointOnSurface.md
index 86374b377b..1d5a3539bd 100644
--- a/docs/api/snowflake/vector-data/Geometry-Processing/ST_PointOnSurface.md
+++ b/docs/api/snowflake/vector-data/Geometry-Processing/ST_PointOnSurface.md
@@ -21,6 +21,8 @@
 
 Introduction: Returns a POINT guaranteed to lie on the surface.
 
+![ST_PointOnSurface](../../../../image/ST_PointOnSurface/ST_PointOnSurface.svg 
"ST_PointOnSurface")
+
 Format: `ST_PointOnSurface(A:geometry)`
 
 Return type: `Geometry`
diff --git 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_Polygonize.md 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_Polygonize.md
index c284267643..402d76139d 100644
--- a/docs/api/snowflake/vector-data/Geometry-Processing/ST_Polygonize.md
+++ b/docs/api/snowflake/vector-data/Geometry-Processing/ST_Polygonize.md
@@ -21,6 +21,8 @@
 
 Introduction: Generates a GeometryCollection composed of polygons that are 
formed from the linework of an input GeometryCollection. When the input does 
not contain any linework that forms a polygon, the function will return an 
empty GeometryCollection.
 
+![ST_Polygonize](../../../../image/ST_Polygonize/ST_Polygonize.svg 
"ST_Polygonize")
+
 !!!note
     `ST_Polygonize` function assumes that the input geometries form a valid 
and simple closed linestring that can be turned into a polygon. If the input 
geometries are not noded or do not form such linestrings, the resulting 
GeometryCollection may be empty or may not contain the expected polygons.
 
diff --git 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_ReducePrecision.md 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_ReducePrecision.md
index 3503a43eb8..7b75b08735 100644
--- a/docs/api/snowflake/vector-data/Geometry-Processing/ST_ReducePrecision.md
+++ b/docs/api/snowflake/vector-data/Geometry-Processing/ST_ReducePrecision.md
@@ -21,6 +21,8 @@
 
 Introduction: Reduce the decimals places in the coordinates of the geometry to 
the given number of decimal places. The last decimal place will be rounded. 
This function was called ST_PrecisionReduce in versions prior to v1.5.0.
 
+![ST_ReducePrecision](../../../../image/ST_ReducePrecision/ST_ReducePrecision.svg
 "ST_ReducePrecision")
+
 Format: `ST_ReducePrecision (A: Geometry, B: Integer)`
 
 Return type: `Geometry`
diff --git a/docs/api/snowflake/vector-data/Geometry-Processing/ST_Simplify.md 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_Simplify.md
index 538d6b8663..2ac6a081ba 100644
--- a/docs/api/snowflake/vector-data/Geometry-Processing/ST_Simplify.md
+++ b/docs/api/snowflake/vector-data/Geometry-Processing/ST_Simplify.md
@@ -21,6 +21,8 @@
 
 Introduction: This function simplifies the input geometry by applying the 
Douglas-Peucker algorithm.
 
+![ST_Simplify](../../../../image/ST_Simplify/ST_Simplify.svg "ST_Simplify")
+
 !!!Note
     The simplification may not preserve topology, potentially producing 
invalid geometries. Use 
[ST_SimplifyPreserveTopology](ST_SimplifyPreserveTopology.md) to retain valid 
topology after simplification.
 
diff --git 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_SimplifyPolygonHull.md 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_SimplifyPolygonHull.md
index cc59c0b248..cfb75c4774 100644
--- 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_SimplifyPolygonHull.md
+++ 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_SimplifyPolygonHull.md
@@ -21,6 +21,8 @@
 
 Introduction: This function computes a topology-preserving simplified hull, 
either outer or inner, for a polygonal geometry input. An outer hull fully 
encloses the original geometry, while an inner hull lies entirely within. The 
result maintains the same structure as the input, including handling of 
MultiPolygons and holes, represented as a polygonal geometry formed from a 
subset of vertices.
 
+![ST_SimplifyPolygonHull](../../../../image/ST_SimplifyPolygonHull/ST_SimplifyPolygonHull.svg
 "ST_SimplifyPolygonHull")
+
 Vertex reduction is governed by the `vertexFactor` parameter ranging from 0 to 
1, with lower values yielding simpler outputs with fewer vertices and reduced 
concavity. For both hull types, a `vertexFactor` of 1.0 returns the original 
geometry. Specifically, for outer hulls, 0.0 computes the convex hull; for 
inner hulls, 0.0 produces a triangular geometry.
 
 The simplification algorithm iteratively removes concave corners containing 
the least area until reaching the target vertex count. It preserves topology by 
preventing edge crossings, ensuring the output is a valid polygonal geometry in 
all cases.
diff --git 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_SimplifyPreserveTopology.md
 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_SimplifyPreserveTopology.md
index df6a01c86d..4dc4840afd 100644
--- 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_SimplifyPreserveTopology.md
+++ 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_SimplifyPreserveTopology.md
@@ -19,8 +19,9 @@
 
 # ST_SimplifyPreserveTopology
 
-Introduction: Simplifies a geometry and ensures that the result is a valid 
geometry having the same dimension and number of components as the input,
-and with the components having the same topological relationship.
+Introduction: Simplifies a geometry and ensures that the result is a valid 
geometry having the same dimension and number of components as the input, and 
with the components having the same topological relationship.
+
+![ST_SimplifyPreserveTopology](../../../../image/ST_SimplifyPreserveTopology/ST_SimplifyPreserveTopology.svg
 "ST_SimplifyPreserveTopology")
 
 Format: `ST_SimplifyPreserveTopology (A:geometry, distanceTolerance: Double)`
 
diff --git 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_SimplifyVW.md 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_SimplifyVW.md
index 913986a4f7..3630703dd1 100644
--- a/docs/api/snowflake/vector-data/Geometry-Processing/ST_SimplifyVW.md
+++ b/docs/api/snowflake/vector-data/Geometry-Processing/ST_SimplifyVW.md
@@ -21,6 +21,8 @@
 
 Introduction: This function simplifies the input geometry by applying the 
Visvalingam-Whyatt algorithm.
 
+![ST_SimplifyVW](../../../../image/ST_SimplifyVW/ST_SimplifyVW.svg 
"ST_SimplifyVW")
+
 !!!Note
     The simplification may not preserve topology, potentially producing 
invalid geometries. Use 
[ST_SimplifyPreserveTopology](ST_SimplifyPreserveTopology.md) to retain valid 
topology after simplification.
 
diff --git 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_TriangulatePolygon.md 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_TriangulatePolygon.md
index 154d8d8277..743e7790b6 100644
--- 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_TriangulatePolygon.md
+++ 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_TriangulatePolygon.md
@@ -21,6 +21,8 @@
 
 Introduction: Generates the constrained Delaunay triangulation for the input 
Polygon. The constrained Delaunay triangulation is a set of triangles created 
from the Polygon's vertices that covers the Polygon area precisely, while 
maximizing the combined interior angles across all triangles compared to other 
possible triangulations. This produces the highest quality triangulation 
representation of the Polygon geometry. The function returns a 
GeometryCollection of Polygon geometries compris [...]
 
+![ST_TriangulatePolygon](../../../../image/ST_TriangulatePolygon/ST_TriangulatePolygon.svg
 "ST_TriangulatePolygon")
+
 Format: `ST_TriangulatePolygon(geom: Geometry)`
 
 Return type: `Geometry`
diff --git 
a/docs/api/snowflake/vector-data/Geometry-Processing/ST_VoronoiPolygons.md 
b/docs/api/snowflake/vector-data/Geometry-Processing/ST_VoronoiPolygons.md
index 2df0b50dc5..e2b565dd36 100644
--- a/docs/api/snowflake/vector-data/Geometry-Processing/ST_VoronoiPolygons.md
+++ b/docs/api/snowflake/vector-data/Geometry-Processing/ST_VoronoiPolygons.md
@@ -21,6 +21,8 @@
 
 Introduction: Returns a two-dimensional Voronoi diagram from the vertices of 
the supplied geometry. The result is a GeometryCollection of Polygons that 
covers an envelope larger than the extent of the input vertices. Returns null 
if input geometry is null. Returns an empty geometry collection if the input 
geometry contains only one vertex. Returns an empty geometry collection if the 
extend_to envelope has zero area.
 
+![ST_VoronoiPolygons](../../../../image/ST_VoronoiPolygons/ST_VoronoiPolygons.svg
 "ST_VoronoiPolygons")
+
 Format: `ST_VoronoiPolygons(g1: Geometry, tolerance: Double, extend_to: 
Geometry)`
 
 Return type: `Geometry`
diff --git a/docs/api/sql/Geometry-Processing/ST_BuildArea.md 
b/docs/api/sql/Geometry-Processing/ST_BuildArea.md
index b03135dafe..4749b1c594 100644
--- a/docs/api/sql/Geometry-Processing/ST_BuildArea.md
+++ b/docs/api/sql/Geometry-Processing/ST_BuildArea.md
@@ -21,6 +21,8 @@
 
 Introduction: Returns the areal geometry formed by the constituent linework of 
the input geometry.
 
+![ST_BuildArea](../../../image/ST_BuildArea/ST_BuildArea.svg "ST_BuildArea")
+
 Format: `ST_BuildArea (A: Geometry)`
 
 Return type: `Geometry`
diff --git a/docs/api/sql/Geometry-Processing/ST_Centroid.md 
b/docs/api/sql/Geometry-Processing/ST_Centroid.md
index 57bf535d02..602ac5d49e 100644
--- a/docs/api/sql/Geometry-Processing/ST_Centroid.md
+++ b/docs/api/sql/Geometry-Processing/ST_Centroid.md
@@ -21,6 +21,8 @@
 
 Introduction: Return the centroid point of A
 
+![ST_Centroid](../../../image/ST_Centroid/ST_Centroid.svg "ST_Centroid")
+
 Format: `ST_Centroid (A: Geometry)`
 
 Return type: `Geometry`
diff --git a/docs/api/sql/Geometry-Processing/ST_ConcaveHull.md 
b/docs/api/sql/Geometry-Processing/ST_ConcaveHull.md
index 184128db62..1b4b297150 100644
--- a/docs/api/sql/Geometry-Processing/ST_ConcaveHull.md
+++ b/docs/api/sql/Geometry-Processing/ST_ConcaveHull.md
@@ -21,6 +21,8 @@
 
 Introduction: Return the Concave Hull of polygon A, with alpha set to 
pctConvex[0, 1] in the Delaunay Triangulation method, the concave hull will not 
contain a hole unless allowHoles is set to true
 
+![ST_ConcaveHull](../../../image/ST_ConcaveHull/ST_ConcaveHull.svg 
"ST_ConcaveHull")
+
 Format:
 
 `ST_ConcaveHull (A: Geometry, pctConvex: Double)`
diff --git a/docs/api/sql/Geometry-Processing/ST_ConvexHull.md 
b/docs/api/sql/Geometry-Processing/ST_ConvexHull.md
index 12e540182a..8e67a57670 100644
--- a/docs/api/sql/Geometry-Processing/ST_ConvexHull.md
+++ b/docs/api/sql/Geometry-Processing/ST_ConvexHull.md
@@ -21,6 +21,8 @@
 
 Introduction: Return the Convex Hull of polygon A
 
+![ST_ConvexHull](../../../image/ST_ConvexHull/ST_ConvexHull.svg 
"ST_ConvexHull")
+
 Format: `ST_ConvexHull (A: Geometry)`
 
 Return type: `Geometry`
diff --git a/docs/api/sql/Geometry-Processing/ST_DelaunayTriangles.md 
b/docs/api/sql/Geometry-Processing/ST_DelaunayTriangles.md
index 2020e30252..457437ae71 100644
--- a/docs/api/sql/Geometry-Processing/ST_DelaunayTriangles.md
+++ b/docs/api/sql/Geometry-Processing/ST_DelaunayTriangles.md
@@ -21,6 +21,8 @@
 
 Introduction: This function computes the [Delaunay 
triangulation](https://en.wikipedia.org/wiki/Delaunay_triangulation) for the 
set of vertices in the input geometry. An optional `tolerance` parameter allows 
snapping nearby input vertices together prior to triangulation and can improve 
robustness in certain scenarios by handling near-coincident vertices. The 
default for  `tolerance` is 0. The Delaunay triangulation geometry is bounded 
by the convex hull of the input vertex set.
 
+![ST_DelaunayTriangles](../../../image/ST_DelaunayTriangles/ST_DelaunayTriangles.svg
 "ST_DelaunayTriangles")
+
 The output geometry representation depends on the provided `flag`:
 
 - `0` - a GeometryCollection of triangular Polygons (default option)
diff --git a/docs/api/sql/Geometry-Processing/ST_GeneratePoints.md 
b/docs/api/sql/Geometry-Processing/ST_GeneratePoints.md
index 51e4c22ec8..2ee1688f95 100644
--- a/docs/api/sql/Geometry-Processing/ST_GeneratePoints.md
+++ b/docs/api/sql/Geometry-Processing/ST_GeneratePoints.md
@@ -21,6 +21,8 @@
 
 Introduction: Generates a specified quantity of pseudo-random points within 
the boundaries of the provided polygonal geometry. When `seed` is either zero 
or not defined then output will be random.
 
+![ST_GeneratePoints](../../../image/ST_GeneratePoints/ST_GeneratePoints.svg 
"ST_GeneratePoints")
+
 Format:
 
 `ST_GeneratePoints(geom: Geometry, numPoints: Integer, seed: Long = 0)`
diff --git a/docs/api/sql/Geometry-Processing/ST_GeometricMedian.md 
b/docs/api/sql/Geometry-Processing/ST_GeometricMedian.md
index 0626870655..b7889fd494 100644
--- a/docs/api/sql/Geometry-Processing/ST_GeometricMedian.md
+++ b/docs/api/sql/Geometry-Processing/ST_GeometricMedian.md
@@ -21,6 +21,8 @@
 
 Introduction: Computes the approximate geometric median of a MultiPoint 
geometry using the Weiszfeld algorithm. The geometric median provides a 
centrality measure that is less sensitive to outlier points than the centroid.
 
+![ST_GeometricMedian](../../../image/ST_GeometricMedian/ST_GeometricMedian.svg 
"ST_GeometricMedian")
+
 The algorithm will iterate until the distance change between successive 
iterations is less than the supplied `tolerance` parameter. If this condition 
has not been met after `maxIter` iterations, the function will produce an error 
and exit, unless `failIfNotConverged` is set to `false`.
 
 If a `tolerance` value is not provided, a default `tolerance` value is `1e-6`.
diff --git a/docs/api/sql/Geometry-Processing/ST_LabelPoint.md 
b/docs/api/sql/Geometry-Processing/ST_LabelPoint.md
index 3d8157b2f1..7ad87f2a57 100644
--- a/docs/api/sql/Geometry-Processing/ST_LabelPoint.md
+++ b/docs/api/sql/Geometry-Processing/ST_LabelPoint.md
@@ -19,8 +19,9 @@
 
 # ST_LabelPoint
 
-Introduction: `ST_LabelPoint` computes and returns a label point for a given 
polygon or geometry collection. The label point is chosen to be sufficiently 
far from boundaries of the geometry. For a regular Polygon this will be the
-centroid.
+Introduction: `ST_LabelPoint` computes and returns a label point for a given 
polygon or geometry collection. The label point is chosen to be sufficiently 
far from boundaries of the geometry. For a regular Polygon this will be the 
centroid.
+
+![ST_LabelPoint](../../../image/ST_LabelPoint/ST_LabelPoint.svg 
"ST_LabelPoint")
 
 The algorithm is derived from Tippecanoe’s `polygon_to_anchor`, an approximate 
solution for label point generation, designed to be faster than optimal 
algorithms like `polylabel`. It searches for a “good enough” label point within 
a limited number of iterations. For geometry collections, only the largest 
Polygon by area is considered. While `ST_Centroid` is a fast algorithm to 
calculate the center of mass of a (Multi)Polygon, it may place the point 
outside of the Polygon or near a bounda [...]
 
diff --git a/docs/api/sql/Geometry-Processing/ST_MaximumInscribedCircle.md 
b/docs/api/sql/Geometry-Processing/ST_MaximumInscribedCircle.md
index b30f7a21c5..4bf6339470 100644
--- a/docs/api/sql/Geometry-Processing/ST_MaximumInscribedCircle.md
+++ b/docs/api/sql/Geometry-Processing/ST_MaximumInscribedCircle.md
@@ -21,6 +21,8 @@
 
 Introduction: Finds the largest circle that is contained within a 
(multi)polygon, or which does not overlap any lines and points. Returns a row 
with fields:
 
+![ST_MaximumInscribedCircle](../../../image/ST_MaximumInscribedCircle/ST_MaximumInscribedCircle.svg
 "ST_MaximumInscribedCircle")
+
 - `center` - center point of the circle
 - `nearest` - nearest point from the center of the circle
 - `radius` - radius of the circle
diff --git a/docs/api/sql/Geometry-Processing/ST_MinimumBoundingCircle.md 
b/docs/api/sql/Geometry-Processing/ST_MinimumBoundingCircle.md
index ff874edde6..18a053a67f 100644
--- a/docs/api/sql/Geometry-Processing/ST_MinimumBoundingCircle.md
+++ b/docs/api/sql/Geometry-Processing/ST_MinimumBoundingCircle.md
@@ -21,6 +21,8 @@
 
 Introduction: Returns the smallest circle polygon that contains a geometry. 
The optional quadrantSegments parameter determines how many segments to use per 
quadrant and the default number of segments has been changed to 48 since v1.5.0.
 
+![ST_MinimumBoundingCircle](../../../image/ST_MinimumBoundingCircle/ST_MinimumBoundingCircle.svg
 "ST_MinimumBoundingCircle")
+
 Format:
 
 `ST_MinimumBoundingCircle(geom: Geometry, [Optional] quadrantSegments: 
Integer)`
diff --git a/docs/api/sql/Geometry-Processing/ST_MinimumBoundingRadius.md 
b/docs/api/sql/Geometry-Processing/ST_MinimumBoundingRadius.md
index 45275a3b90..2e980ffee2 100644
--- a/docs/api/sql/Geometry-Processing/ST_MinimumBoundingRadius.md
+++ b/docs/api/sql/Geometry-Processing/ST_MinimumBoundingRadius.md
@@ -21,6 +21,8 @@
 
 Introduction: Returns a struct containing the center point and radius of the 
smallest circle that contains a geometry.
 
+![ST_MinimumBoundingRadius](../../../image/ST_MinimumBoundingRadius/ST_MinimumBoundingRadius.svg
 "ST_MinimumBoundingRadius")
+
 Format: `ST_MinimumBoundingRadius(geom: Geometry)`
 
 Return type: `Struct<center: Geometry, radius: Double>`
diff --git a/docs/api/sql/Geometry-Processing/ST_OrientedEnvelope.md 
b/docs/api/sql/Geometry-Processing/ST_OrientedEnvelope.md
index b121eb242d..1c064d5ce0 100644
--- a/docs/api/sql/Geometry-Processing/ST_OrientedEnvelope.md
+++ b/docs/api/sql/Geometry-Processing/ST_OrientedEnvelope.md
@@ -21,6 +21,8 @@
 
 Introduction: Returns the minimum-area rotated rectangle enclosing a geometry. 
The rectangle may be rotated relative to the coordinate axes. Degenerate inputs 
may result in a Point or LineString being returned.
 
+![ST_OrientedEnvelope](../../../image/ST_OrientedEnvelope/ST_OrientedEnvelope.svg
 "ST_OrientedEnvelope")
+
 Format: `ST_OrientedEnvelope(geom: Geometry)`
 
 Return type: `Geometry`
diff --git a/docs/api/sql/Geometry-Processing/ST_PointOnSurface.md 
b/docs/api/sql/Geometry-Processing/ST_PointOnSurface.md
index ca85c31846..c909aef922 100644
--- a/docs/api/sql/Geometry-Processing/ST_PointOnSurface.md
+++ b/docs/api/sql/Geometry-Processing/ST_PointOnSurface.md
@@ -21,6 +21,8 @@
 
 Introduction: Returns a POINT guaranteed to lie on the surface.
 
+![ST_PointOnSurface](../../../image/ST_PointOnSurface/ST_PointOnSurface.svg 
"ST_PointOnSurface")
+
 Format: `ST_PointOnSurface(A: Geometry)`
 
 Return type: `Geometry`
diff --git a/docs/api/sql/Geometry-Processing/ST_Polygonize.md 
b/docs/api/sql/Geometry-Processing/ST_Polygonize.md
index c59f66bb3c..b6bf36bb81 100644
--- a/docs/api/sql/Geometry-Processing/ST_Polygonize.md
+++ b/docs/api/sql/Geometry-Processing/ST_Polygonize.md
@@ -21,6 +21,8 @@
 
 Introduction: Generates a GeometryCollection composed of polygons that are 
formed from the linework of an input GeometryCollection. When the input does 
not contain any linework that forms a polygon, the function will return an 
empty GeometryCollection.
 
+![ST_Polygonize](../../../image/ST_Polygonize/ST_Polygonize.svg 
"ST_Polygonize")
+
 !!!note
     `ST_Polygonize` function assumes that the input geometries form a valid 
and simple closed linestring that can be turned into a polygon. If the input 
geometries are not noded or do not form such linestrings, the resulting 
GeometryCollection may be empty or may not contain the expected polygons.
 
diff --git a/docs/api/sql/Geometry-Processing/ST_ReducePrecision.md 
b/docs/api/sql/Geometry-Processing/ST_ReducePrecision.md
index 38d93086e5..4f4ba17230 100644
--- a/docs/api/sql/Geometry-Processing/ST_ReducePrecision.md
+++ b/docs/api/sql/Geometry-Processing/ST_ReducePrecision.md
@@ -21,6 +21,8 @@
 
 Introduction: Reduce the decimals places in the coordinates of the geometry to 
the given number of decimal places. The last decimal place will be rounded. 
This function was called ST_PrecisionReduce in versions prior to v1.5.0.
 
+![ST_ReducePrecision](../../../image/ST_ReducePrecision/ST_ReducePrecision.svg 
"ST_ReducePrecision")
+
 Format: `ST_ReducePrecision (A: Geometry, B: Integer)`
 
 Return type: `Geometry`
diff --git a/docs/api/sql/Geometry-Processing/ST_Simplify.md 
b/docs/api/sql/Geometry-Processing/ST_Simplify.md
index 25808aa23e..5ebe03d68a 100644
--- a/docs/api/sql/Geometry-Processing/ST_Simplify.md
+++ b/docs/api/sql/Geometry-Processing/ST_Simplify.md
@@ -21,6 +21,8 @@
 
 Introduction: This function simplifies the input geometry by applying the 
Douglas-Peucker algorithm.
 
+![ST_Simplify](../../../image/ST_Simplify/ST_Simplify.svg "ST_Simplify")
+
 !!!Note
     The simplification may not preserve topology, potentially producing 
invalid geometries. Use 
[ST_SimplifyPreserveTopology](ST_SimplifyPreserveTopology.md) to retain valid 
topology after simplification.
 
diff --git a/docs/api/sql/Geometry-Processing/ST_SimplifyPolygonHull.md 
b/docs/api/sql/Geometry-Processing/ST_SimplifyPolygonHull.md
index 0dcb357117..0ff94349d1 100644
--- a/docs/api/sql/Geometry-Processing/ST_SimplifyPolygonHull.md
+++ b/docs/api/sql/Geometry-Processing/ST_SimplifyPolygonHull.md
@@ -21,6 +21,8 @@
 
 Introduction: This function computes a topology-preserving simplified hull, 
either outer or inner, for a polygonal geometry input. An outer hull fully 
encloses the original geometry, while an inner hull lies entirely within. The 
result maintains the same structure as the input, including handling of 
MultiPolygons and holes, represented as a polygonal geometry formed from a 
subset of vertices.
 
+![ST_SimplifyPolygonHull](../../../image/ST_SimplifyPolygonHull/ST_SimplifyPolygonHull.svg
 "ST_SimplifyPolygonHull")
+
 Vertex reduction is governed by the `vertexFactor` parameter ranging from 0 to 
1, with lower values yielding simpler outputs with fewer vertices and reduced 
concavity. For both hull types, a `vertexFactor` of 1.0 returns the original 
geometry. Specifically, for outer hulls, 0.0 computes the convex hull; for 
inner hulls, 0.0 produces a triangular geometry.
 
 The simplification algorithm iteratively removes concave corners containing 
the least area until reaching the target vertex count. It preserves topology by 
preventing edge crossings, ensuring the output is a valid polygonal geometry in 
all cases.
diff --git a/docs/api/sql/Geometry-Processing/ST_SimplifyPreserveTopology.md 
b/docs/api/sql/Geometry-Processing/ST_SimplifyPreserveTopology.md
index ce76408ac2..13acee0a76 100644
--- a/docs/api/sql/Geometry-Processing/ST_SimplifyPreserveTopology.md
+++ b/docs/api/sql/Geometry-Processing/ST_SimplifyPreserveTopology.md
@@ -19,8 +19,9 @@
 
 # ST_SimplifyPreserveTopology
 
-Introduction: Simplifies a geometry and ensures that the result is a valid 
geometry having the same dimension and number of components as the input,
-and with the components having the same topological relationship.
+Introduction: Simplifies a geometry and ensures that the result is a valid 
geometry having the same dimension and number of components as the input, and 
with the components having the same topological relationship.
+
+![ST_SimplifyPreserveTopology](../../../image/ST_SimplifyPreserveTopology/ST_SimplifyPreserveTopology.svg
 "ST_SimplifyPreserveTopology")
 
 Return type: `Geometry`
 
diff --git a/docs/api/sql/Geometry-Processing/ST_SimplifyVW.md 
b/docs/api/sql/Geometry-Processing/ST_SimplifyVW.md
index 1a0693c317..55b2f4a6ca 100644
--- a/docs/api/sql/Geometry-Processing/ST_SimplifyVW.md
+++ b/docs/api/sql/Geometry-Processing/ST_SimplifyVW.md
@@ -21,6 +21,8 @@
 
 Introduction: This function simplifies the input geometry by applying the 
Visvalingam-Whyatt algorithm.
 
+![ST_SimplifyVW](../../../image/ST_SimplifyVW/ST_SimplifyVW.svg 
"ST_SimplifyVW")
+
 !!!Note
     The simplification may not preserve topology, potentially producing 
invalid geometries. Use 
[ST_SimplifyPreserveTopology](ST_SimplifyPreserveTopology.md) to retain valid 
topology after simplification.
 
diff --git a/docs/api/sql/Geometry-Processing/ST_TriangulatePolygon.md 
b/docs/api/sql/Geometry-Processing/ST_TriangulatePolygon.md
index 3e5c0b4caf..00b9d435ad 100644
--- a/docs/api/sql/Geometry-Processing/ST_TriangulatePolygon.md
+++ b/docs/api/sql/Geometry-Processing/ST_TriangulatePolygon.md
@@ -21,6 +21,8 @@
 
 Introduction: Generates the constrained Delaunay triangulation for the input 
Polygon. The constrained Delaunay triangulation is a set of triangles created 
from the Polygon's vertices that covers the Polygon area precisely, while 
maximizing the combined interior angles across all triangles compared to other 
possible triangulations. This produces the highest quality triangulation 
representation of the Polygon geometry. The function returns a 
GeometryCollection of Polygon geometries compris [...]
 
+![ST_TriangulatePolygon](../../../image/ST_TriangulatePolygon/ST_TriangulatePolygon.svg
 "ST_TriangulatePolygon")
+
 Format: `ST_TriangulatePolygon(geom: Geometry)`
 
 Return type: `Geometry`
diff --git a/docs/api/sql/Geometry-Processing/ST_VoronoiPolygons.md 
b/docs/api/sql/Geometry-Processing/ST_VoronoiPolygons.md
index 16aaa6628b..3df7b934e0 100644
--- a/docs/api/sql/Geometry-Processing/ST_VoronoiPolygons.md
+++ b/docs/api/sql/Geometry-Processing/ST_VoronoiPolygons.md
@@ -21,6 +21,8 @@
 
 Introduction: Returns a two-dimensional Voronoi diagram from the vertices of 
the supplied geometry. The result is a GeometryCollection of Polygons that 
covers an envelope larger than the extent of the input vertices. Returns null 
if input geometry is null. Returns an empty geometry collection if the input 
geometry contains only one vertex. Returns an empty geometry collection if the 
extend_to envelope has zero area.
 
+![ST_VoronoiPolygons](../../../image/ST_VoronoiPolygons/ST_VoronoiPolygons.svg 
"ST_VoronoiPolygons")
+
 Format: `ST_VoronoiPolygons(g1: Geometry, tolerance: Double, extend_to: 
Geometry)`
 
 Optional parameters:
diff --git a/docs/image/ST_BuildArea/ST_BuildArea.svg 
b/docs/image/ST_BuildArea/ST_BuildArea.svg
new file mode 100644
index 0000000000..015c97eb02
--- /dev/null
+++ b/docs/image/ST_BuildArea/ST_BuildArea.svg
@@ -0,0 +1,24 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 500 300" width="500" 
height="300" style="background:#ffffff">
+  <defs>
+    <style>
+      text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; }
+    </style>
+  </defs>
+  <text x="250" y="22" text-anchor="middle" font-size="16" font-weight="bold" 
fill="#333333">ST_BuildArea</text>
+  <polyline points="150.0,230.0 350.0,230.0 350.0,70.0 150.0,70.0 150.0,230.0" 
fill="none" stroke="#4a90d9" stroke-width="2" stroke-linecap="round" 
stroke-linejoin="round" stroke-dasharray="6,3" />
+  <circle cx="150.0" cy="230.0" r="3" fill="#4a90d9" />
+  <circle cx="350.0" cy="230.0" r="3" fill="#4a90d9" />
+  <circle cx="350.0" cy="70.0" r="3" fill="#4a90d9" />
+  <circle cx="150.0" cy="70.0" r="3" fill="#4a90d9" />
+  <circle cx="150.0" cy="230.0" r="3" fill="#4a90d9" />
+  <polyline points="250.0,230.0 250.0,70.0" fill="none" stroke="#4a90d9" 
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" 
stroke-dasharray="6,3" />
+  <circle cx="250.0" cy="230.0" r="3" fill="#4a90d9" />
+  <circle cx="250.0" cy="70.0" r="3" fill="#4a90d9" />
+  <path d="M 150.0 230.0 L 250.0 230.0 L 250.0 70.0 L 150.0 70.0 L 150.0 230.0 
Z" fill="rgba(46,204,113,0.35)" stroke="#2ecc71" stroke-width="3" 
fill-rule="evenodd" />
+  <path d="M 250.0 230.0 L 350.0 230.0 L 350.0 70.0 L 250.0 70.0 L 250.0 230.0 
Z" fill="rgba(46,204,113,0.35)" stroke="#2ecc71" stroke-width="3" 
fill-rule="evenodd" />
+  <text x="250" y="292" text-anchor="middle" font-size="13" fill="#333333" 
font-style="italic">Returns polygons formed by constituent linework</text>
+  <rect x="176" y="255" width="12" height="12" rx="2" fill="#4a90d9" 
stroke="#4a90d9" stroke-width="1" />
+  <text x="192" y="266" font-size="13" fill="#333333">Input</text>
+  <rect x="246" y="255" width="12" height="12" rx="2" fill="#2ecc71" 
stroke="#2ecc71" stroke-width="1" />
+  <text x="262" y="266" font-size="13" fill="#333333">Result</text>
+</svg>
\ No newline at end of file
diff --git a/docs/image/ST_Centroid/ST_Centroid.svg 
b/docs/image/ST_Centroid/ST_Centroid.svg
new file mode 100644
index 0000000000..0f98b8497d
--- /dev/null
+++ b/docs/image/ST_Centroid/ST_Centroid.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 500 300" width="500" 
height="300" style="background:#ffffff">
+  <defs>
+    <style>
+      text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; }
+    </style>
+  </defs>
+  <text x="250" y="22" text-anchor="middle" font-size="16" font-weight="bold" 
fill="#333333">ST_Centroid</text>
+  <path d="M 157.48 232.24 L 321.96 232.24 L 342.52 150.0 L 260.28 67.76 L 
157.48 108.88 L 157.48 232.24 Z" fill="rgba(74,144,217,0.15)" stroke="#4a90d9" 
stroke-width="2" fill-rule="evenodd" />
+  <circle cx="247.94" cy="158.22" r="8" fill="white" stroke="#2ecc71" 
stroke-width="2.5" />
+  <circle cx="247.94" cy="158.22" r="4" fill="#2ecc71" />
+  <text x="250" y="292" text-anchor="middle" font-size="13" fill="#333333" 
font-style="italic">Returns the centroid point of the geometry</text>
+  <rect x="176" y="255" width="12" height="12" rx="2" fill="#4a90d9" 
stroke="#4a90d9" stroke-width="1" />
+  <text x="192" y="266" font-size="13" fill="#333333">Input</text>
+  <rect x="246" y="255" width="12" height="12" rx="2" fill="#2ecc71" 
stroke="#2ecc71" stroke-width="1" />
+  <text x="262" y="266" font-size="13" fill="#333333">Result</text>
+</svg>
\ No newline at end of file
diff --git a/docs/image/ST_ConcaveHull/ST_ConcaveHull.svg 
b/docs/image/ST_ConcaveHull/ST_ConcaveHull.svg
new file mode 100644
index 0000000000..b3438adef9
--- /dev/null
+++ b/docs/image/ST_ConcaveHull/ST_ConcaveHull.svg
@@ -0,0 +1,26 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 500 300" width="500" 
height="300" style="background:#ffffff">
+  <defs>
+    <style>
+      text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; }
+    </style>
+  </defs>
+  <text x="250" y="22" text-anchor="middle" font-size="16" font-weight="bold" 
fill="#333333">ST_ConcaveHull</text>
+  <path d="M 150.0 230.0 L 210.0 230.0 L 290.0 230.0 L 350.0 230.0 L 350.0 
150.0 L 350.0 70.0 L 290.0 70.0 L 290.0 130.0 L 210.0 130.0 L 210.0 70.0 L 
150.0 70.0 L 150.0 150.0 L 150.0 230.0 Z" fill="rgba(46,204,113,0.35)" 
stroke="#2ecc71" stroke-width="3" fill-rule="evenodd" />
+  <circle cx="150.0" cy="230.0" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="150.0" cy="150.0" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="150.0" cy="70.0" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="210.0" cy="70.0" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="210.0" cy="130.0" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="290.0" cy="130.0" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="290.0" cy="70.0" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="350.0" cy="70.0" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="350.0" cy="150.0" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="350.0" cy="230.0" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="290.0" cy="230.0" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="210.0" cy="230.0" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <text x="250" y="292" text-anchor="middle" font-size="13" fill="#333333" 
font-style="italic">Returns the concave hull — a tight boundary around the 
points</text>
+  <rect x="176" y="255" width="12" height="12" rx="2" fill="#4a90d9" 
stroke="#4a90d9" stroke-width="1" />
+  <text x="192" y="266" font-size="13" fill="#333333">Input</text>
+  <rect x="246" y="255" width="12" height="12" rx="2" fill="#2ecc71" 
stroke="#2ecc71" stroke-width="1" />
+  <text x="262" y="266" font-size="13" fill="#333333">Result</text>
+</svg>
\ No newline at end of file
diff --git a/docs/image/ST_ConvexHull/ST_ConvexHull.svg 
b/docs/image/ST_ConvexHull/ST_ConvexHull.svg
new file mode 100644
index 0000000000..e16f7c2144
--- /dev/null
+++ b/docs/image/ST_ConvexHull/ST_ConvexHull.svg
@@ -0,0 +1,22 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 500 300" width="500" 
height="300" style="background:#ffffff">
+  <defs>
+    <style>
+      text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; }
+    </style>
+  </defs>
+  <text x="250" y="22" text-anchor="middle" font-size="16" font-weight="bold" 
fill="#333333">ST_ConvexHull</text>
+  <path d="M 184.19 215.81 L 259.4 234.62 L 334.62 197.01 L 315.81 102.99 L 
240.6 65.38 L 165.38 121.79 L 184.19 215.81 Z" fill="rgba(46,204,113,0.35)" 
stroke="#2ecc71" stroke-width="3" fill-rule="evenodd" />
+  <circle cx="184.19" cy="215.81" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="259.4" cy="234.62" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="334.62" cy="197.01" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="315.81" cy="102.99" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="240.6" cy="65.38" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="165.38" cy="121.79" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="240.6" cy="159.4" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="278.21" cy="178.21" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <text x="250" y="292" text-anchor="middle" font-size="13" fill="#333333" 
font-style="italic">Returns the convex hull of the geometry</text>
+  <rect x="176" y="255" width="12" height="12" rx="2" fill="#4a90d9" 
stroke="#4a90d9" stroke-width="1" />
+  <text x="192" y="266" font-size="13" fill="#333333">Input</text>
+  <rect x="246" y="255" width="12" height="12" rx="2" fill="#2ecc71" 
stroke="#2ecc71" stroke-width="1" />
+  <text x="262" y="266" font-size="13" fill="#333333">Result</text>
+</svg>
\ No newline at end of file
diff --git a/docs/image/ST_DelaunayTriangles/ST_DelaunayTriangles.svg 
b/docs/image/ST_DelaunayTriangles/ST_DelaunayTriangles.svg
new file mode 100644
index 0000000000..7ef41dbbf8
--- /dev/null
+++ b/docs/image/ST_DelaunayTriangles/ST_DelaunayTriangles.svg
@@ -0,0 +1,22 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 500 300" width="500" 
height="300" style="background:#ffffff">
+  <defs>
+    <style>
+      text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; }
+    </style>
+  </defs>
+  <text x="250" y="22" text-anchor="middle" font-size="16" font-weight="bold" 
fill="#333333">ST_DelaunayTriangles</text>
+  <path d="M 150.0 230.0 L 350.0 230.0 L 250.0 150.0 L 150.0 230.0 Z" 
fill="rgba(46,204,113,0.35)" stroke="#2ecc71" stroke-width="2" 
fill-rule="evenodd" />
+  <path d="M 350.0 230.0 L 350.0 70.0 L 250.0 150.0 L 350.0 230.0 Z" 
fill="rgba(46,204,113,0.35)" stroke="#2ecc71" stroke-width="2" 
fill-rule="evenodd" />
+  <path d="M 350.0 70.0 L 150.0 70.0 L 250.0 150.0 L 350.0 70.0 Z" 
fill="rgba(46,204,113,0.35)" stroke="#2ecc71" stroke-width="2" 
fill-rule="evenodd" />
+  <path d="M 150.0 70.0 L 150.0 230.0 L 250.0 150.0 L 150.0 70.0 Z" 
fill="rgba(46,204,113,0.35)" stroke="#2ecc71" stroke-width="2" 
fill-rule="evenodd" />
+  <circle cx="150.0" cy="230.0" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="350.0" cy="230.0" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="350.0" cy="70.0" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="150.0" cy="70.0" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="250.0" cy="150.0" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <text x="250" y="292" text-anchor="middle" font-size="13" fill="#333333" 
font-style="italic">Computes the Delaunay triangulation of input vertices</text>
+  <rect x="176" y="255" width="12" height="12" rx="2" fill="#4a90d9" 
stroke="#4a90d9" stroke-width="1" />
+  <text x="192" y="266" font-size="13" fill="#333333">Input</text>
+  <rect x="246" y="255" width="12" height="12" rx="2" fill="#2ecc71" 
stroke="#2ecc71" stroke-width="1" />
+  <text x="262" y="266" font-size="13" fill="#333333">Result</text>
+</svg>
\ No newline at end of file
diff --git a/docs/image/ST_GeneratePoints/ST_GeneratePoints.svg 
b/docs/image/ST_GeneratePoints/ST_GeneratePoints.svg
new file mode 100644
index 0000000000..89f817fac8
--- /dev/null
+++ b/docs/image/ST_GeneratePoints/ST_GeneratePoints.svg
@@ -0,0 +1,24 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 500 300" width="500" 
height="300" style="background:#ffffff">
+  <defs>
+    <style>
+      text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; }
+    </style>
+  </defs>
+  <text x="250" y="22" text-anchor="middle" font-size="16" font-weight="bold" 
fill="#333333">ST_GeneratePoints</text>
+  <path d="M 150.0 230.0 L 350.0 230.0 L 350.0 70.0 L 150.0 70.0 L 150.0 230.0 
Z" fill="rgba(74,144,217,0.15)" stroke="#4a90d9" stroke-width="2" 
fill-rule="evenodd" stroke-dasharray="6,3" />
+  <circle cx="180.0" cy="184.0" r="5" fill="#2ecc71" stroke="#2ecc71" 
stroke-width="1.5" />
+  <circle cx="294.0" cy="108.0" r="5" fill="#2ecc71" stroke="#2ecc71" 
stroke-width="1.5" />
+  <circle cx="226.0" cy="200.0" r="5" fill="#2ecc71" stroke="#2ecc71" 
stroke-width="1.5" />
+  <circle cx="312.0" cy="156.0" r="5" fill="#2ecc71" stroke="#2ecc71" 
stroke-width="1.5" />
+  <circle cx="198.0" cy="114.0" r="5" fill="#2ecc71" stroke="#2ecc71" 
stroke-width="1.5" />
+  <circle cx="276.0" cy="146.0" r="5" fill="#2ecc71" stroke="#2ecc71" 
stroke-width="1.5" />
+  <circle cx="244.0" cy="88.0" r="5" fill="#2ecc71" stroke="#2ecc71" 
stroke-width="1.5" />
+  <circle cx="330.0" cy="206.0" r="5" fill="#2ecc71" stroke="#2ecc71" 
stroke-width="1.5" />
+  <circle cx="260.0" cy="120.0" r="5" fill="#2ecc71" stroke="#2ecc71" 
stroke-width="1.5" />
+  <circle cx="186.0" cy="92.0" r="5" fill="#2ecc71" stroke="#2ecc71" 
stroke-width="1.5" />
+  <text x="250" y="292" text-anchor="middle" font-size="13" fill="#333333" 
font-style="italic">Generates pseudo-random points within the geometry</text>
+  <rect x="176" y="255" width="12" height="12" rx="2" fill="#4a90d9" 
stroke="#4a90d9" stroke-width="1" />
+  <text x="192" y="266" font-size="13" fill="#333333">Input</text>
+  <rect x="246" y="255" width="12" height="12" rx="2" fill="#2ecc71" 
stroke="#2ecc71" stroke-width="1" />
+  <text x="262" y="266" font-size="13" fill="#333333">Result</text>
+</svg>
\ No newline at end of file
diff --git a/docs/image/ST_GeometricMedian/ST_GeometricMedian.svg 
b/docs/image/ST_GeometricMedian/ST_GeometricMedian.svg
new file mode 100644
index 0000000000..655354d152
--- /dev/null
+++ b/docs/image/ST_GeometricMedian/ST_GeometricMedian.svg
@@ -0,0 +1,21 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 500 300" width="500" 
height="300" style="background:#ffffff">
+  <defs>
+    <style>
+      text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; }
+    </style>
+  </defs>
+  <text x="250" y="22" text-anchor="middle" font-size="16" font-weight="bold" 
fill="#333333">ST_GeometricMedian</text>
+  <circle cx="165.38" cy="213.46" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="186.54" cy="234.62" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="207.69" cy="192.31" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="186.54" cy="171.15" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="207.69" cy="213.46" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="334.62" cy="65.38" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="192.88" cy="202.88" r="8" fill="white" stroke="#2ecc71" 
stroke-width="2.5" />
+  <circle cx="192.88" cy="202.88" r="4" fill="#2ecc71" />
+  <text x="250" y="292" text-anchor="middle" font-size="13" fill="#333333" 
font-style="italic">Returns the geometric median — robust to outliers</text>
+  <rect x="176" y="255" width="12" height="12" rx="2" fill="#4a90d9" 
stroke="#4a90d9" stroke-width="1" />
+  <text x="192" y="266" font-size="13" fill="#333333">Input</text>
+  <rect x="246" y="255" width="12" height="12" rx="2" fill="#2ecc71" 
stroke="#2ecc71" stroke-width="1" />
+  <text x="262" y="266" font-size="13" fill="#333333">Result</text>
+</svg>
\ No newline at end of file
diff --git a/docs/image/ST_LabelPoint/ST_LabelPoint.svg 
b/docs/image/ST_LabelPoint/ST_LabelPoint.svg
new file mode 100644
index 0000000000..6aeee13a1e
--- /dev/null
+++ b/docs/image/ST_LabelPoint/ST_LabelPoint.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 500 300" width="500" 
height="300" style="background:#ffffff">
+  <defs>
+    <style>
+      text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; }
+    </style>
+  </defs>
+  <text x="250" y="22" text-anchor="middle" font-size="16" font-weight="bold" 
fill="#333333">ST_LabelPoint</text>
+  <path d="M 165.38 234.62 L 334.62 234.62 L 334.62 166.92 L 250.0 166.92 L 
250.0 65.38 L 165.38 65.38 L 165.38 234.62 Z" fill="rgba(74,144,217,0.15)" 
stroke="#4a90d9" stroke-width="2" fill-rule="evenodd" />
+  <circle cx="207.69" cy="150.0" r="8" fill="white" stroke="#2ecc71" 
stroke-width="2.5" />
+  <circle cx="207.69" cy="150.0" r="4" fill="#2ecc71" />
+  <text x="250" y="292" text-anchor="middle" font-size="13" fill="#333333" 
font-style="italic">Returns an interior point suitable for placing a 
label</text>
+  <rect x="176" y="255" width="12" height="12" rx="2" fill="#4a90d9" 
stroke="#4a90d9" stroke-width="1" />
+  <text x="192" y="266" font-size="13" fill="#333333">Input</text>
+  <rect x="246" y="255" width="12" height="12" rx="2" fill="#2ecc71" 
stroke="#2ecc71" stroke-width="1" />
+  <text x="262" y="266" font-size="13" fill="#333333">Result</text>
+</svg>
\ No newline at end of file
diff --git a/docs/image/ST_MaximumInscribedCircle/ST_MaximumInscribedCircle.svg 
b/docs/image/ST_MaximumInscribedCircle/ST_MaximumInscribedCircle.svg
new file mode 100644
index 0000000000..9baa00072d
--- /dev/null
+++ b/docs/image/ST_MaximumInscribedCircle/ST_MaximumInscribedCircle.svg
@@ -0,0 +1,17 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 500 300" width="500" 
height="300" style="background:#ffffff">
+  <defs>
+    <style>
+      text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; }
+    </style>
+  </defs>
+  <text x="250" y="22" text-anchor="middle" font-size="16" font-weight="bold" 
fill="#333333">ST_MaximumInscribedCircle</text>
+  <path d="M 112.5 218.75 L 387.5 218.75 L 387.5 81.25 L 112.5 81.25 L 112.5 
218.75 Z" fill="rgba(74,144,217,0.15)" stroke="#4a90d9" stroke-width="2" 
fill-rule="evenodd" />
+  <path d="M 318.75 150.0 L 318.16 141.03 L 316.41 132.21 L 313.52 123.69 L 
309.54 115.62 L 304.54 108.15 L 298.61 101.39 L 291.85 95.46 L 284.38 90.46 L 
276.31 86.48 L 267.79 83.59 L 258.97 81.84 L 250.0 81.25 L 241.03 81.84 L 
232.21 83.59 L 223.69 86.48 L 215.62 90.46 L 208.15 95.46 L 201.39 101.39 L 
195.46 108.15 L 190.46 115.62 L 186.48 123.69 L 183.59 132.21 L 181.84 141.03 L 
181.25 150.0 L 181.84 158.97 L 183.59 167.79 L 186.48 176.31 L 190.46 184.38 L 
195.46 191.85 L 201.39 198.61 [...]
+  <circle cx="250.0" cy="150.0" r="8" fill="white" stroke="#2ecc71" 
stroke-width="2.5" />
+  <circle cx="250.0" cy="150.0" r="4" fill="#2ecc71" />
+  <text x="250" y="292" text-anchor="middle" font-size="13" fill="#333333" 
font-style="italic">Finds the largest circle that fits inside the 
geometry</text>
+  <rect x="176" y="255" width="12" height="12" rx="2" fill="#4a90d9" 
stroke="#4a90d9" stroke-width="1" />
+  <text x="192" y="266" font-size="13" fill="#333333">Input</text>
+  <rect x="246" y="255" width="12" height="12" rx="2" fill="#2ecc71" 
stroke="#2ecc71" stroke-width="1" />
+  <text x="262" y="266" font-size="13" fill="#333333">Result</text>
+</svg>
\ No newline at end of file
diff --git a/docs/image/ST_MinimumBoundingCircle/ST_MinimumBoundingCircle.svg 
b/docs/image/ST_MinimumBoundingCircle/ST_MinimumBoundingCircle.svg
new file mode 100644
index 0000000000..d000b6b195
--- /dev/null
+++ b/docs/image/ST_MinimumBoundingCircle/ST_MinimumBoundingCircle.svg
@@ -0,0 +1,17 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 500 300" width="500" 
height="300" style="background:#ffffff">
+  <defs>
+    <style>
+      text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; }
+    </style>
+  </defs>
+  <text x="250" y="22" text-anchor="middle" font-size="16" font-weight="bold" 
fill="#333333">ST_MinimumBoundingCircle</text>
+  <path d="M 334.62 150.0 L 333.89 138.96 L 331.73 128.1 L 328.17 117.62 L 
323.28 107.69 L 317.13 98.49 L 309.83 90.17 L 301.51 82.87 L 292.31 76.72 L 
282.38 71.83 L 271.9 68.27 L 261.04 66.11 L 250.0 65.38 L 238.96 66.11 L 228.1 
68.27 L 217.62 71.83 L 207.69 76.72 L 198.49 82.87 L 190.17 90.17 L 182.87 
98.49 L 176.72 107.69 L 171.83 117.62 L 168.27 128.1 L 166.11 138.96 L 165.38 
150.0 L 166.11 161.04 L 168.27 171.9 L 171.83 182.38 L 176.72 192.31 L 182.87 
201.51 L 190.17 209.83 L 198.49 [...]
+  <path d="M 177.06 193.04 L 322.94 193.04 L 250.0 65.38 L 177.06 193.04 Z" 
fill="rgba(74,144,217,0.15)" stroke="#4a90d9" stroke-width="2" 
fill-rule="evenodd" />
+  <circle cx="250.0" cy="150.0" r="8" fill="white" stroke="#2ecc71" 
stroke-width="2.5" />
+  <circle cx="250.0" cy="150.0" r="4" fill="#2ecc71" />
+  <text x="250" y="292" text-anchor="middle" font-size="13" fill="#333333" 
font-style="italic">Returns the smallest circle that contains the 
geometry</text>
+  <rect x="176" y="255" width="12" height="12" rx="2" fill="#4a90d9" 
stroke="#4a90d9" stroke-width="1" />
+  <text x="192" y="266" font-size="13" fill="#333333">Input</text>
+  <rect x="246" y="255" width="12" height="12" rx="2" fill="#2ecc71" 
stroke="#2ecc71" stroke-width="1" />
+  <text x="262" y="266" font-size="13" fill="#333333">Result</text>
+</svg>
\ No newline at end of file
diff --git a/docs/image/ST_MinimumBoundingRadius/ST_MinimumBoundingRadius.svg 
b/docs/image/ST_MinimumBoundingRadius/ST_MinimumBoundingRadius.svg
new file mode 100644
index 0000000000..afdf7fe35d
--- /dev/null
+++ b/docs/image/ST_MinimumBoundingRadius/ST_MinimumBoundingRadius.svg
@@ -0,0 +1,19 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 500 300" width="500" 
height="300" style="background:#ffffff">
+  <defs>
+    <style>
+      text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; }
+    </style>
+  </defs>
+  <text x="250" y="22" text-anchor="middle" font-size="16" font-weight="bold" 
fill="#333333">ST_MinimumBoundingRadius</text>
+  <path d="M 334.62 150.0 L 333.89 138.96 L 331.73 128.1 L 328.17 117.62 L 
323.28 107.69 L 317.13 98.49 L 309.83 90.17 L 301.51 82.87 L 292.31 76.72 L 
282.38 71.83 L 271.9 68.27 L 261.04 66.11 L 250.0 65.38 L 238.96 66.11 L 228.1 
68.27 L 217.62 71.83 L 207.69 76.72 L 198.49 82.87 L 190.17 90.17 L 182.87 
98.49 L 176.72 107.69 L 171.83 117.62 L 168.27 128.1 L 166.11 138.96 L 165.38 
150.0 L 166.11 161.04 L 168.27 171.9 L 171.83 182.38 L 176.72 192.31 L 182.87 
201.51 L 190.17 209.83 L 198.49 [...]
+  <path d="M 177.06 193.04 L 322.94 193.04 L 250.0 65.38 L 177.06 193.04 Z" 
fill="rgba(74,144,217,0.15)" stroke="#4a90d9" stroke-width="2" 
fill-rule="evenodd" />
+  <circle cx="250.0" cy="150.0" r="8" fill="white" stroke="#2ecc71" 
stroke-width="2.5" />
+  <circle cx="250.0" cy="150.0" r="4" fill="#2ecc71" />
+  <line x1="250.0" y1="150.0" x2="250.0" y2="65.38" stroke="#2ecc71" 
stroke-width="2" stroke-dasharray="4,3" />
+  <text x="258" y="103" font-size="13" fill="#2ecc71" 
font-style="italic">radius</text>
+  <text x="250" y="292" text-anchor="middle" font-size="13" fill="#333333" 
font-style="italic">Returns center and radius of the smallest bounding 
circle</text>
+  <rect x="176" y="255" width="12" height="12" rx="2" fill="#4a90d9" 
stroke="#4a90d9" stroke-width="1" />
+  <text x="192" y="266" font-size="13" fill="#333333">Input</text>
+  <rect x="246" y="255" width="12" height="12" rx="2" fill="#2ecc71" 
stroke="#2ecc71" stroke-width="1" />
+  <text x="262" y="266" font-size="13" fill="#333333">Result</text>
+</svg>
\ No newline at end of file
diff --git a/docs/image/ST_OrientedEnvelope/ST_OrientedEnvelope.svg 
b/docs/image/ST_OrientedEnvelope/ST_OrientedEnvelope.svg
new file mode 100644
index 0000000000..51aac94e0b
--- /dev/null
+++ b/docs/image/ST_OrientedEnvelope/ST_OrientedEnvelope.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 500 300" width="500" 
height="300" style="background:#ffffff">
+  <defs>
+    <style>
+      text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; }
+    </style>
+  </defs>
+  <text x="250" y="22" text-anchor="middle" font-size="16" font-weight="bold" 
fill="#333333">ST_OrientedEnvelope</text>
+  <path d="M 168.99 226.74 L 360.85 141.47 L 331.01 73.26 L 139.15 158.53 L 
168.99 226.74 Z" fill="rgba(46,204,113,0.35)" stroke="#2ecc71" stroke-width="3" 
fill-rule="evenodd" />
+  <circle cx="154.07" cy="192.64" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="196.71" cy="213.95" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="345.93" cy="107.36" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="303.29" cy="86.05" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <text x="250" y="292" text-anchor="middle" font-size="13" fill="#333333" 
font-style="italic">Returns the minimum-area rotated bounding rectangle</text>
+  <rect x="176" y="255" width="12" height="12" rx="2" fill="#4a90d9" 
stroke="#4a90d9" stroke-width="1" />
+  <text x="192" y="266" font-size="13" fill="#333333">Input</text>
+  <rect x="246" y="255" width="12" height="12" rx="2" fill="#2ecc71" 
stroke="#2ecc71" stroke-width="1" />
+  <text x="262" y="266" font-size="13" fill="#333333">Result</text>
+</svg>
\ No newline at end of file
diff --git a/docs/image/ST_PointOnSurface/ST_PointOnSurface.svg 
b/docs/image/ST_PointOnSurface/ST_PointOnSurface.svg
new file mode 100644
index 0000000000..bb890afebd
--- /dev/null
+++ b/docs/image/ST_PointOnSurface/ST_PointOnSurface.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 500 300" width="500" 
height="300" style="background:#ffffff">
+  <defs>
+    <style>
+      text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; }
+    </style>
+  </defs>
+  <text x="250" y="22" text-anchor="middle" font-size="16" font-weight="bold" 
fill="#333333">ST_PointOnSurface</text>
+  <path d="M 165.38 234.62 L 334.62 234.62 L 334.62 166.92 L 250.0 166.92 L 
250.0 65.38 L 165.38 65.38 L 165.38 234.62 Z" fill="rgba(74,144,217,0.15)" 
stroke="#4a90d9" stroke-width="2" fill-rule="evenodd" />
+  <circle cx="250.0" cy="200.77" r="8" fill="white" stroke="#2ecc71" 
stroke-width="2.5" />
+  <circle cx="250.0" cy="200.77" r="4" fill="#2ecc71" />
+  <text x="250" y="292" text-anchor="middle" font-size="13" fill="#333333" 
font-style="italic">Returns a point guaranteed to lie on the surface</text>
+  <rect x="176" y="255" width="12" height="12" rx="2" fill="#4a90d9" 
stroke="#4a90d9" stroke-width="1" />
+  <text x="192" y="266" font-size="13" fill="#333333">Input</text>
+  <rect x="246" y="255" width="12" height="12" rx="2" fill="#2ecc71" 
stroke="#2ecc71" stroke-width="1" />
+  <text x="262" y="266" font-size="13" fill="#333333">Result</text>
+</svg>
\ No newline at end of file
diff --git a/docs/image/ST_Polygonize/ST_Polygonize.svg 
b/docs/image/ST_Polygonize/ST_Polygonize.svg
new file mode 100644
index 0000000000..a64079fa65
--- /dev/null
+++ b/docs/image/ST_Polygonize/ST_Polygonize.svg
@@ -0,0 +1,30 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 500 300" width="500" 
height="300" style="background:#ffffff">
+  <defs>
+    <style>
+      text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; }
+    </style>
+  </defs>
+  <text x="250" y="22" text-anchor="middle" font-size="16" font-weight="bold" 
fill="#333333">ST_Polygonize</text>
+  <polyline points="145.24,228.57 354.76,228.57" fill="none" stroke="#4a90d9" 
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" 
stroke-dasharray="6,3" />
+  <circle cx="145.24" cy="228.57" r="3" fill="#4a90d9" />
+  <circle cx="354.76" cy="228.57" r="3" fill="#4a90d9" />
+  <polyline points="354.76,228.57 354.76,71.43" fill="none" stroke="#4a90d9" 
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" 
stroke-dasharray="6,3" />
+  <circle cx="354.76" cy="228.57" r="3" fill="#4a90d9" />
+  <circle cx="354.76" cy="71.43" r="3" fill="#4a90d9" />
+  <polyline points="354.76,71.43 145.24,71.43" fill="none" stroke="#4a90d9" 
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" 
stroke-dasharray="6,3" />
+  <circle cx="354.76" cy="71.43" r="3" fill="#4a90d9" />
+  <circle cx="145.24" cy="71.43" r="3" fill="#4a90d9" />
+  <polyline points="145.24,71.43 145.24,228.57" fill="none" stroke="#4a90d9" 
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" 
stroke-dasharray="6,3" />
+  <circle cx="145.24" cy="71.43" r="3" fill="#4a90d9" />
+  <circle cx="145.24" cy="228.57" r="3" fill="#4a90d9" />
+  <polyline points="250.0,228.57 250.0,71.43" fill="none" stroke="#4a90d9" 
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" 
stroke-dasharray="6,3" />
+  <circle cx="250.0" cy="228.57" r="3" fill="#4a90d9" />
+  <circle cx="250.0" cy="71.43" r="3" fill="#4a90d9" />
+  <path d="M 145.24 228.57 L 250.0 228.57 L 250.0 71.43 L 145.24 71.43 L 
145.24 228.57 Z" fill="rgba(46,204,113,0.35)" stroke="#2ecc71" stroke-width="3" 
fill-rule="evenodd" />
+  <path d="M 250.0 228.57 L 354.76 228.57 L 354.76 71.43 L 250.0 71.43 L 250.0 
228.57 Z" fill="rgba(46,204,113,0.35)" stroke="#2ecc71" stroke-width="3" 
fill-rule="evenodd" />
+  <text x="250" y="292" text-anchor="middle" font-size="13" fill="#333333" 
font-style="italic">Creates polygons formed from the input linework</text>
+  <rect x="176" y="255" width="12" height="12" rx="2" fill="#4a90d9" 
stroke="#4a90d9" stroke-width="1" />
+  <text x="192" y="266" font-size="13" fill="#333333">Input</text>
+  <rect x="246" y="255" width="12" height="12" rx="2" fill="#2ecc71" 
stroke="#2ecc71" stroke-width="1" />
+  <text x="262" y="266" font-size="13" fill="#333333">Result</text>
+</svg>
\ No newline at end of file
diff --git a/docs/image/ST_ReducePrecision/ST_ReducePrecision.svg 
b/docs/image/ST_ReducePrecision/ST_ReducePrecision.svg
new file mode 100644
index 0000000000..d82084642a
--- /dev/null
+++ b/docs/image/ST_ReducePrecision/ST_ReducePrecision.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 500 300" width="500" 
height="300" style="background:#ffffff">
+  <defs>
+    <style>
+      text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; }
+    </style>
+  </defs>
+  <text x="250" y="22" text-anchor="middle" font-size="16" font-weight="bold" 
fill="#333333">ST_ReducePrecision</text>
+  <path d="M 163.57 222.68 L 246.07 224.64 L 332.5 216.79 L 340.36 136.25 L 
291.25 75.36 L 206.79 69.46 L 159.64 130.36 L 163.57 222.68 Z" 
fill="rgba(74,144,217,0.15)" stroke="#4a90d9" stroke-width="2" 
fill-rule="evenodd" stroke-dasharray="6,3" />
+  <path d="M 171.43 230.54 L 250.0 230.54 L 328.57 210.89 L 348.21 132.32 L 
289.29 73.39 L 210.71 73.39 L 151.79 132.32 L 171.43 230.54 Z" 
fill="rgba(46,204,113,0.35)" stroke="#2ecc71" stroke-width="3" 
fill-rule="evenodd" />
+  <text x="250" y="292" text-anchor="middle" font-size="13" fill="#333333" 
font-style="italic">Reduces coordinate precision to the given number of decimal 
places</text>
+  <rect x="176" y="255" width="12" height="12" rx="2" fill="#4a90d9" 
stroke="#4a90d9" stroke-width="1" />
+  <text x="192" y="266" font-size="13" fill="#333333">Input</text>
+  <rect x="246" y="255" width="12" height="12" rx="2" fill="#2ecc71" 
stroke="#2ecc71" stroke-width="1" />
+  <text x="262" y="266" font-size="13" fill="#333333">Result</text>
+</svg>
\ No newline at end of file
diff --git a/docs/image/ST_Simplify/ST_Simplify.svg 
b/docs/image/ST_Simplify/ST_Simplify.svg
new file mode 100644
index 0000000000..8679c75fe9
--- /dev/null
+++ b/docs/image/ST_Simplify/ST_Simplify.svg
@@ -0,0 +1,29 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 500 300" width="500" 
height="300" style="background:#ffffff">
+  <defs>
+    <style>
+      text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; }
+    </style>
+  </defs>
+  <text x="250" y="22" text-anchor="middle" font-size="16" font-weight="bold" 
fill="#333333">ST_Simplify</text>
+  <polyline points="127.78,174.44 152.22,125.56 176.67,198.89 201.11,101.11 
225.56,223.33 250.0,76.67 274.44,198.89 298.89,125.56 323.33,223.33 
347.78,101.11 372.22,174.44" fill="none" stroke="#4a90d9" stroke-width="2" 
stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="6,3" />
+  <circle cx="127.78" cy="174.44" r="3" fill="#4a90d9" />
+  <circle cx="152.22" cy="125.56" r="3" fill="#4a90d9" />
+  <circle cx="176.67" cy="198.89" r="3" fill="#4a90d9" />
+  <circle cx="201.11" cy="101.11" r="3" fill="#4a90d9" />
+  <circle cx="225.56" cy="223.33" r="3" fill="#4a90d9" />
+  <circle cx="250.0" cy="76.67" r="3" fill="#4a90d9" />
+  <circle cx="274.44" cy="198.89" r="3" fill="#4a90d9" />
+  <circle cx="298.89" cy="125.56" r="3" fill="#4a90d9" />
+  <circle cx="323.33" cy="223.33" r="3" fill="#4a90d9" />
+  <circle cx="347.78" cy="101.11" r="3" fill="#4a90d9" />
+  <circle cx="372.22" cy="174.44" r="3" fill="#4a90d9" />
+  <polyline points="127.78,174.44 250.0,76.67 372.22,174.44" fill="none" 
stroke="#2ecc71" stroke-width="3" stroke-linecap="round" 
stroke-linejoin="round" />
+  <circle cx="127.78" cy="174.44" r="3" fill="#2ecc71" />
+  <circle cx="250.0" cy="76.67" r="3" fill="#2ecc71" />
+  <circle cx="372.22" cy="174.44" r="3" fill="#2ecc71" />
+  <text x="250" y="292" text-anchor="middle" font-size="13" fill="#333333" 
font-style="italic">Simplifies geometry using the Douglas-Peucker 
algorithm</text>
+  <rect x="176" y="255" width="12" height="12" rx="2" fill="#4a90d9" 
stroke="#4a90d9" stroke-width="1" />
+  <text x="192" y="266" font-size="13" fill="#333333">Input</text>
+  <rect x="246" y="255" width="12" height="12" rx="2" fill="#2ecc71" 
stroke="#2ecc71" stroke-width="1" />
+  <text x="262" y="266" font-size="13" fill="#333333">Result</text>
+</svg>
\ No newline at end of file
diff --git a/docs/image/ST_SimplifyPolygonHull/ST_SimplifyPolygonHull.svg 
b/docs/image/ST_SimplifyPolygonHull/ST_SimplifyPolygonHull.svg
new file mode 100644
index 0000000000..72d7ab539d
--- /dev/null
+++ b/docs/image/ST_SimplifyPolygonHull/ST_SimplifyPolygonHull.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 500 300" width="500" 
height="300" style="background:#ffffff">
+  <defs>
+    <style>
+      text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; }
+    </style>
+  </defs>
+  <text x="250" y="22" text-anchor="middle" font-size="16" font-weight="bold" 
fill="#333333">ST_SimplifyPolygonHull</text>
+  <path d="M 165.38 200.77 L 182.31 234.62 L 216.15 217.69 L 250.0 234.62 L 
283.85 217.69 L 317.69 234.62 L 334.62 200.77 L 334.62 150.0 L 317.69 116.15 L 
334.62 82.31 L 300.77 65.38 L 250.0 82.31 L 216.15 65.38 L 165.38 82.31 L 
165.38 133.08 L 182.31 166.92 L 165.38 200.77 Z" fill="rgba(74,144,217,0.15)" 
stroke="#4a90d9" stroke-width="2" fill-rule="evenodd" stroke-dasharray="6,3" />
+  <path d="M 182.31 234.62 L 317.69 234.62 L 334.62 200.77 L 334.62 82.31 L 
300.77 65.38 L 165.38 82.31 L 165.38 200.77 L 182.31 234.62 Z" 
fill="rgba(46,204,113,0.35)" stroke="#2ecc71" stroke-width="3" 
fill-rule="evenodd" />
+  <text x="250" y="292" text-anchor="middle" font-size="13" fill="#333333" 
font-style="italic">Returns a topology-preserving simplified hull of the 
polygon</text>
+  <rect x="176" y="255" width="12" height="12" rx="2" fill="#4a90d9" 
stroke="#4a90d9" stroke-width="1" />
+  <text x="192" y="266" font-size="13" fill="#333333">Input</text>
+  <rect x="246" y="255" width="12" height="12" rx="2" fill="#2ecc71" 
stroke="#2ecc71" stroke-width="1" />
+  <text x="262" y="266" font-size="13" fill="#333333">Result</text>
+</svg>
\ No newline at end of file
diff --git 
a/docs/image/ST_SimplifyPreserveTopology/ST_SimplifyPreserveTopology.svg 
b/docs/image/ST_SimplifyPreserveTopology/ST_SimplifyPreserveTopology.svg
new file mode 100644
index 0000000000..5791c068c0
--- /dev/null
+++ b/docs/image/ST_SimplifyPreserveTopology/ST_SimplifyPreserveTopology.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 500 300" width="500" 
height="300" style="background:#ffffff">
+  <defs>
+    <style>
+      text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; }
+    </style>
+  </defs>
+  <text x="250" y="22" text-anchor="middle" font-size="16" font-weight="bold" 
fill="#333333">ST_SimplifyPreserveTopology</text>
+  <path d="M 250.0 65.38 L 224.62 124.62 L 165.38 150.0 L 224.62 175.38 L 
250.0 234.62 L 275.38 175.38 L 334.62 150.0 L 275.38 124.62 L 250.0 65.38 Z" 
fill="rgba(74,144,217,0.15)" stroke="#4a90d9" stroke-width="2" 
fill-rule="evenodd" stroke-dasharray="6,3" />
+  <path d="M 250.0 65.38 L 165.38 150.0 L 250.0 234.62 L 334.62 150.0 L 250.0 
65.38 Z" fill="rgba(46,204,113,0.35)" stroke="#2ecc71" stroke-width="3" 
fill-rule="evenodd" />
+  <text x="250" y="292" text-anchor="middle" font-size="13" fill="#333333" 
font-style="italic">Simplifies geometry while preserving topological 
validity</text>
+  <rect x="176" y="255" width="12" height="12" rx="2" fill="#4a90d9" 
stroke="#4a90d9" stroke-width="1" />
+  <text x="192" y="266" font-size="13" fill="#333333">Input</text>
+  <rect x="246" y="255" width="12" height="12" rx="2" fill="#2ecc71" 
stroke="#2ecc71" stroke-width="1" />
+  <text x="262" y="266" font-size="13" fill="#333333">Result</text>
+</svg>
\ No newline at end of file
diff --git a/docs/image/ST_SimplifyVW/ST_SimplifyVW.svg 
b/docs/image/ST_SimplifyVW/ST_SimplifyVW.svg
new file mode 100644
index 0000000000..58a82c6f49
--- /dev/null
+++ b/docs/image/ST_SimplifyVW/ST_SimplifyVW.svg
@@ -0,0 +1,32 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 500 300" width="500" 
height="300" style="background:#ffffff">
+  <defs>
+    <style>
+      text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; }
+    </style>
+  </defs>
+  <text x="250" y="22" text-anchor="middle" font-size="16" font-weight="bold" 
fill="#333333">ST_SimplifyVW</text>
+  <polyline points="112.5,163.75 140.0,108.75 167.5,191.25 195.0,81.25 
222.5,218.75 250.0,108.75 277.5,191.25 305.0,81.25 332.5,218.75 360.0,136.25 
387.5,163.75" fill="none" stroke="#4a90d9" stroke-width="2" 
stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="6,3" />
+  <circle cx="112.5" cy="163.75" r="3" fill="#4a90d9" />
+  <circle cx="140.0" cy="108.75" r="3" fill="#4a90d9" />
+  <circle cx="167.5" cy="191.25" r="3" fill="#4a90d9" />
+  <circle cx="195.0" cy="81.25" r="3" fill="#4a90d9" />
+  <circle cx="222.5" cy="218.75" r="3" fill="#4a90d9" />
+  <circle cx="250.0" cy="108.75" r="3" fill="#4a90d9" />
+  <circle cx="277.5" cy="191.25" r="3" fill="#4a90d9" />
+  <circle cx="305.0" cy="81.25" r="3" fill="#4a90d9" />
+  <circle cx="332.5" cy="218.75" r="3" fill="#4a90d9" />
+  <circle cx="360.0" cy="136.25" r="3" fill="#4a90d9" />
+  <circle cx="387.5" cy="163.75" r="3" fill="#4a90d9" />
+  <polyline points="112.5,163.75 195.0,81.25 222.5,218.75 305.0,81.25 
332.5,218.75 387.5,163.75" fill="none" stroke="#2ecc71" stroke-width="3" 
stroke-linecap="round" stroke-linejoin="round" />
+  <circle cx="112.5" cy="163.75" r="3" fill="#2ecc71" />
+  <circle cx="195.0" cy="81.25" r="3" fill="#2ecc71" />
+  <circle cx="222.5" cy="218.75" r="3" fill="#2ecc71" />
+  <circle cx="305.0" cy="81.25" r="3" fill="#2ecc71" />
+  <circle cx="332.5" cy="218.75" r="3" fill="#2ecc71" />
+  <circle cx="387.5" cy="163.75" r="3" fill="#2ecc71" />
+  <text x="250" y="292" text-anchor="middle" font-size="13" fill="#333333" 
font-style="italic">Simplifies geometry using the Visvalingam-Whyatt 
algorithm</text>
+  <rect x="176" y="255" width="12" height="12" rx="2" fill="#4a90d9" 
stroke="#4a90d9" stroke-width="1" />
+  <text x="192" y="266" font-size="13" fill="#333333">Input</text>
+  <rect x="246" y="255" width="12" height="12" rx="2" fill="#2ecc71" 
stroke="#2ecc71" stroke-width="1" />
+  <text x="262" y="266" font-size="13" fill="#333333">Result</text>
+</svg>
\ No newline at end of file
diff --git a/docs/image/ST_TriangulatePolygon/ST_TriangulatePolygon.svg 
b/docs/image/ST_TriangulatePolygon/ST_TriangulatePolygon.svg
new file mode 100644
index 0000000000..63c5427da0
--- /dev/null
+++ b/docs/image/ST_TriangulatePolygon/ST_TriangulatePolygon.svg
@@ -0,0 +1,17 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 500 300" width="500" 
height="300" style="background:#ffffff">
+  <defs>
+    <style>
+      text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; }
+    </style>
+  </defs>
+  <text x="250" y="22" text-anchor="middle" font-size="16" font-weight="bold" 
fill="#333333">ST_TriangulatePolygon</text>
+  <path d="M 150.0 230.0 L 350.0 230.0 L 250.0 150.0 L 150.0 230.0 Z" 
fill="rgba(46,204,113,0.35)" stroke="#2ecc71" stroke-width="2" 
fill-rule="evenodd" />
+  <path d="M 350.0 230.0 L 350.0 70.0 L 250.0 150.0 L 350.0 230.0 Z" 
fill="rgba(46,204,113,0.35)" stroke="#2ecc71" stroke-width="2" 
fill-rule="evenodd" />
+  <path d="M 150.0 230.0 L 250.0 150.0 L 150.0 70.0 L 150.0 230.0 Z" 
fill="rgba(46,204,113,0.35)" stroke="#2ecc71" stroke-width="2" 
fill-rule="evenodd" />
+  <path d="M 150.0 230.0 L 350.0 230.0 L 350.0 70.0 L 250.0 150.0 L 150.0 70.0 
L 150.0 230.0 Z" fill="none" stroke="#4a90d9" stroke-width="2" 
fill-rule="evenodd" stroke-dasharray="6,3" />
+  <text x="250" y="292" text-anchor="middle" font-size="13" fill="#333333" 
font-style="italic">Computes the constrained Delaunay triangulation of a 
polygon</text>
+  <rect x="176" y="255" width="12" height="12" rx="2" fill="#4a90d9" 
stroke="#4a90d9" stroke-width="1" />
+  <text x="192" y="266" font-size="13" fill="#333333">Input</text>
+  <rect x="246" y="255" width="12" height="12" rx="2" fill="#2ecc71" 
stroke="#2ecc71" stroke-width="1" />
+  <text x="262" y="266" font-size="13" fill="#333333">Result</text>
+</svg>
\ No newline at end of file
diff --git a/docs/image/ST_VoronoiPolygons/ST_VoronoiPolygons.svg 
b/docs/image/ST_VoronoiPolygons/ST_VoronoiPolygons.svg
new file mode 100644
index 0000000000..a2c3fc7bbb
--- /dev/null
+++ b/docs/image/ST_VoronoiPolygons/ST_VoronoiPolygons.svg
@@ -0,0 +1,21 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 500 300" width="500" 
height="300" style="background:#ffffff">
+  <defs>
+    <style>
+      text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; }
+    </style>
+  </defs>
+  <text x="250" y="22" text-anchor="middle" font-size="16" font-weight="bold" 
fill="#333333">ST_VoronoiPolygons</text>
+  <path d="M 165.38 234.62 L 250.0 234.62 L 250.0 150.0 L 165.38 150.0 L 
165.38 234.62 Z" fill="rgba(46,204,113,0.35)" stroke="#2ecc71" stroke-width="2" 
fill-rule="evenodd" />
+  <path d="M 250.0 234.62 L 334.62 234.62 L 334.62 150.0 L 250.0 150.0 L 250.0 
234.62 Z" fill="rgba(46,204,113,0.35)" stroke="#2ecc71" stroke-width="2" 
fill-rule="evenodd" />
+  <path d="M 250.0 150.0 L 334.62 150.0 L 334.62 65.38 L 250.0 65.38 L 250.0 
150.0 Z" fill="rgba(46,204,113,0.35)" stroke="#2ecc71" stroke-width="2" 
fill-rule="evenodd" />
+  <path d="M 165.38 150.0 L 250.0 150.0 L 250.0 65.38 L 165.38 65.38 L 165.38 
150.0 Z" fill="rgba(46,204,113,0.35)" stroke="#2ecc71" stroke-width="2" 
fill-rule="evenodd" />
+  <circle cx="207.69" cy="192.31" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="292.31" cy="192.31" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="292.31" cy="107.69" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <circle cx="207.69" cy="107.69" r="5" fill="#4a90d9" stroke="#4a90d9" 
stroke-width="1.5" />
+  <text x="250" y="292" text-anchor="middle" font-size="13" fill="#333333" 
font-style="italic">Returns Voronoi diagram from the vertices of the 
geometry</text>
+  <rect x="176" y="255" width="12" height="12" rx="2" fill="#4a90d9" 
stroke="#4a90d9" stroke-width="1" />
+  <text x="192" y="266" font-size="13" fill="#333333">Input</text>
+  <rect x="246" y="255" width="12" height="12" rx="2" fill="#2ecc71" 
stroke="#2ecc71" stroke-width="1" />
+  <text x="262" y="266" font-size="13" fill="#333333">Result</text>
+</svg>
\ No newline at end of file

Reply via email to