diff pkg/octree/vertex.go @ 2472:db0e4ab57977 octree-diff

Turn new point cloud into WKB form of MultiPointZ.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 26 Feb 2019 12:22:04 +0100
parents 63475c8e710e
children 620038ade708
line wrap: on
line diff
--- a/pkg/octree/vertex.go	Tue Feb 26 11:34:15 2019 +0100
+++ b/pkg/octree/vertex.go	Tue Feb 26 12:22:04 2019 +0100
@@ -924,9 +924,13 @@
 	binary.Write(buf, binary.LittleEndian, wkb.MultiPointZ)
 	binary.Write(buf, binary.LittleEndian, uint32(len(mpz)))
 
+	perPoint := bytes.NewBuffer(make([]byte, 0, 1+4))
+	binary.Write(perPoint, binary.LittleEndian, wkb.NDR)
+	binary.Write(perPoint, binary.LittleEndian, wkb.PointZ)
+	hdr := perPoint.Bytes()
+
 	for _, p := range mpz {
-		binary.Write(buf, binary.LittleEndian, wkb.NDR)
-		binary.Write(buf, binary.LittleEndian, wkb.PointZ)
+		buf.Write(hdr)
 		binary.Write(buf, binary.LittleEndian, math.Float64bits(p.X))
 		binary.Write(buf, binary.LittleEndian, math.Float64bits(p.Y))
 		binary.Write(buf, binary.LittleEndian, math.Float64bits(p.Z))