diff cmd/octree2contour/store.go @ 727:41c8dc61f38f

Moved octree loading stuff to octree package.
author Sascha L. Teichmann <teichmann@intevation.de>
date Sat, 22 Sep 2018 21:57:30 +0200
parents 5af9ab39e715
children 39b5cf9a6b8f
line wrap: on
line diff
--- a/cmd/octree2contour/store.go	Sat Sep 22 21:34:12 2018 +0200
+++ b/cmd/octree2contour/store.go	Sat Sep 22 21:57:30 2018 +0200
@@ -1,22 +1,14 @@
 package main
 
 import (
-	"bytes"
 	"database/sql"
-	"encoding/binary"
-	"math"
-)
 
-const (
-	wkbNDR              byte   = 1
-	wkbPointZ           uint32 = 1000 + 1
-	wkbLineStringZ      uint32 = 1000 + 2
-	wkbMultiLineStringZ uint32 = 1000 + 5
+	"gemma.intevation.de/gemma/pkg/octree"
 )
 
 type result struct {
 	h     float64
-	lines MultiLineStringZ
+	lines octree.MultiLineStringZ
 }
 
 const insertSQL = `
@@ -41,7 +33,7 @@
 		}
 
 		for _, r := range all {
-			if _, err := stmt.Exec(r.h, r.lines.asWKB(), epsg); err != nil {
+			if _, err := stmt.Exec(r.h, r.lines.AsWKB(), epsg); err != nil {
 				return err
 			}
 		}
@@ -49,25 +41,3 @@
 		return tx.Commit()
 	})
 }
-
-func (mls MultiLineStringZ) asWKB() []byte {
-
-	var buf bytes.Buffer
-
-	binary.Write(&buf, binary.LittleEndian, wkbNDR)
-	binary.Write(&buf, binary.LittleEndian, wkbMultiLineStringZ)
-	binary.Write(&buf, binary.LittleEndian, uint32(len(mls)))
-
-	for _, ml := range mls {
-		binary.Write(&buf, binary.LittleEndian, wkbNDR)
-		binary.Write(&buf, binary.LittleEndian, wkbLineStringZ)
-		binary.Write(&buf, binary.LittleEndian, uint32(len(ml)))
-		for _, p := range ml {
-			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))
-		}
-	}
-
-	return buf.Bytes()
-}