Mercurial > gemma
changeset 4309:78be85723eff
stretch shape export: Write attributes, too.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 02 Sep 2019 22:34:56 +0200 |
parents | 2c83d32bdd1b |
children | 3d6941046858 |
files | pkg/controllers/shapestretches.go |
diffstat | 1 files changed, 34 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/pkg/controllers/shapestretches.go Mon Sep 02 21:32:11 2019 +0200 +++ b/pkg/controllers/shapestretches.go Mon Sep 02 22:34:56 2019 +0200 @@ -23,6 +23,7 @@ "net/http" "os" "path/filepath" + "strings" "time" "github.com/gorilla/mux" @@ -214,12 +215,43 @@ } defer writer.Close() - // TODO: Write geometry + fields := []shp.Field{ + shp.StringField("NAME", 50), + shp.StringField("OBJNAM", 50), + shp.StringField("NOBJNAM", 50), + shp.StringField("LOWER", 25), + shp.StringField("UPPER", 25), + shp.StringField("SOURCE", 50), + shp.StringField("DATEINFO", 25), + shp.StringField("COUNTRIES", 50), + } + + writer.SetFields(fields) + p := asShpPolygon(geom) writer.Write(p) - return nil + write := func(field int, v interface{}) { + if err == nil { + err = writer.WriteAttribute(0, field, v) + } + } + + write(0, name) + write(1, objnam) + if nobjnam.Valid { + write(2, nobjnam.String) + } + write(3, lower) + write(4, upper) + write(5, source) + write(6, dateInfo.Format(time.RFC3339)) + if len(countries) > 0 { + write(7, strings.Join(countries, ",")) + } + + return err }(); err != nil { http.Error( rw, fmt.Sprintf("creating shapefile failed: %v.", err),