changeset 4331:98497ac4af3c

Multi polygon: Fixed creation of WKB representation.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 05 Sep 2019 09:29:15 +0200
parents fe01e997d66f
children 8080007d3c06
files pkg/wkb/data.go
diffstat 1 files changed, 5 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/pkg/wkb/data.go	Thu Sep 05 09:19:42 2019 +0200
+++ b/pkg/wkb/data.go	Thu Sep 05 09:29:15 2019 +0200
@@ -32,11 +32,11 @@
 
 func (mpg MultiPolygonGeom) AsWKB() []byte {
 
-	size := 1 + 1 + 4
+	size := 1 + 4 + 4
 	for _, pg := range mpg {
-		size += 1 + 4
+		size += 1 + 4 + 4
 		for _, r := range pg {
-			size += 1 + 4 + 2*8*len(r)
+			size += 4 + 2*8*len(r)
 		}
 	}
 
@@ -48,10 +48,10 @@
 
 	for _, pg := range mpg {
 		binary.Write(buf, binary.LittleEndian, NDR)
+		binary.Write(buf, binary.LittleEndian, Polygon)
 		binary.Write(buf, binary.LittleEndian, uint32(len(pg)))
 
 		for _, r := range pg {
-			binary.Write(buf, binary.LittleEndian, NDR)
 			binary.Write(buf, binary.LittleEndian, uint32(len(r)))
 			for _, p := range r {
 				x := math.Float64bits(p.X)
@@ -90,7 +90,7 @@
 		return fmt.Errorf("unknown geometry type %x", geomType)
 	}
 
-	var numPolygons int32
+	var numPolygons uint32
 	if err := binary.Read(r, order, &numPolygons); err != nil {
 		return err
 	}