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 a31822cfeb [GH-2678] Add SVG visuals for geometry validation functions
(Phase 7) (#2689)
a31822cfeb is described below
commit a31822cfeb489b06f788f52ff5213733b5cd7f2e
Author: Jia Yu <[email protected]>
AuthorDate: Wed Mar 4 19:00:46 2026 -0700
[GH-2678] Add SVG visuals for geometry validation functions (Phase 7)
(#2689)
---
docs/api/flink/Geometry-Validation/ST_IsValid.md | 2 ++
docs/api/flink/Geometry-Validation/ST_IsValidReason.md | 2 ++
docs/api/flink/Geometry-Validation/ST_MakeValid.md | 2 ++
.../vector-data/Geometry-Validation/ST_IsValid.md | 2 ++
.../vector-data/Geometry-Validation/ST_IsValidDetail.md | 2 ++
.../vector-data/Geometry-Validation/ST_IsValidReason.md | 2 ++
.../vector-data/Geometry-Validation/ST_MakeValid.md | 2 ++
docs/api/sql/Geometry-Validation/ST_IsValid.md | 2 ++
docs/api/sql/Geometry-Validation/ST_IsValidDetail.md | 2 ++
docs/api/sql/Geometry-Validation/ST_IsValidReason.md | 2 ++
docs/api/sql/Geometry-Validation/ST_MakeValid.md | 2 ++
docs/image/ST_IsValid/ST_IsValid.svg | 9 +++++++++
docs/image/ST_IsValidDetail/ST_IsValidDetail.svg | 12 ++++++++++++
docs/image/ST_IsValidReason/ST_IsValidReason.svg | 9 +++++++++
docs/image/ST_MakeValid/ST_MakeValid.svg | 17 +++++++++++++++++
15 files changed, 69 insertions(+)
diff --git a/docs/api/flink/Geometry-Validation/ST_IsValid.md
b/docs/api/flink/Geometry-Validation/ST_IsValid.md
index 9808079dc3..16ed54813d 100644
--- a/docs/api/flink/Geometry-Validation/ST_IsValid.md
+++ b/docs/api/flink/Geometry-Validation/ST_IsValid.md
@@ -24,6 +24,8 @@ Introduction: Test if a geometry is well-formed. The function
can be invoked wit
- 0 (default): Use usual OGC SFS (Simple Features Specification) validity
semantics.
- 1: "ESRI flag", Accepts certain self-touching rings as valid, which are
considered invalid under OGC standards.
+
+
Formats:
```
diff --git a/docs/api/flink/Geometry-Validation/ST_IsValidReason.md
b/docs/api/flink/Geometry-Validation/ST_IsValidReason.md
index e51a2ba932..8ec17d1989 100644
--- a/docs/api/flink/Geometry-Validation/ST_IsValidReason.md
+++ b/docs/api/flink/Geometry-Validation/ST_IsValidReason.md
@@ -24,6 +24,8 @@ Introduction: Returns text stating if the geometry is valid.
If not, it provides
- 0 (default): Use usual OGC SFS (Simple Features Specification) validity
semantics.
- 1: "ESRI flag", Accepts certain self-touching rings as valid, which are
considered invalid under OGC standards.
+
+
Formats:
```
diff --git a/docs/api/flink/Geometry-Validation/ST_MakeValid.md
b/docs/api/flink/Geometry-Validation/ST_MakeValid.md
index ea32bb4ee1..dd3ee3bfca 100644
--- a/docs/api/flink/Geometry-Validation/ST_MakeValid.md
+++ b/docs/api/flink/Geometry-Validation/ST_MakeValid.md
@@ -24,6 +24,8 @@ Introduction: Given an invalid geometry, create a valid
representation of the ge
Collapsed geometries are either converted to empty (keepCollapsed=true) or a
valid geometry of lower dimension (keepCollapsed=false).
Default is keepCollapsed=false.
+
+
Format:
`ST_MakeValid (A: Geometry)`
diff --git a/docs/api/snowflake/vector-data/Geometry-Validation/ST_IsValid.md
b/docs/api/snowflake/vector-data/Geometry-Validation/ST_IsValid.md
index 91aa6c815c..2d89353eab 100644
--- a/docs/api/snowflake/vector-data/Geometry-Validation/ST_IsValid.md
+++ b/docs/api/snowflake/vector-data/Geometry-Validation/ST_IsValid.md
@@ -24,6 +24,8 @@ Introduction: Test if a geometry is well-formed. The function
can be invoked wit
- 0 (default): Use usual OGC SFS (Simple Features Specification) validity
semantics.
- 1: "ESRI flag", Accepts certain self-touching rings as valid, which are
considered invalid under OGC standards.
+
+
Formats:
```
diff --git
a/docs/api/snowflake/vector-data/Geometry-Validation/ST_IsValidDetail.md
b/docs/api/snowflake/vector-data/Geometry-Validation/ST_IsValidDetail.md
index fa2f4af26a..08756d4de9 100644
--- a/docs/api/snowflake/vector-data/Geometry-Validation/ST_IsValidDetail.md
+++ b/docs/api/snowflake/vector-data/Geometry-Validation/ST_IsValidDetail.md
@@ -28,6 +28,8 @@ The flags parameter is a bitfield with the following options:
- 0: Use usual OGC SFS (Simple Features Specification) validity semantics.
- 1: "ESRI flag", Accepts certain self-touching rings as valid, which are
considered invalid under OGC standards.
+
+
Format:
```sql
diff --git
a/docs/api/snowflake/vector-data/Geometry-Validation/ST_IsValidReason.md
b/docs/api/snowflake/vector-data/Geometry-Validation/ST_IsValidReason.md
index 97a783e74b..a06c21db0c 100644
--- a/docs/api/snowflake/vector-data/Geometry-Validation/ST_IsValidReason.md
+++ b/docs/api/snowflake/vector-data/Geometry-Validation/ST_IsValidReason.md
@@ -24,6 +24,8 @@ Introduction: Returns text stating if the geometry is valid.
If not, it provides
- 0 (default): Use usual OGC SFS (Simple Features Specification) validity
semantics.
- 1: "ESRI flag", Accepts certain self-touching rings as valid, which are
considered invalid under OGC standards.
+
+
Formats:
```
diff --git a/docs/api/snowflake/vector-data/Geometry-Validation/ST_MakeValid.md
b/docs/api/snowflake/vector-data/Geometry-Validation/ST_MakeValid.md
index 16e6b8a2c7..48d6a4f49f 100644
--- a/docs/api/snowflake/vector-data/Geometry-Validation/ST_MakeValid.md
+++ b/docs/api/snowflake/vector-data/Geometry-Validation/ST_MakeValid.md
@@ -24,6 +24,8 @@ Introduction: Given an invalid geometry, create a valid
representation of the ge
Collapsed geometries are either converted to empty (keepCollapsed=true) or a
valid geometry of lower dimension (keepCollapsed=false).
Default is keepCollapsed=false.
+
+
Format: `ST_MakeValid (A:geometry)`
Format: `ST_MakeValid (A:geometry, keepCollapsed:Boolean)`
diff --git a/docs/api/sql/Geometry-Validation/ST_IsValid.md
b/docs/api/sql/Geometry-Validation/ST_IsValid.md
index 9808079dc3..16ed54813d 100644
--- a/docs/api/sql/Geometry-Validation/ST_IsValid.md
+++ b/docs/api/sql/Geometry-Validation/ST_IsValid.md
@@ -24,6 +24,8 @@ Introduction: Test if a geometry is well-formed. The function
can be invoked wit
- 0 (default): Use usual OGC SFS (Simple Features Specification) validity
semantics.
- 1: "ESRI flag", Accepts certain self-touching rings as valid, which are
considered invalid under OGC standards.
+
+
Formats:
```
diff --git a/docs/api/sql/Geometry-Validation/ST_IsValidDetail.md
b/docs/api/sql/Geometry-Validation/ST_IsValidDetail.md
index b740072cfd..2bde64bb0e 100644
--- a/docs/api/sql/Geometry-Validation/ST_IsValidDetail.md
+++ b/docs/api/sql/Geometry-Validation/ST_IsValidDetail.md
@@ -28,6 +28,8 @@ The flags parameter is a bitfield with the following options:
- 0 (default): Use usual OGC SFS (Simple Features Specification) validity
semantics.
- 1: "ESRI flag", Accepts certain self-touching rings as valid, which are
considered invalid under OGC standards.
+
+
Formats:
```sql
diff --git a/docs/api/sql/Geometry-Validation/ST_IsValidReason.md
b/docs/api/sql/Geometry-Validation/ST_IsValidReason.md
index e51a2ba932..8ec17d1989 100644
--- a/docs/api/sql/Geometry-Validation/ST_IsValidReason.md
+++ b/docs/api/sql/Geometry-Validation/ST_IsValidReason.md
@@ -24,6 +24,8 @@ Introduction: Returns text stating if the geometry is valid.
If not, it provides
- 0 (default): Use usual OGC SFS (Simple Features Specification) validity
semantics.
- 1: "ESRI flag", Accepts certain self-touching rings as valid, which are
considered invalid under OGC standards.
+
+
Formats:
```
diff --git a/docs/api/sql/Geometry-Validation/ST_MakeValid.md
b/docs/api/sql/Geometry-Validation/ST_MakeValid.md
index 6b6e211439..01adb4e1a5 100644
--- a/docs/api/sql/Geometry-Validation/ST_MakeValid.md
+++ b/docs/api/sql/Geometry-Validation/ST_MakeValid.md
@@ -24,6 +24,8 @@ Introduction: Given an invalid geometry, create a valid
representation of the ge
Collapsed geometries are either converted to empty (keepCollapsed=false) or a
valid geometry of lower dimension (keepCollapsed=true).
Default is keepCollapsed=false.
+
+
Format:
`ST_MakeValid (A: Geometry)`
diff --git a/docs/image/ST_IsValid/ST_IsValid.svg
b/docs/image/ST_IsValid/ST_IsValid.svg
new file mode 100644
index 0000000000..73b2dd283e
--- /dev/null
+++ b/docs/image/ST_IsValid/ST_IsValid.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="380" height="120" viewBox="0 0
380 120">
+ <rect width="380" height="120" fill="#f5f5f5" rx="5"/>
+ <polygon points="40.0,80.0 100.0,80.0 100.0,20.0 40.0,20.0 40.0,80.0"
stroke="#43A047" stroke-width="2" fill="rgba(67,160,71,0.15)"/>
+ <rect x="54.0" y="94.0" width="42" height="22" rx="11" fill="#43A047"/>
+ <text x="75.0" y="109.0" font-family="sans-serif" font-size="11"
font-weight="bold" fill="#fff" text-anchor="middle">true</text>
+ <polygon points="240.0,80.0 300.0,20.0 300.0,80.0 240.0,20.0 240.0,80.0"
stroke="#E53935" stroke-width="2" fill="rgba(229,57,53,0.15)"/>
+ <rect x="250.5" y="94.0" width="49" height="22" rx="11" fill="#E53935"/>
+ <text x="275.0" y="109.0" font-family="sans-serif" font-size="11"
font-weight="bold" fill="#fff" text-anchor="middle">false</text>
+</svg>
diff --git a/docs/image/ST_IsValidDetail/ST_IsValidDetail.svg
b/docs/image/ST_IsValidDetail/ST_IsValidDetail.svg
new file mode 100644
index 0000000000..c7531b261e
--- /dev/null
+++ b/docs/image/ST_IsValidDetail/ST_IsValidDetail.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="400" height="130" viewBox="0 0
400 130">
+ <rect width="400" height="130" fill="#f5f5f5" rx="5"/>
+ <defs><marker id="arrowhead" markerWidth="8" markerHeight="6" refX="8"
refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6"
fill="#666"/></marker></defs>
+ <polygon points="35.0,90.0 105.0,20.0 105.0,90.0 35.0,20.0 35.0,90.0"
stroke="#E53935" stroke-width="2" fill="rgba(229,57,53,0.15)"/>
+ <circle cx="70.0" cy="55.0" r="5" fill="#E53935" stroke="#fff"
stroke-width="1.5"/>
+ <line x1="150" y1="65" x2="190" y2="65" stroke="#666" stroke-width="1.5"
marker-end="url(#arrowhead)"/>
+ <rect x="200" y="20" width="190" height="90" rx="4" fill="#FFF3E0"
stroke="#FF9800" stroke-width="1"/>
+ <text x="208.0" y="38.0" font-family="monospace" font-size="10"
fill="#E53935" text-anchor="start">valid: false</text>
+ <text x="208.0" y="58.0" font-family="monospace" font-size="10" fill="#333"
text-anchor="start">reason: Self-</text>
+ <text x="208.0" y="72.0" font-family="monospace" font-size="10" fill="#333"
text-anchor="start"> intersection</text>
+ <text x="208.0" y="92.0" font-family="monospace" font-size="10" fill="#666"
text-anchor="start">location: POINT(2 2)</text>
+</svg>
diff --git a/docs/image/ST_IsValidReason/ST_IsValidReason.svg
b/docs/image/ST_IsValidReason/ST_IsValidReason.svg
new file mode 100644
index 0000000000..b56a986f61
--- /dev/null
+++ b/docs/image/ST_IsValidReason/ST_IsValidReason.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="400" height="120" viewBox="0 0
400 120">
+ <rect width="400" height="120" fill="#f5f5f5" rx="5"/>
+ <defs><marker id="arrowhead" markerWidth="8" markerHeight="6" refX="8"
refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6"
fill="#666"/></marker></defs>
+ <polygon points="40.0,80.0 100.0,20.0 100.0,80.0 40.0,20.0 40.0,80.0"
stroke="#E53935" stroke-width="2" fill="rgba(229,57,53,0.15)"/>
+ <circle cx="70.0" cy="50.0" r="5" fill="#E53935" stroke="#fff"
stroke-width="1.5"/>
+ <line x1="150" y1="60" x2="190" y2="60" stroke="#666" stroke-width="1.5"
marker-end="url(#arrowhead)"/>
+ <rect x="200" y="44" width="190" height="32" rx="4" fill="#FFF3E0"
stroke="#FF9800" stroke-width="1"/>
+ <text x="295.0" y="64.0" font-family="monospace" font-size="10" fill="#333"
text-anchor="middle">Self-intersection[2 2]</text>
+</svg>
diff --git a/docs/image/ST_MakeValid/ST_MakeValid.svg
b/docs/image/ST_MakeValid/ST_MakeValid.svg
new file mode 100644
index 0000000000..c439cae2fc
--- /dev/null
+++ b/docs/image/ST_MakeValid/ST_MakeValid.svg
@@ -0,0 +1,17 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="400" height="130" viewBox="0 0
400 130">
+ <rect width="400" height="130" fill="#f5f5f5" rx="5"/>
+ <defs><marker id="arrowhead" markerWidth="8" markerHeight="6" refX="8"
refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6"
fill="#666"/></marker></defs>
+ <polygon points="35.0,90.0 70.0,55.0 105.0,90.0" fill="#E53935"
fill-opacity="0.12" stroke="none"/>
+ <polygon points="105.0,20.0 70.0,55.0 35.0,20.0" fill="#E53935"
fill-opacity="0.12" stroke="none"/>
+ <line x1="35.0" y1="90.0" x2="105.0" y2="20.0" stroke="#E53935"
stroke-width="2"/>
+ <line x1="105.0" y1="20.0" x2="105.0" y2="90.0" stroke="#E53935"
stroke-width="2"/>
+ <line x1="105.0" y1="90.0" x2="35.0" y2="20.0" stroke="#E53935"
stroke-width="2"/>
+ <line x1="35.0" y1="20.0" x2="35.0" y2="90.0" stroke="#E53935"
stroke-width="2"/>
+ <circle cx="70.0" cy="55.0" r="5" fill="#E53935" stroke="#fff"
stroke-width="1.5"/>
+ <text x="70.0" y="122.0" font-family="monospace" font-size="10"
fill="#E53935" text-anchor="middle">Invalid</text>
+ <line x1="155" y1="65" x2="205" y2="65" stroke="#666" stroke-width="1.5"
marker-end="url(#arrowhead)"/>
+ <text x="180.0" y="57.0" font-family="monospace" font-size="9" fill="#666"
text-anchor="middle">ST_MakeValid</text>
+ <polygon points="255.0,90.0 290.0,55.0 325.0,90.0 255.0,90.0"
stroke="#43A047" stroke-width="2" fill="rgba(67,160,71,0.20)"/>
+ <polygon points="255.0,20.0 290.0,55.0 325.0,20.0 255.0,20.0"
stroke="#1565C0" stroke-width="2" fill="rgba(21,101,192,0.20)"/>
+ <text x="290.0" y="122.0" font-family="monospace" font-size="10"
fill="#43A047" text-anchor="middle">Valid (2 polygons)</text>
+</svg>