diff pkg/octree/tin.go @ 2529:45d51a49f191

SR import: Use own triangulation and clipping when importing sounding results.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 06 Mar 2019 17:51:58 +0100
parents 63475c8e710e
children 59e7a011d347
line wrap: on
line diff
--- a/pkg/octree/tin.go	Wed Mar 06 16:26:45 2019 +0100
+++ b/pkg/octree/tin.go	Wed Mar 06 17:51:58 2019 +0100
@@ -15,8 +15,6 @@
 
 import (
 	"bytes"
-	"context"
-	"database/sql"
 	"encoding/binary"
 	"errors"
 	"fmt"
@@ -190,47 +188,6 @@
 	return nil
 }
 
-const (
-	tinSQLPrefix = `WITH trans AS (
-  SELECT
-	ST_Buffer(ST_Transform(area::geometry, $1::int), 0.001) AS area,
-	ST_Transform(point_cloud::geometry, $1::int) AS point_cloud
-  FROM waterway.sounding_results
-`
-	tinSQLSuffix = `
-),
-triangles AS (
-  SELECT t.geom AS geom, ST_MakePolygon(ST_ExteriorRing(t.geom)) AS poly FROM (
-    SELECT (ST_Dump(
-      ST_DelaunayTriangles(point_cloud, 0, 2))).geom
-    FROM trans) t
-)
-SELECT ST_AsBinary(ST_Collect(triangles.geom)) FROM triangles, trans
-WHERE ST_Covers(trans.area, triangles.poly)`
-
-	loadTinByIDSQL = tinSQLPrefix + `WHERE id = $2` + tinSQLSuffix
-)
-
-// GenerateTinByID generated a TIN by triangulating a point cloud
-// from the database.
-func GenerateTinByID(
-	ctx context.Context,
-	conn *sql.Conn,
-	id int64,
-	epsg uint32,
-) (*Tin, error) {
-	var tin Tin
-	err := conn.QueryRowContext(ctx, loadTinByIDSQL, epsg, id).Scan(&tin)
-	switch {
-	case err == sql.ErrNoRows:
-		return nil, nil
-	case err != nil:
-		return nil, err
-	}
-	tin.EPSG = epsg
-	return &tin, nil
-}
-
 // Scan implements the sql.Scanner interface.
 func (t *Tin) Scan(raw interface{}) error {
 	if raw == nil {