Mercurial > gemma
view cmd/octree2contour/store.go @ 904:e4b72a199258
New default bottleneck colors
Mainly to make the stroke color one actually selectable in the ui.
In addition the pink does better match the collors used on the ECDIS layer.
author | Sascha Wilde <wilde@intevation.de> |
---|---|
date | Tue, 02 Oct 2018 13:34:59 +0200 |
parents | fb9faf2c4f60 |
children | 271561dce2e6 |
line wrap: on
line source
package main import ( "database/sql" "time" "gemma.intevation.de/gemma/pkg/octree" ) type result struct { h float64 lines octree.MultiLineStringZ } const ( deleteSQL = ` DELETE FROM waterway.sounding_results_contour_lines WHERE sounding_result_id IN (SELECT id FROM waterway.sounding_results WHERE bottleneck_id = $1 AND date_info = $2) ` insertSQL = ` INSERT INTO waterway.sounding_results_contour_lines (sounding_result_id, height, lines) SELECT sr.id, $1, ST_Transform( ST_Translate( ST_Force3D( ST_CollectionExtract( ST_Force2D( ST_Intersection( ST_Transform(sr.area::geometry, $3::integer), ST_SetSRID( ST_GeomFromWKB($2), $3::integer))), 2)), 0.0, 0.0, $1::numeric), 4326)::geography FROM waterway.sounding_results sr WHERE bottleneck_id = $4 AND date_info = $5 ` ) func store( all []result, epsg uint32, bottleneck string, date time.Time, ) error { return run(func(db *sql.DB) error { tx, err := db.Begin() if err != nil { return err } defer tx.Rollback() if _, err := tx.Exec(deleteSQL, bottleneck, date); err != nil { return err } stmt, err := tx.Prepare(insertSQL) if err != nil { return err } for _, r := range all { if _, err := stmt.Exec( r.h, r.lines.AsWKB(), epsg, bottleneck, date, ); err != nil { return err } } return tx.Commit() }) }