[geos-commits] [SCM] GEOS branch main updated. b50bb516081b9c3193fbc8001c08493d275f8fa2

git at osgeo.org git at osgeo.org
Thu Jul 9 11:12:51 PDT 2026


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GEOS".

The branch, main has been updated
       via  b50bb516081b9c3193fbc8001c08493d275f8fa2 (commit)
      from  7dfd43b6b5ab718abfc4ebee79834b27eb4bd9b1 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit b50bb516081b9c3193fbc8001c08493d275f8fa2
Author: Paul Ramsey <pramsey at cleverelephant.ca>
Date:   Thu Jul 9 11:12:05 2026 -0700

    Add in Curve geometry info to WKB section
    Closes #1472

diff --git a/web/content/specifications/wkb.md b/web/content/specifications/wkb.md
index 048f96794..57c5ee024 100644
--- a/web/content/specifications/wkb.md
+++ b/web/content/specifications/wkb.md
@@ -85,18 +85,23 @@ with each ordinate value set to an IEEE-754 quiet NaN value
 GEOS only supports the seven original simple features geometry types.
 
 ```
-enum wkbGeometryType {
+enum wkbType {
     wkbPoint = 1,
     wkbLineString = 2,
     wkbPolygon = 3,
     wkbMultiPoint = 4,
     wkbMultiLineString = 5,
     wkbMultiPolygon = 6,
-    wkbGeometryCollection = 7
+    wkbGeometryCollection = 7,
+    wkbCircularString = 8,
+    wkbCompoundCurve = 9,
+    wkbCurvePolygon = 10,
+    wkbMultiCurve = 11,
+    wkbMultiSurface = 12
 };
 ```
 
-Other systems (eg PostGIS) support a wider range of types (for example, CircularString, CurvePolygon), and hence more geometry type numbers, but GEOS is currently unable to consume those geometries.
+Other systems (eg PostGIS) support a wider range of types (for example, PolyhedralSurface, TIN), and hence even more geometry type numbers, but GEOS is cannot consume those geometries.
 
 ```
 WKBPoint {
@@ -133,7 +138,7 @@ WKBMultiLineString {
     WKBLineString WKBLineStrings[numWkbLineStrings];
 }
 
-wkbMultiPolygon {
+WKBMultiPolygon {
     byte    byteOrder;
     uint32  wkbType; // 6
     uint32  numWkbPolygons;
@@ -158,8 +163,59 @@ WKBGeometryCollection {
     uint32  numWkbGeometries;
     WKBGeometry wkbGeometries[numWkbGeometries];
 }
+
+WKBCurve {
+    union {
+        WKBLineString linestring;
+        WKBCircularString circstring;
+        WKBCompoundCurve compound;
+    }
+}
+
+WKBCircularString {
+    byte    byteOrder;
+    uint32  wkbType; // 8
+    uint32  numPoints;
+    Point   points[numPoints];
+}
+
+WKBCompoundCurve {
+    byte    byteOrder;
+    uint32  wkbType; // 9
+    uint32  numCurves;
+    WKBCurve   curves[numCurves]; // start/end points must match
+}
+
+WKBCurvePolygon {
+    byte    byteOrder;
+    uint32  wkbType; // 10
+    uint32  numRings;
+    WKBCurve   rings[numRings]; // rings must be closed
+}
+
+WKBSurface {
+    union {
+        WKBPolygon polygon;
+        WKBCurvePolygon curvepoly;
+    }
+}
+
+WKBMultiCurve {
+    byte    byteOrder;
+    uint32  wkbType; // 11
+    uint32  numCurves;
+    WKBCurve   curves[numCurves];
+}
+
+WKBMultiSurface {
+    byte    byteOrder;
+    uint32  wkbType; // 12
+    uint32  numSurfaces;
+    WKBSurface   surfaces[numSurfaces];
+}
 ```
 
+
 ### Example
 
 The following bytes (in hex) make up the WKB for a `LINESTRING(0 0, 1 1, 2 1)`:

-----------------------------------------------------------------------

Summary of changes:
 web/content/specifications/wkb.md | 64 ++++++++++++++++++++++++++++++++++++---
 1 file changed, 60 insertions(+), 4 deletions(-)


hooks/post-receive
-- 
GEOS


More information about the geos-commits mailing list