Mercurial > gemma
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() -}