This is an automated email from the ASF dual-hosted git repository. jiayu pushed a commit to branch fix/issue-2678-predicate-visuals in repository https://gitbox.apache.org/repos/asf/sedona.git
commit 24927628e448460ab02afa9670a200b97cd25ae9 Author: Jia Yu <[email protected]> AuthorDate: Wed Mar 4 01:02:21 2026 -0800 Add SVG illustrations for predicate functions (fixes #2678) --- docs/api/flink/Predicates/ST_Contains.md | 3 +++ docs/api/flink/Predicates/ST_CoveredBy.md | 3 +++ docs/api/flink/Predicates/ST_Covers.md | 3 +++ docs/api/flink/Predicates/ST_Crosses.md | 3 +++ docs/api/flink/Predicates/ST_DWithin.md | 3 +++ docs/api/flink/Predicates/ST_Disjoint.md | 3 +++ docs/api/flink/Predicates/ST_Equals.md | 3 +++ docs/api/flink/Predicates/ST_Intersects.md | 3 +++ docs/api/flink/Predicates/ST_OrderingEquals.md | 3 +++ docs/api/flink/Predicates/ST_Overlaps.md | 3 +++ docs/api/flink/Predicates/ST_Relate.md | 3 +++ docs/api/flink/Predicates/ST_Touches.md | 3 +++ docs/api/flink/Predicates/ST_Within.md | 3 +++ .../vector-data/Predicates/ST_Contains.md | 3 +++ .../vector-data/Predicates/ST_CoveredBy.md | 3 +++ .../snowflake/vector-data/Predicates/ST_Covers.md | 3 +++ .../snowflake/vector-data/Predicates/ST_Crosses.md | 3 +++ .../snowflake/vector-data/Predicates/ST_DWithin.md | 3 +++ .../vector-data/Predicates/ST_Disjoint.md | 3 +++ .../snowflake/vector-data/Predicates/ST_Equals.md | 3 +++ .../vector-data/Predicates/ST_Intersects.md | 3 +++ .../vector-data/Predicates/ST_OrderingEquals.md | 3 +++ .../vector-data/Predicates/ST_Overlaps.md | 3 +++ .../snowflake/vector-data/Predicates/ST_Relate.md | 3 +++ .../snowflake/vector-data/Predicates/ST_Touches.md | 3 +++ .../snowflake/vector-data/Predicates/ST_Within.md | 3 +++ docs/api/sql/Predicates/ST_Contains.md | 3 +++ docs/api/sql/Predicates/ST_CoveredBy.md | 3 +++ docs/api/sql/Predicates/ST_Covers.md | 3 +++ docs/api/sql/Predicates/ST_Crosses.md | 3 +++ docs/api/sql/Predicates/ST_DWithin.md | 3 +++ docs/api/sql/Predicates/ST_Disjoint.md | 3 +++ docs/api/sql/Predicates/ST_Equals.md | 3 +++ docs/api/sql/Predicates/ST_Intersects.md | 3 +++ docs/api/sql/Predicates/ST_OrderingEquals.md | 3 +++ docs/api/sql/Predicates/ST_Overlaps.md | 3 +++ docs/api/sql/Predicates/ST_Relate.md | 3 +++ docs/api/sql/Predicates/ST_Touches.md | 3 +++ docs/api/sql/Predicates/ST_Within.md | 3 +++ docs/image/ST_Contains/ST_Contains_false.svg | 15 +++++++++++ docs/image/ST_Contains/ST_Contains_true.svg | 15 +++++++++++ docs/image/ST_CoveredBy/ST_CoveredBy_false.svg | 15 +++++++++++ docs/image/ST_CoveredBy/ST_CoveredBy_true.svg | 15 +++++++++++ docs/image/ST_Covers/ST_Covers_false.svg | 15 +++++++++++ docs/image/ST_Covers/ST_Covers_true.svg | 15 +++++++++++ docs/image/ST_Crosses/ST_Crosses_false.svg | 17 ++++++++++++ docs/image/ST_Crosses/ST_Crosses_true.svg | 17 ++++++++++++ docs/image/ST_DWithin/ST_DWithin_false.svg | 18 +++++++++++++ docs/image/ST_DWithin/ST_DWithin_true.svg | 18 +++++++++++++ docs/image/ST_Disjoint/ST_Disjoint_false.svg | 15 +++++++++++ docs/image/ST_Disjoint/ST_Disjoint_true.svg | 15 +++++++++++ docs/image/ST_Equals/ST_Equals_false.svg | 21 +++++++++++++++ docs/image/ST_Equals/ST_Equals_true.svg | 21 +++++++++++++++ docs/image/ST_Intersects/ST_Intersects_false.svg | 15 +++++++++++ docs/image/ST_Intersects/ST_Intersects_true.svg | 15 +++++++++++ .../ST_OrderingEquals/ST_OrderingEquals_false.svg | 30 ++++++++++++++++++++++ .../ST_OrderingEquals/ST_OrderingEquals_true.svg | 30 ++++++++++++++++++++++ docs/image/ST_Overlaps/ST_Overlaps_false.svg | 15 +++++++++++ docs/image/ST_Overlaps/ST_Overlaps_true.svg | 15 +++++++++++ docs/image/ST_Relate/ST_Relate_false.svg | 18 +++++++++++++ docs/image/ST_Relate/ST_Relate_true.svg | 18 +++++++++++++ docs/image/ST_Touches/ST_Touches_false.svg | 15 +++++++++++ docs/image/ST_Touches/ST_Touches_true.svg | 15 +++++++++++ docs/image/ST_Within/ST_Within_false.svg | 15 +++++++++++ docs/image/ST_Within/ST_Within_true.svg | 15 +++++++++++ 65 files changed, 565 insertions(+) diff --git a/docs/api/flink/Predicates/ST_Contains.md b/docs/api/flink/Predicates/ST_Contains.md index 5e462e3f22..161b1ec6e5 100644 --- a/docs/api/flink/Predicates/ST_Contains.md +++ b/docs/api/flink/Predicates/ST_Contains.md @@ -21,6 +21,9 @@ Introduction: Return true if A fully contains B + + + Format: `ST_Contains (A: Geometry, B: Geometry)` Return type: `Boolean` diff --git a/docs/api/flink/Predicates/ST_CoveredBy.md b/docs/api/flink/Predicates/ST_CoveredBy.md index 5d7de256d9..1524b8b51a 100644 --- a/docs/api/flink/Predicates/ST_CoveredBy.md +++ b/docs/api/flink/Predicates/ST_CoveredBy.md @@ -21,6 +21,9 @@ Introduction: Return true if A is covered by B + + + Format: `ST_CoveredBy (A: Geometry, B: Geometry)` Return type: `Boolean` diff --git a/docs/api/flink/Predicates/ST_Covers.md b/docs/api/flink/Predicates/ST_Covers.md index 909412f6ba..d67fe7750a 100644 --- a/docs/api/flink/Predicates/ST_Covers.md +++ b/docs/api/flink/Predicates/ST_Covers.md @@ -21,6 +21,9 @@ Introduction: Return true if A covers B + + + Format: `ST_Covers (A: Geometry, B: Geometry)` Return type: `Boolean` diff --git a/docs/api/flink/Predicates/ST_Crosses.md b/docs/api/flink/Predicates/ST_Crosses.md index d160ce32c1..a4341994ea 100644 --- a/docs/api/flink/Predicates/ST_Crosses.md +++ b/docs/api/flink/Predicates/ST_Crosses.md @@ -21,6 +21,9 @@ Introduction: Return true if A crosses B + + + Format: `ST_Crosses (A: Geometry, B: Geometry)` Return type: `Boolean` diff --git a/docs/api/flink/Predicates/ST_DWithin.md b/docs/api/flink/Predicates/ST_DWithin.md index dbf866cd45..68c2cf2aeb 100644 --- a/docs/api/flink/Predicates/ST_DWithin.md +++ b/docs/api/flink/Predicates/ST_DWithin.md @@ -21,6 +21,9 @@ Introduction: Returns true if 'leftGeometry' and 'rightGeometry' are within a specified 'distance'. + + + If `useSpheroid` is passed true, ST_DWithin uses Sedona's ST_DistanceSpheroid to check the spheroid distance between the centroids of two geometries. The unit of the distance in this case is meter. If `useSpheroid` is passed false, ST_DWithin uses Euclidean distance and the unit of the distance is the same as the CRS of the geometries. To obtain the correct result, please consider using ST_Transform to put data in an appropriate CRS. diff --git a/docs/api/flink/Predicates/ST_Disjoint.md b/docs/api/flink/Predicates/ST_Disjoint.md index 32c9d93537..0a2601459e 100644 --- a/docs/api/flink/Predicates/ST_Disjoint.md +++ b/docs/api/flink/Predicates/ST_Disjoint.md @@ -21,6 +21,9 @@ Introduction: Return true if A and B are disjoint + + + Format: `ST_Disjoint (A: Geometry, B: Geometry)` Return type: `Boolean` diff --git a/docs/api/flink/Predicates/ST_Equals.md b/docs/api/flink/Predicates/ST_Equals.md index 6051d3f9d4..09a599c202 100644 --- a/docs/api/flink/Predicates/ST_Equals.md +++ b/docs/api/flink/Predicates/ST_Equals.md @@ -21,6 +21,9 @@ Introduction: Return true if A equals to B + + + Format: `ST_Equals (A: Geometry, B: Geometry)` Return type: `Boolean` diff --git a/docs/api/flink/Predicates/ST_Intersects.md b/docs/api/flink/Predicates/ST_Intersects.md index c2f0b8a669..d1b3089199 100644 --- a/docs/api/flink/Predicates/ST_Intersects.md +++ b/docs/api/flink/Predicates/ST_Intersects.md @@ -21,6 +21,9 @@ Introduction: Return true if A intersects B + + + Format: `ST_Intersects (A: Geometry, B: Geometry)` Return type: `Boolean` diff --git a/docs/api/flink/Predicates/ST_OrderingEquals.md b/docs/api/flink/Predicates/ST_OrderingEquals.md index bc30455a7b..a2ac11249d 100644 --- a/docs/api/flink/Predicates/ST_OrderingEquals.md +++ b/docs/api/flink/Predicates/ST_OrderingEquals.md @@ -21,6 +21,9 @@ Introduction: Returns true if the geometries are equal and the coordinates are in the same order + + + Format: `ST_OrderingEquals(A: geometry, B: geometry)` Return type: `Boolean` diff --git a/docs/api/flink/Predicates/ST_Overlaps.md b/docs/api/flink/Predicates/ST_Overlaps.md index 9a735eb688..c7cff2b13a 100644 --- a/docs/api/flink/Predicates/ST_Overlaps.md +++ b/docs/api/flink/Predicates/ST_Overlaps.md @@ -21,6 +21,9 @@ Introduction: Return true if A overlaps B + + + Format: `ST_Overlaps (A: Geometry, B: Geometry)` Return type: `Boolean` diff --git a/docs/api/flink/Predicates/ST_Relate.md b/docs/api/flink/Predicates/ST_Relate.md index 53e0f83b53..f44f1cb4b4 100644 --- a/docs/api/flink/Predicates/ST_Relate.md +++ b/docs/api/flink/Predicates/ST_Relate.md @@ -21,6 +21,9 @@ Introduction: The first variant of the function computes and returns the [Dimensionally Extended 9-Intersection Model (DE-9IM)](https://en.wikipedia.org/wiki/DE-9IM) matrix string representing the spatial relationship between the two input geometry objects. + + + The second variant of the function evaluates whether the two input geometries satisfy a specific spatial relationship defined by the provided `intersectionMatrix` pattern. !!!Note diff --git a/docs/api/flink/Predicates/ST_Touches.md b/docs/api/flink/Predicates/ST_Touches.md index 43274424ac..3590cd5a18 100644 --- a/docs/api/flink/Predicates/ST_Touches.md +++ b/docs/api/flink/Predicates/ST_Touches.md @@ -21,6 +21,9 @@ Introduction: Return true if A touches B + + + Format: `ST_Touches (A: Geometry, B: Geometry)` Return type: `Boolean` diff --git a/docs/api/flink/Predicates/ST_Within.md b/docs/api/flink/Predicates/ST_Within.md index f41ccc6b75..3aae37a747 100644 --- a/docs/api/flink/Predicates/ST_Within.md +++ b/docs/api/flink/Predicates/ST_Within.md @@ -21,6 +21,9 @@ Introduction: Return true if A is within B + + + Format: `ST_Within (A: Geometry, B: Geometry)` Return type: `Boolean` diff --git a/docs/api/snowflake/vector-data/Predicates/ST_Contains.md b/docs/api/snowflake/vector-data/Predicates/ST_Contains.md index 93b8eda4cd..5ce7c69d43 100644 --- a/docs/api/snowflake/vector-data/Predicates/ST_Contains.md +++ b/docs/api/snowflake/vector-data/Predicates/ST_Contains.md @@ -21,6 +21,9 @@ Introduction: Return true if A fully contains B + + + Format: `ST_Contains (A:geometry, B:geometry)` Return type: `Boolean` diff --git a/docs/api/snowflake/vector-data/Predicates/ST_CoveredBy.md b/docs/api/snowflake/vector-data/Predicates/ST_CoveredBy.md index 51e02dc57f..ef79807600 100644 --- a/docs/api/snowflake/vector-data/Predicates/ST_CoveredBy.md +++ b/docs/api/snowflake/vector-data/Predicates/ST_CoveredBy.md @@ -21,6 +21,9 @@ Introduction: Return true if A is covered by B + + + Format: `ST_CoveredBy (A:geometry, B:geometry)` Return type: `Boolean` diff --git a/docs/api/snowflake/vector-data/Predicates/ST_Covers.md b/docs/api/snowflake/vector-data/Predicates/ST_Covers.md index 9606039564..c05a7f13a7 100644 --- a/docs/api/snowflake/vector-data/Predicates/ST_Covers.md +++ b/docs/api/snowflake/vector-data/Predicates/ST_Covers.md @@ -21,6 +21,9 @@ Introduction: Return true if A covers B + + + Format: `ST_Covers (A:geometry, B:geometry)` Return type: `Boolean` diff --git a/docs/api/snowflake/vector-data/Predicates/ST_Crosses.md b/docs/api/snowflake/vector-data/Predicates/ST_Crosses.md index 62160489a9..9fda9fcd2c 100644 --- a/docs/api/snowflake/vector-data/Predicates/ST_Crosses.md +++ b/docs/api/snowflake/vector-data/Predicates/ST_Crosses.md @@ -21,6 +21,9 @@ Introduction: Return true if A crosses B + + + Format: `ST_Crosses (A:geometry, B:geometry)` Return type: `Boolean` diff --git a/docs/api/snowflake/vector-data/Predicates/ST_DWithin.md b/docs/api/snowflake/vector-data/Predicates/ST_DWithin.md index c5d80aef7d..577bae336d 100644 --- a/docs/api/snowflake/vector-data/Predicates/ST_DWithin.md +++ b/docs/api/snowflake/vector-data/Predicates/ST_DWithin.md @@ -21,6 +21,9 @@ Introduction: Returns true if 'leftGeometry' and 'rightGeometry' are within a specified 'distance'. This function essentially checks if the shortest distance between the envelope of the two geometries is <= the provided distance. + + + Format: `ST_DWithin (leftGeometry: Geometry, rightGeometry: Geometry, distance: Double)` Return type: `Boolean` diff --git a/docs/api/snowflake/vector-data/Predicates/ST_Disjoint.md b/docs/api/snowflake/vector-data/Predicates/ST_Disjoint.md index 37fe90206e..f2470a8d39 100644 --- a/docs/api/snowflake/vector-data/Predicates/ST_Disjoint.md +++ b/docs/api/snowflake/vector-data/Predicates/ST_Disjoint.md @@ -21,6 +21,9 @@ Introduction: Return true if A and B are disjoint + + + Format: `ST_Disjoint (A:geometry, B:geometry)` Return type: `Boolean` diff --git a/docs/api/snowflake/vector-data/Predicates/ST_Equals.md b/docs/api/snowflake/vector-data/Predicates/ST_Equals.md index d4d3a401d5..89b1815849 100644 --- a/docs/api/snowflake/vector-data/Predicates/ST_Equals.md +++ b/docs/api/snowflake/vector-data/Predicates/ST_Equals.md @@ -21,6 +21,9 @@ Introduction: Return true if A equals to B + + + Format: `ST_Equals (A:geometry, B:geometry)` Return type: `Boolean` diff --git a/docs/api/snowflake/vector-data/Predicates/ST_Intersects.md b/docs/api/snowflake/vector-data/Predicates/ST_Intersects.md index b1e607f01b..ff1c27230a 100644 --- a/docs/api/snowflake/vector-data/Predicates/ST_Intersects.md +++ b/docs/api/snowflake/vector-data/Predicates/ST_Intersects.md @@ -21,6 +21,9 @@ Introduction: Return true if A intersects B + + + Format: `ST_Intersects (A:geometry, B:geometry)` Return type: `Boolean` diff --git a/docs/api/snowflake/vector-data/Predicates/ST_OrderingEquals.md b/docs/api/snowflake/vector-data/Predicates/ST_OrderingEquals.md index aec3536dbf..439cc9ab96 100644 --- a/docs/api/snowflake/vector-data/Predicates/ST_OrderingEquals.md +++ b/docs/api/snowflake/vector-data/Predicates/ST_OrderingEquals.md @@ -21,6 +21,9 @@ Introduction: Returns true if the geometries are equal and the coordinates are in the same order + + + Format: `ST_OrderingEquals(A: geometry, B: geometry)` Return type: `Boolean` diff --git a/docs/api/snowflake/vector-data/Predicates/ST_Overlaps.md b/docs/api/snowflake/vector-data/Predicates/ST_Overlaps.md index 69b3203d09..d3b01fc18d 100644 --- a/docs/api/snowflake/vector-data/Predicates/ST_Overlaps.md +++ b/docs/api/snowflake/vector-data/Predicates/ST_Overlaps.md @@ -21,6 +21,9 @@ Introduction: Return true if A overlaps B + + + Format: `ST_Overlaps (A:geometry, B:geometry)` Return type: `Boolean` diff --git a/docs/api/snowflake/vector-data/Predicates/ST_Relate.md b/docs/api/snowflake/vector-data/Predicates/ST_Relate.md index acdf258efa..3bde33345c 100644 --- a/docs/api/snowflake/vector-data/Predicates/ST_Relate.md +++ b/docs/api/snowflake/vector-data/Predicates/ST_Relate.md @@ -21,6 +21,9 @@ Introduction: The first variant of the function computes and returns the [Dimensionally Extended 9-Intersection Model (DE-9IM)](https://en.wikipedia.org/wiki/DE-9IM) matrix string representing the spatial relationship between the two input geometry objects. + + + The second variant of the function evaluates whether the two input geometries satisfy a specific spatial relationship defined by the provided `intersectionMatrix` pattern. !!!Note diff --git a/docs/api/snowflake/vector-data/Predicates/ST_Touches.md b/docs/api/snowflake/vector-data/Predicates/ST_Touches.md index 8d35ae36bb..c5c340a4b7 100644 --- a/docs/api/snowflake/vector-data/Predicates/ST_Touches.md +++ b/docs/api/snowflake/vector-data/Predicates/ST_Touches.md @@ -21,6 +21,9 @@ Introduction: Return true if A touches B + + + Format: `ST_Touches (A:geometry, B:geometry)` Return type: `Boolean` diff --git a/docs/api/snowflake/vector-data/Predicates/ST_Within.md b/docs/api/snowflake/vector-data/Predicates/ST_Within.md index 11d350ee27..a735287863 100644 --- a/docs/api/snowflake/vector-data/Predicates/ST_Within.md +++ b/docs/api/snowflake/vector-data/Predicates/ST_Within.md @@ -21,6 +21,9 @@ Introduction: Return true if A is fully contained by B + + + Format: `ST_Within (A:geometry, B:geometry)` Return type: `Boolean` diff --git a/docs/api/sql/Predicates/ST_Contains.md b/docs/api/sql/Predicates/ST_Contains.md index 6bb7018ee3..6e572c3a84 100644 --- a/docs/api/sql/Predicates/ST_Contains.md +++ b/docs/api/sql/Predicates/ST_Contains.md @@ -21,6 +21,9 @@ Introduction: Return true if A fully contains B + + + Format: `ST_Contains (A: Geometry, B: Geometry)` Return type: `Boolean` diff --git a/docs/api/sql/Predicates/ST_CoveredBy.md b/docs/api/sql/Predicates/ST_CoveredBy.md index 28024f1be0..db27de4ac7 100644 --- a/docs/api/sql/Predicates/ST_CoveredBy.md +++ b/docs/api/sql/Predicates/ST_CoveredBy.md @@ -21,6 +21,9 @@ Introduction: Return true if A is covered by B + + + Format: `ST_CoveredBy (A: Geometry, B: Geometry)` Return type: `Boolean` diff --git a/docs/api/sql/Predicates/ST_Covers.md b/docs/api/sql/Predicates/ST_Covers.md index 1af8c5a94b..65c1aa9cac 100644 --- a/docs/api/sql/Predicates/ST_Covers.md +++ b/docs/api/sql/Predicates/ST_Covers.md @@ -21,6 +21,9 @@ Introduction: Return true if A covers B + + + Format: `ST_Covers (A: Geometry, B: Geometry)` Return type: `Boolean` diff --git a/docs/api/sql/Predicates/ST_Crosses.md b/docs/api/sql/Predicates/ST_Crosses.md index 94263a24ba..eaf00ea2f6 100644 --- a/docs/api/sql/Predicates/ST_Crosses.md +++ b/docs/api/sql/Predicates/ST_Crosses.md @@ -21,6 +21,9 @@ Introduction: Return true if A crosses B + + + Format: `ST_Crosses (A: Geometry, B: Geometry)` Return type: `Boolean` diff --git a/docs/api/sql/Predicates/ST_DWithin.md b/docs/api/sql/Predicates/ST_DWithin.md index c0b1640a19..37244ec301 100644 --- a/docs/api/sql/Predicates/ST_DWithin.md +++ b/docs/api/sql/Predicates/ST_DWithin.md @@ -21,6 +21,9 @@ Introduction: Returns true if 'leftGeometry' and 'rightGeometry' are within a specified 'distance'. + + + If `useSpheroid` is passed true, ST_DWithin uses Sedona's ST_DistanceSpheroid to check the spheroid distance between the centroids of two geometries. The unit of the distance in this case is meter. If `useSpheroid` is passed false, ST_DWithin uses Euclidean distance and the unit of the distance is the same as the CRS of the geometries. To obtain the correct result, please consider using ST_Transform to put data in an appropriate CRS. diff --git a/docs/api/sql/Predicates/ST_Disjoint.md b/docs/api/sql/Predicates/ST_Disjoint.md index 014c8847f7..89bfcb6fea 100644 --- a/docs/api/sql/Predicates/ST_Disjoint.md +++ b/docs/api/sql/Predicates/ST_Disjoint.md @@ -21,6 +21,9 @@ Introduction: Return true if A and B are disjoint + + + Format: `ST_Disjoint (A: Geometry, B: Geometry)` Return type: `Boolean` diff --git a/docs/api/sql/Predicates/ST_Equals.md b/docs/api/sql/Predicates/ST_Equals.md index 13819a585b..da2344e8eb 100644 --- a/docs/api/sql/Predicates/ST_Equals.md +++ b/docs/api/sql/Predicates/ST_Equals.md @@ -21,6 +21,9 @@ Introduction: Return true if A equals to B + + + Format: `ST_Equals (A: Geometry, B: Geometry)` Return type: `Boolean` diff --git a/docs/api/sql/Predicates/ST_Intersects.md b/docs/api/sql/Predicates/ST_Intersects.md index 8fad90600e..bcb43f84a2 100644 --- a/docs/api/sql/Predicates/ST_Intersects.md +++ b/docs/api/sql/Predicates/ST_Intersects.md @@ -21,6 +21,9 @@ Introduction: Return true if A intersects B + + + Format: `ST_Intersects (A: Geometry, B: Geometry)` Return type: `Boolean` diff --git a/docs/api/sql/Predicates/ST_OrderingEquals.md b/docs/api/sql/Predicates/ST_OrderingEquals.md index 168c568f99..5711938f94 100644 --- a/docs/api/sql/Predicates/ST_OrderingEquals.md +++ b/docs/api/sql/Predicates/ST_OrderingEquals.md @@ -21,6 +21,9 @@ Introduction: Returns true if the geometries are equal and the coordinates are in the same order + + + Format: `ST_OrderingEquals(A: geometry, B: geometry)` Return type: `Boolean` diff --git a/docs/api/sql/Predicates/ST_Overlaps.md b/docs/api/sql/Predicates/ST_Overlaps.md index f36e4d0fcc..a4eb3e13f3 100644 --- a/docs/api/sql/Predicates/ST_Overlaps.md +++ b/docs/api/sql/Predicates/ST_Overlaps.md @@ -21,6 +21,9 @@ Introduction: Return true if A overlaps B + + + Format: `ST_Overlaps (A: Geometry, B: Geometry)` Return type: `Boolean` diff --git a/docs/api/sql/Predicates/ST_Relate.md b/docs/api/sql/Predicates/ST_Relate.md index 53e0f83b53..f44f1cb4b4 100644 --- a/docs/api/sql/Predicates/ST_Relate.md +++ b/docs/api/sql/Predicates/ST_Relate.md @@ -21,6 +21,9 @@ Introduction: The first variant of the function computes and returns the [Dimensionally Extended 9-Intersection Model (DE-9IM)](https://en.wikipedia.org/wiki/DE-9IM) matrix string representing the spatial relationship between the two input geometry objects. + + + The second variant of the function evaluates whether the two input geometries satisfy a specific spatial relationship defined by the provided `intersectionMatrix` pattern. !!!Note diff --git a/docs/api/sql/Predicates/ST_Touches.md b/docs/api/sql/Predicates/ST_Touches.md index ffd78fb299..1d00ddbee2 100644 --- a/docs/api/sql/Predicates/ST_Touches.md +++ b/docs/api/sql/Predicates/ST_Touches.md @@ -21,6 +21,9 @@ Introduction: Return true if A touches B + + + Format: `ST_Touches (A: Geometry, B: Geometry)` Return type: `Boolean` diff --git a/docs/api/sql/Predicates/ST_Within.md b/docs/api/sql/Predicates/ST_Within.md index 856eff193a..c881a6f447 100644 --- a/docs/api/sql/Predicates/ST_Within.md +++ b/docs/api/sql/Predicates/ST_Within.md @@ -21,6 +21,9 @@ Introduction: Return true if A is fully contained by B + + + Format: `ST_Within (A: Geometry, B: Geometry)` Return type: `Boolean` diff --git a/docs/image/ST_Contains/ST_Contains_false.svg b/docs/image/ST_Contains/ST_Contains_false.svg new file mode 100644 index 0000000000..3240721bac --- /dev/null +++ b/docs/image/ST_Contains/ST_Contains_false.svg @@ -0,0 +1,15 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_Contains(A, B)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#c0392b" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">FALSE</text> + <path d="M 184.51 196.48 L 308.45 196.48 L 308.45 72.54 L 184.51 72.54 L 184.51 196.48 Z" fill="rgba(217,74,74,0.25)" stroke="#d94a4a" stroke-width="2.5" fill-rule="evenodd" /> + <text x="234.08" y="146.9" text-anchor="middle" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <path d="M 91.55 227.46 L 246.48 227.46 L 246.48 103.52 L 91.55 103.52 L 91.55 227.46 Z" fill="rgba(74,144,217,0.25)" stroke="#4a90d9" stroke-width="2.5" fill-rule="evenodd" /> + <text x="153.52" y="177.89" text-anchor="middle" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">B is not fully inside A</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_Contains/ST_Contains_true.svg b/docs/image/ST_Contains/ST_Contains_true.svg new file mode 100644 index 0000000000..cc2da2600b --- /dev/null +++ b/docs/image/ST_Contains/ST_Contains_true.svg @@ -0,0 +1,15 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_Contains(A, B)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#27ae60" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">TRUE</text> + <path d="M 147.62 202.38 L 252.38 202.38 L 252.38 123.81 L 147.62 123.81 L 147.62 202.38 Z" fill="rgba(217,74,74,0.25)" stroke="#d94a4a" stroke-width="2.5" fill-rule="evenodd" /> + <text x="189.52" y="170.95" text-anchor="middle" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <path d="M 95.24 228.57 L 304.76 228.57 L 304.76 71.43 L 95.24 71.43 L 95.24 228.57 Z" fill="rgba(74,144,217,0.25)" stroke="#4a90d9" stroke-width="2.5" fill-rule="evenodd" /> + <text x="179.05" y="165.71" text-anchor="middle" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">A fully contains B</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_CoveredBy/ST_CoveredBy_false.svg b/docs/image/ST_CoveredBy/ST_CoveredBy_false.svg new file mode 100644 index 0000000000..598760be91 --- /dev/null +++ b/docs/image/ST_CoveredBy/ST_CoveredBy_false.svg @@ -0,0 +1,15 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_CoveredBy(A, B)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#c0392b" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">FALSE</text> + <path d="M 153.52 196.48 L 308.45 196.48 L 308.45 72.54 L 153.52 72.54 L 153.52 196.48 Z" fill="rgba(217,74,74,0.25)" stroke="#d94a4a" stroke-width="2.5" fill-rule="evenodd" /> + <text x="215.49" y="146.9" text-anchor="middle" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <path d="M 91.55 227.46 L 246.48 227.46 L 246.48 103.52 L 91.55 103.52 L 91.55 227.46 Z" fill="rgba(74,144,217,0.25)" stroke="#4a90d9" stroke-width="2.5" fill-rule="evenodd" /> + <text x="153.52" y="177.89" text-anchor="middle" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">A extends beyond B</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_CoveredBy/ST_CoveredBy_true.svg b/docs/image/ST_CoveredBy/ST_CoveredBy_true.svg new file mode 100644 index 0000000000..d6f311bdd7 --- /dev/null +++ b/docs/image/ST_CoveredBy/ST_CoveredBy_true.svg @@ -0,0 +1,15 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_CoveredBy(A, B)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#27ae60" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">TRUE</text> + <path d="M 102.94 230.88 L 297.06 230.88 L 297.06 69.12 L 102.94 69.12 L 102.94 230.88 Z" fill="rgba(217,74,74,0.25)" stroke="#d94a4a" stroke-width="2.5" fill-rule="evenodd" /> + <text x="180.59" y="166.18" text-anchor="middle" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <path d="M 135.29 198.53 L 232.35 198.53 L 232.35 133.82 L 135.29 133.82 L 135.29 198.53 Z" fill="rgba(74,144,217,0.25)" stroke="#4a90d9" stroke-width="2.5" fill-rule="evenodd" /> + <text x="174.12" y="172.65" text-anchor="middle" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">A is covered by B (A on boundary of B is OK)</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_Covers/ST_Covers_false.svg b/docs/image/ST_Covers/ST_Covers_false.svg new file mode 100644 index 0000000000..f709e8e06a --- /dev/null +++ b/docs/image/ST_Covers/ST_Covers_false.svg @@ -0,0 +1,15 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_Covers(A, B)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#c0392b" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">FALSE</text> + <path d="M 184.51 196.48 L 308.45 196.48 L 308.45 72.54 L 184.51 72.54 L 184.51 196.48 Z" fill="rgba(217,74,74,0.25)" stroke="#d94a4a" stroke-width="2.5" fill-rule="evenodd" /> + <text x="234.08" y="146.9" text-anchor="middle" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <path d="M 91.55 227.46 L 246.48 227.46 L 246.48 103.52 L 91.55 103.52 L 91.55 227.46 Z" fill="rgba(74,144,217,0.25)" stroke="#4a90d9" stroke-width="2.5" fill-rule="evenodd" /> + <text x="153.52" y="177.89" text-anchor="middle" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">B extends beyond A</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_Covers/ST_Covers_true.svg b/docs/image/ST_Covers/ST_Covers_true.svg new file mode 100644 index 0000000000..43b794f9b1 --- /dev/null +++ b/docs/image/ST_Covers/ST_Covers_true.svg @@ -0,0 +1,15 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_Covers(A, B)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#27ae60" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">TRUE</text> + <path d="M 121.43 202.38 L 226.19 202.38 L 226.19 123.81 L 121.43 123.81 L 121.43 202.38 Z" fill="rgba(217,74,74,0.25)" stroke="#d94a4a" stroke-width="2.5" fill-rule="evenodd" /> + <text x="163.33" y="170.95" text-anchor="middle" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <path d="M 95.24 228.57 L 304.76 228.57 L 304.76 71.43 L 95.24 71.43 L 95.24 228.57 Z" fill="rgba(74,144,217,0.25)" stroke="#4a90d9" stroke-width="2.5" fill-rule="evenodd" /> + <text x="179.05" y="165.71" text-anchor="middle" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">A covers B (B on boundary of A is OK)</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_Crosses/ST_Crosses_false.svg b/docs/image/ST_Crosses/ST_Crosses_false.svg new file mode 100644 index 0000000000..1254f97d40 --- /dev/null +++ b/docs/image/ST_Crosses/ST_Crosses_false.svg @@ -0,0 +1,17 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_Crosses(A, B)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#c0392b" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">FALSE</text> + <path d="M 140.54 224.32 L 259.46 224.32 L 259.46 135.14 L 140.54 135.14 L 140.54 224.32 Z" fill="rgba(217,74,74,0.25)" stroke="#d94a4a" stroke-width="2.5" fill-rule="evenodd" /> + <text x="188.11" y="188.65" text-anchor="middle" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <polyline points="81.08,75.68 318.92,75.68" fill="none" stroke="#4a90d9" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" /> + <circle cx="81.08" cy="75.68" r="3" fill="#4a90d9" /> + <circle cx="318.92" cy="75.68" r="3" fill="#4a90d9" /> + <text x="324.92" y="67.68" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">A does not cross B</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_Crosses/ST_Crosses_true.svg b/docs/image/ST_Crosses/ST_Crosses_true.svg new file mode 100644 index 0000000000..4744e84182 --- /dev/null +++ b/docs/image/ST_Crosses/ST_Crosses_true.svg @@ -0,0 +1,17 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_Crosses(A, B)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#27ae60" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">TRUE</text> + <path d="M 147.62 228.57 L 252.38 228.57 L 252.38 123.81 L 147.62 123.81 L 147.62 228.57 Z" fill="rgba(217,74,74,0.25)" stroke="#d94a4a" stroke-width="2.5" fill-rule="evenodd" /> + <text x="189.52" y="186.67" text-anchor="middle" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <polyline points="95.24,228.57 304.76,71.43" fill="none" stroke="#4a90d9" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" /> + <circle cx="95.24" cy="228.57" r="3" fill="#4a90d9" /> + <circle cx="304.76" cy="71.43" r="3" fill="#4a90d9" /> + <text x="310.76" y="63.43000000000001" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">A crosses B</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_DWithin/ST_DWithin_false.svg b/docs/image/ST_DWithin/ST_DWithin_false.svg new file mode 100644 index 0000000000..06ced2d40a --- /dev/null +++ b/docs/image/ST_DWithin/ST_DWithin_false.svg @@ -0,0 +1,18 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_DWithin(A, B, d)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#c0392b" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">FALSE</text> + <circle cx="180.0" cy="150.0" r="80.0" fill="rgba(243,156,18,0.1)" stroke="#f39c12" stroke-width="1.5" stroke-dasharray="6,4" /> + <line x1="180.0" y1="150.0" x2="300.0" y2="150.0" stroke="#f39c12" stroke-width="1.5" stroke-dasharray="6,4" /> + <text x="246.0" y="144.0" font-size="13" fill="#f39c12" font-style="italic">d</text> + <circle cx="300.0" cy="150.0" r="5" fill="#d94a4a" stroke="#d94a4a" stroke-width="1.5" /> + <text x="309.0" y="143.0" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <circle cx="180.0" cy="150.0" r="5" fill="#4a90d9" stroke="#4a90d9" stroke-width="1.5" /> + <text x="189.0" y="143.0" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">Distance between A and B > d</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_DWithin/ST_DWithin_true.svg b/docs/image/ST_DWithin/ST_DWithin_true.svg new file mode 100644 index 0000000000..bd2e048912 --- /dev/null +++ b/docs/image/ST_DWithin/ST_DWithin_true.svg @@ -0,0 +1,18 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_DWithin(A, B, d)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#27ae60" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">TRUE</text> + <circle cx="200.0" cy="150.0" r="84.62" fill="rgba(243,156,18,0.1)" stroke="#f39c12" stroke-width="1.5" stroke-dasharray="6,4" /> + <line x1="200.0" y1="150.0" x2="263.46" y2="150.0" stroke="#f39c12" stroke-width="1.5" stroke-dasharray="6,4" /> + <text x="237.73" y="144.0" font-size="13" fill="#f39c12" font-style="italic">d</text> + <circle cx="263.46" cy="150.0" r="5" fill="#d94a4a" stroke="#d94a4a" stroke-width="1.5" /> + <text x="272.46" y="143.0" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <circle cx="200.0" cy="150.0" r="5" fill="#4a90d9" stroke="#4a90d9" stroke-width="1.5" /> + <text x="209.0" y="143.0" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">Distance between A and B ≤ d</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_Disjoint/ST_Disjoint_false.svg b/docs/image/ST_Disjoint/ST_Disjoint_false.svg new file mode 100644 index 0000000000..bc94b72d92 --- /dev/null +++ b/docs/image/ST_Disjoint/ST_Disjoint_false.svg @@ -0,0 +1,15 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_Disjoint(A, B)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#c0392b" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">FALSE</text> + <path d="M 170.27 194.59 L 318.92 194.59 L 318.92 75.68 L 170.27 75.68 L 170.27 194.59 Z" fill="rgba(217,74,74,0.25)" stroke="#d94a4a" stroke-width="2.5" fill-rule="evenodd" /> + <text x="229.73" y="147.03" text-anchor="middle" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <path d="M 81.08 224.32 L 229.73 224.32 L 229.73 105.41 L 81.08 105.41 L 81.08 224.32 Z" fill="rgba(74,144,217,0.25)" stroke="#4a90d9" stroke-width="2.5" fill-rule="evenodd" /> + <text x="140.54" y="176.76" text-anchor="middle" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">A and B share some area</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_Disjoint/ST_Disjoint_true.svg b/docs/image/ST_Disjoint/ST_Disjoint_true.svg new file mode 100644 index 0000000000..2698406352 --- /dev/null +++ b/docs/image/ST_Disjoint/ST_Disjoint_true.svg @@ -0,0 +1,15 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_Disjoint(A, B)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#27ae60" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">TRUE</text> + <path d="M 230.77 211.54 L 323.08 211.54 L 323.08 88.46 L 230.77 88.46 L 230.77 211.54 Z" fill="rgba(217,74,74,0.25)" stroke="#d94a4a" stroke-width="2.5" fill-rule="evenodd" /> + <text x="267.69" y="162.31" text-anchor="middle" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <path d="M 76.92 211.54 L 169.23 211.54 L 169.23 88.46 L 76.92 88.46 L 76.92 211.54 Z" fill="rgba(74,144,217,0.25)" stroke="#4a90d9" stroke-width="2.5" fill-rule="evenodd" /> + <text x="113.85" y="162.31" text-anchor="middle" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">A and B do not intersect at all</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_Equals/ST_Equals_false.svg b/docs/image/ST_Equals/ST_Equals_false.svg new file mode 100644 index 0000000000..091717d89a --- /dev/null +++ b/docs/image/ST_Equals/ST_Equals_false.svg @@ -0,0 +1,21 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_Equals(A, B)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#c0392b" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">FALSE</text> + <polyline points="76.92,180.77 200.0,88.46 323.08,150.0" fill="none" stroke="#d94a4a" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" /> + <circle cx="76.92" cy="180.77" r="3" fill="#d94a4a" /> + <circle cx="200.0" cy="88.46" r="3" fill="#d94a4a" /> + <circle cx="323.08" cy="150.0" r="3" fill="#d94a4a" /> + <text x="206.0" y="80.46" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <polyline points="76.92,211.54 200.0,119.23 323.08,180.77" fill="none" stroke="#4a90d9" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" /> + <circle cx="76.92" cy="211.54" r="3" fill="#4a90d9" /> + <circle cx="200.0" cy="119.23" r="3" fill="#4a90d9" /> + <circle cx="323.08" cy="180.77" r="3" fill="#4a90d9" /> + <text x="206.0" y="111.23" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">A and B are different geometries</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_Equals/ST_Equals_true.svg b/docs/image/ST_Equals/ST_Equals_true.svg new file mode 100644 index 0000000000..a7631e19c6 --- /dev/null +++ b/docs/image/ST_Equals/ST_Equals_true.svg @@ -0,0 +1,21 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_Equals(A, B)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#27ae60" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">TRUE</text> + <polyline points="76.92,196.15 200.0,103.85 323.08,165.38" fill="none" stroke="#d94a4a" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="6,3" /> + <circle cx="76.92" cy="196.15" r="3" fill="#d94a4a" /> + <circle cx="200.0" cy="103.85" r="3" fill="#d94a4a" /> + <circle cx="323.08" cy="165.38" r="3" fill="#d94a4a" /> + <text x="206.0" y="95.85" font-size="15" font-weight="bold" fill="#d94a4a">B (= A)</text> + <polyline points="76.92,196.15 200.0,103.85 323.08,165.38" fill="none" stroke="#4a90d9" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" /> + <circle cx="76.92" cy="196.15" r="3" fill="#4a90d9" /> + <circle cx="200.0" cy="103.85" r="3" fill="#4a90d9" /> + <circle cx="323.08" cy="165.38" r="3" fill="#4a90d9" /> + <text x="206.0" y="95.85" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">A and B represent the same geometry</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_Intersects/ST_Intersects_false.svg b/docs/image/ST_Intersects/ST_Intersects_false.svg new file mode 100644 index 0000000000..db3305552d --- /dev/null +++ b/docs/image/ST_Intersects/ST_Intersects_false.svg @@ -0,0 +1,15 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_Intersects(A, B)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#c0392b" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">FALSE</text> + <path d="M 230.77 211.54 L 323.08 211.54 L 323.08 88.46 L 230.77 88.46 L 230.77 211.54 Z" fill="rgba(217,74,74,0.25)" stroke="#d94a4a" stroke-width="2.5" fill-rule="evenodd" /> + <text x="267.69" y="162.31" text-anchor="middle" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <path d="M 76.92 211.54 L 169.23 211.54 L 169.23 88.46 L 76.92 88.46 L 76.92 211.54 Z" fill="rgba(74,144,217,0.25)" stroke="#4a90d9" stroke-width="2.5" fill-rule="evenodd" /> + <text x="113.85" y="162.31" text-anchor="middle" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">A and B share no points</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_Intersects/ST_Intersects_true.svg b/docs/image/ST_Intersects/ST_Intersects_true.svg new file mode 100644 index 0000000000..57f34d4ad2 --- /dev/null +++ b/docs/image/ST_Intersects/ST_Intersects_true.svg @@ -0,0 +1,15 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_Intersects(A, B)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#27ae60" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">TRUE</text> + <path d="M 173.81 176.19 L 304.76 176.19 L 304.76 71.43 L 173.81 71.43 L 173.81 71.43 L 173.81 176.19 Z" fill="rgba(217,74,74,0.25)" stroke="#d94a4a" stroke-width="2.5" fill-rule="evenodd" /> + <text x="217.46" y="123.81" text-anchor="middle" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <path d="M 95.24 228.57 L 226.19 228.57 L 226.19 123.81 L 95.24 123.81 L 95.24 228.57 Z" fill="rgba(74,144,217,0.25)" stroke="#4a90d9" stroke-width="2.5" fill-rule="evenodd" /> + <text x="147.62" y="186.67" text-anchor="middle" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">A and B share at least one point</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_OrderingEquals/ST_OrderingEquals_false.svg b/docs/image/ST_OrderingEquals/ST_OrderingEquals_false.svg new file mode 100644 index 0000000000..d38aad0404 --- /dev/null +++ b/docs/image/ST_OrderingEquals/ST_OrderingEquals_false.svg @@ -0,0 +1,30 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_OrderingEquals(A, B)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#c0392b" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">FALSE</text> + <line x1="200" y1="35" x2="200" y2="270" stroke="#ddd" stroke-width="1" stroke-dasharray="4,4" /> + <text x="100" y="45" text-anchor="middle" font-size="15" font-weight="bold" fill="#4a90d9">Geometry A</text> + <text x="300" y="45" text-anchor="middle" font-size="15" font-weight="bold" fill="#d94a4a">Geometry B</text> + <path d="M 150.0 177.5 L 100.0 102.5 L 50.0 177.5 L 150.0 177.5 Z" fill="rgba(74,144,217,0.25)" stroke="#4a90d9" stroke-width="2.5" fill-rule="evenodd" /> + <circle cx="150.0" cy="177.5" r="9" fill="white" stroke="#4a90d9" stroke-width="1.5" /> + <text x="150.0" y="181.5" text-anchor="middle" font-size="10" font-weight="bold" fill="#4a90d9">1</text> + <circle cx="100.0" cy="102.5" r="9" fill="white" stroke="#4a90d9" stroke-width="1.5" /> + <text x="100.0" y="106.5" text-anchor="middle" font-size="10" font-weight="bold" fill="#4a90d9">2</text> + <circle cx="50.0" cy="177.5" r="9" fill="white" stroke="#4a90d9" stroke-width="1.5" /> + <text x="50.0" y="181.5" text-anchor="middle" font-size="10" font-weight="bold" fill="#4a90d9">3</text> + <polygon points="125.0,140.0 126.39,151.09 134.71,145.55" fill="#4a90d9" /> + <path d="M 300.0 102.5 L 250.0 177.5 L 350.0 177.5 L 300.0 102.5 Z" fill="rgba(217,74,74,0.25)" stroke="#d94a4a" stroke-width="2.5" fill-rule="evenodd" /> + <circle cx="300.0" cy="102.5" r="9" fill="white" stroke="#d94a4a" stroke-width="1.5" /> + <text x="300.0" y="106.5" text-anchor="middle" font-size="10" font-weight="bold" fill="#d94a4a">1</text> + <circle cx="250.0" cy="177.5" r="9" fill="white" stroke="#d94a4a" stroke-width="1.5" /> + <text x="250.0" y="181.5" text-anchor="middle" font-size="10" font-weight="bold" fill="#d94a4a">2</text> + <circle cx="350.0" cy="177.5" r="9" fill="white" stroke="#d94a4a" stroke-width="1.5" /> + <text x="350.0" y="181.5" text-anchor="middle" font-size="10" font-weight="bold" fill="#d94a4a">3</text> + <polygon points="275.0,140.0 284.71,134.45 276.39,128.91" fill="#d94a4a" /> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">Same geometry, different start vertex</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_OrderingEquals/ST_OrderingEquals_true.svg b/docs/image/ST_OrderingEquals/ST_OrderingEquals_true.svg new file mode 100644 index 0000000000..605cc05e4f --- /dev/null +++ b/docs/image/ST_OrderingEquals/ST_OrderingEquals_true.svg @@ -0,0 +1,30 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_OrderingEquals(A, B)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#27ae60" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">TRUE</text> + <line x1="200" y1="35" x2="200" y2="270" stroke="#ddd" stroke-width="1" stroke-dasharray="4,4" /> + <text x="100" y="45" text-anchor="middle" font-size="15" font-weight="bold" fill="#4a90d9">Geometry A</text> + <text x="300" y="45" text-anchor="middle" font-size="15" font-weight="bold" fill="#d94a4a">Geometry B</text> + <path d="M 150.0 177.5 L 100.0 102.5 L 50.0 177.5 L 150.0 177.5 Z" fill="rgba(74,144,217,0.25)" stroke="#4a90d9" stroke-width="2.5" fill-rule="evenodd" /> + <circle cx="150.0" cy="177.5" r="9" fill="white" stroke="#4a90d9" stroke-width="1.5" /> + <text x="150.0" y="181.5" text-anchor="middle" font-size="10" font-weight="bold" fill="#4a90d9">1</text> + <circle cx="100.0" cy="102.5" r="9" fill="white" stroke="#4a90d9" stroke-width="1.5" /> + <text x="100.0" y="106.5" text-anchor="middle" font-size="10" font-weight="bold" fill="#4a90d9">2</text> + <circle cx="50.0" cy="177.5" r="9" fill="white" stroke="#4a90d9" stroke-width="1.5" /> + <text x="50.0" y="181.5" text-anchor="middle" font-size="10" font-weight="bold" fill="#4a90d9">3</text> + <polygon points="125.0,140.0 126.39,151.09 134.71,145.55" fill="#4a90d9" /> + <path d="M 350.0 177.5 L 300.0 102.5 L 250.0 177.5 L 350.0 177.5 Z" fill="rgba(217,74,74,0.25)" stroke="#d94a4a" stroke-width="2.5" fill-rule="evenodd" /> + <circle cx="350.0" cy="177.5" r="9" fill="white" stroke="#d94a4a" stroke-width="1.5" /> + <text x="350.0" y="181.5" text-anchor="middle" font-size="10" font-weight="bold" fill="#d94a4a">1</text> + <circle cx="300.0" cy="102.5" r="9" fill="white" stroke="#d94a4a" stroke-width="1.5" /> + <text x="300.0" y="106.5" text-anchor="middle" font-size="10" font-weight="bold" fill="#d94a4a">2</text> + <circle cx="250.0" cy="177.5" r="9" fill="white" stroke="#d94a4a" stroke-width="1.5" /> + <text x="250.0" y="181.5" text-anchor="middle" font-size="10" font-weight="bold" fill="#d94a4a">3</text> + <polygon points="325.0,140.0 326.39,151.09 334.71,145.55" fill="#d94a4a" /> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">Same geometry, same vertex order</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_Overlaps/ST_Overlaps_false.svg b/docs/image/ST_Overlaps/ST_Overlaps_false.svg new file mode 100644 index 0000000000..7866946e6d --- /dev/null +++ b/docs/image/ST_Overlaps/ST_Overlaps_false.svg @@ -0,0 +1,15 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_Overlaps(A, B)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#c0392b" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">FALSE</text> + <path d="M 147.62 202.38 L 252.38 202.38 L 252.38 123.81 L 147.62 123.81 L 147.62 202.38 Z" fill="rgba(217,74,74,0.25)" stroke="#d94a4a" stroke-width="2.5" fill-rule="evenodd" /> + <text x="189.52" y="170.95" text-anchor="middle" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <path d="M 95.24 228.57 L 304.76 228.57 L 304.76 71.43 L 95.24 71.43 L 95.24 228.57 Z" fill="rgba(74,144,217,0.25)" stroke="#4a90d9" stroke-width="2.5" fill-rule="evenodd" /> + <text x="179.05" y="165.71" text-anchor="middle" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">B is fully inside A (no overlap, A contains B)</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_Overlaps/ST_Overlaps_true.svg b/docs/image/ST_Overlaps/ST_Overlaps_true.svg new file mode 100644 index 0000000000..2307682689 --- /dev/null +++ b/docs/image/ST_Overlaps/ST_Overlaps_true.svg @@ -0,0 +1,15 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_Overlaps(A, B)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#27ae60" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">TRUE</text> + <path d="M 173.81 176.19 L 304.76 176.19 L 304.76 71.43 L 173.81 71.43 L 173.81 176.19 Z" fill="rgba(217,74,74,0.25)" stroke="#d94a4a" stroke-width="2.5" fill-rule="evenodd" /> + <text x="226.19" y="134.29" text-anchor="middle" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <path d="M 95.24 228.57 L 226.19 228.57 L 226.19 123.81 L 95.24 123.81 L 95.24 228.57 Z" fill="rgba(74,144,217,0.25)" stroke="#4a90d9" stroke-width="2.5" fill-rule="evenodd" /> + <text x="147.62" y="186.67" text-anchor="middle" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">A and B overlap but neither contains the other</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_Relate/ST_Relate_false.svg b/docs/image/ST_Relate/ST_Relate_false.svg new file mode 100644 index 0000000000..a761352a41 --- /dev/null +++ b/docs/image/ST_Relate/ST_Relate_false.svg @@ -0,0 +1,18 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_Relate(A, B, 'T*T***T**')</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#c0392b" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">FALSE</text> + <path d="M 212.09 137.91 L 212.09 65.38 L 284.62 65.38 L 284.62 137.91 L 212.09 137.91 Z" fill="rgba(217,74,74,0.25)" stroke="#d94a4a" stroke-width="2.5" fill-rule="evenodd" /> + <text x="241.1" y="108.9" text-anchor="middle" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <polyline points="115.38,234.62 163.74,186.26" fill="none" stroke="#4a90d9" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" /> + <circle cx="115.38" cy="234.62" r="3" fill="#4a90d9" /> + <circle cx="163.74" cy="186.26" r="3" fill="#4a90d9" /> + <text x="169.74" y="178.26" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="270" text-anchor="middle" font-size="13" fill="#333333" font-family="monospace">DE-9IM: FF1FF0102</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">Geometries do not match the DE-9IM pattern</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_Relate/ST_Relate_true.svg b/docs/image/ST_Relate/ST_Relate_true.svg new file mode 100644 index 0000000000..3b20233b50 --- /dev/null +++ b/docs/image/ST_Relate/ST_Relate_true.svg @@ -0,0 +1,18 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_Relate(A, B, '1010F0212')</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#27ae60" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">TRUE</text> + <path d="M 171.79 178.21 L 171.79 65.38 L 284.62 65.38 L 284.62 178.21 L 171.79 178.21 Z" fill="rgba(217,74,74,0.25)" stroke="#d94a4a" stroke-width="2.5" fill-rule="evenodd" /> + <text x="216.92" y="133.08" text-anchor="middle" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <polyline points="115.38,234.62 228.21,121.79" fill="none" stroke="#4a90d9" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" /> + <circle cx="115.38" cy="234.62" r="3" fill="#4a90d9" /> + <circle cx="228.21" cy="121.79" r="3" fill="#4a90d9" /> + <text x="234.21" y="113.79" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="270" text-anchor="middle" font-size="13" fill="#333333" font-family="monospace">DE-9IM: 1010F0212</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">A line entering a polygon matches the DE-9IM pattern</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_Touches/ST_Touches_false.svg b/docs/image/ST_Touches/ST_Touches_false.svg new file mode 100644 index 0000000000..bea2e05d63 --- /dev/null +++ b/docs/image/ST_Touches/ST_Touches_false.svg @@ -0,0 +1,15 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_Touches(A, B)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#c0392b" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">FALSE</text> + <path d="M 170.27 194.59 L 318.92 194.59 L 318.92 75.68 L 170.27 75.68 L 170.27 194.59 Z" fill="rgba(217,74,74,0.25)" stroke="#d94a4a" stroke-width="2.5" fill-rule="evenodd" /> + <text x="229.73" y="147.03" text-anchor="middle" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <path d="M 81.08 224.32 L 229.73 224.32 L 229.73 105.41 L 81.08 105.41 L 81.08 224.32 Z" fill="rgba(74,144,217,0.25)" stroke="#4a90d9" stroke-width="2.5" fill-rule="evenodd" /> + <text x="140.54" y="176.76" text-anchor="middle" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">A and B overlap (interiors intersect)</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_Touches/ST_Touches_true.svg b/docs/image/ST_Touches/ST_Touches_true.svg new file mode 100644 index 0000000000..f3697ac3ff --- /dev/null +++ b/docs/image/ST_Touches/ST_Touches_true.svg @@ -0,0 +1,15 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_Touches(A, B)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#27ae60" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">TRUE</text> + <path d="M 200.0 211.54 L 323.08 211.54 L 323.08 88.46 L 200.0 88.46 L 200.0 211.54 Z" fill="rgba(217,74,74,0.25)" stroke="#d94a4a" stroke-width="2.5" fill-rule="evenodd" /> + <text x="249.23" y="162.31" text-anchor="middle" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <path d="M 76.92 211.54 L 200.0 211.54 L 200.0 88.46 L 76.92 88.46 L 76.92 211.54 Z" fill="rgba(74,144,217,0.25)" stroke="#4a90d9" stroke-width="2.5" fill-rule="evenodd" /> + <text x="126.15" y="162.31" text-anchor="middle" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">A touches B at their boundaries only</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_Within/ST_Within_false.svg b/docs/image/ST_Within/ST_Within_false.svg new file mode 100644 index 0000000000..e90d7352b2 --- /dev/null +++ b/docs/image/ST_Within/ST_Within_false.svg @@ -0,0 +1,15 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_Within(A, B)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#c0392b" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">FALSE</text> + <path d="M 153.52 196.48 L 308.45 196.48 L 308.45 72.54 L 153.52 72.54 L 153.52 196.48 Z" fill="rgba(217,74,74,0.25)" stroke="#d94a4a" stroke-width="2.5" fill-rule="evenodd" /> + <text x="215.49" y="146.9" text-anchor="middle" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <path d="M 91.55 227.46 L 246.48 227.46 L 246.48 103.52 L 91.55 103.52 L 91.55 227.46 Z" fill="rgba(74,144,217,0.25)" stroke="#4a90d9" stroke-width="2.5" fill-rule="evenodd" /> + <text x="153.52" y="177.89" text-anchor="middle" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">A extends beyond B</text> +</svg> \ No newline at end of file diff --git a/docs/image/ST_Within/ST_Within_true.svg b/docs/image/ST_Within/ST_Within_true.svg new file mode 100644 index 0000000000..d3c49da750 --- /dev/null +++ b/docs/image/ST_Within/ST_Within_true.svg @@ -0,0 +1,15 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 300" width="400" height="300" style="background:#ffffff"> + <defs> + <style> + text { font-family: 'Segoe UI', Arial, Helvetica, sans-serif; } + </style> + </defs> + <text x="200" y="22" text-anchor="middle" font-size="16" font-weight="bold" fill="#333333">ST_Within(A, B)</text> + <rect x="325" y="8" width="60" height="22" rx="4" fill="#27ae60" /> + <text x="355" y="24" text-anchor="middle" font-size="12" font-weight="bold" fill="white">TRUE</text> + <path d="M 81.08 224.32 L 318.92 224.32 L 318.92 75.68 L 81.08 75.68 L 81.08 224.32 Z" fill="rgba(217,74,74,0.25)" stroke="#d94a4a" stroke-width="2.5" fill-rule="evenodd" /> + <text x="176.22" y="164.86" text-anchor="middle" font-size="15" font-weight="bold" fill="#d94a4a">B</text> + <path d="M 140.54 194.59 L 229.73 194.59 L 229.73 135.14 L 140.54 135.14 L 140.54 194.59 Z" fill="rgba(74,144,217,0.25)" stroke="#4a90d9" stroke-width="2.5" fill-rule="evenodd" /> + <text x="176.22" y="170.81" text-anchor="middle" font-size="15" font-weight="bold" fill="#4a90d9">A</text> + <text x="200" y="290" text-anchor="middle" font-size="12" fill="#666666" font-style="italic">A is fully within B</text> +</svg> \ No newline at end of file
