diff pkg/wfs/rawfeaturecollection.go @ 1624:943823d03d50

WFS downloader: Started with mapping return features to Go structs.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 18 Dec 2018 18:36:02 +0100
parents
children 92da44ba610c
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkg/wfs/rawfeaturecollection.go	Tue Dec 18 18:36:02 2018 +0100
@@ -0,0 +1,42 @@
+// This is Free Software under GNU Affero General Public License v >= 3.0
+// without warranty, see README.md and license for details.
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+// License-Filename: LICENSES/AGPL-3.0.txt
+//
+// Copyright (C) 2018 by via donau
+//   – Österreichische Wasserstraßen-Gesellschaft mbH
+// Software engineering by Intevation GmbH
+//
+// Author(s):
+//  * Sascha L. Teichmann <sascha.teichmann@intevation.de>
+
+package wfs
+
+import (
+	"encoding/json"
+	"io"
+)
+
+type RawFeatureCollection struct {
+	CRS struct {
+		Properties struct {
+			Name string `json:"name"`
+		} `json:"properties"`
+	} `json:"crs"`
+	Features []*struct {
+		Geometry struct {
+			Coordinates *json.RawMessage `json:"coordinates"`
+			Type        string           `json:"type"`
+		} `json:"geometry"`
+		Properties *json.RawMessage `json:"properties"`
+	} `json:"features"`
+}
+
+func ParseRawFeatureCollection(r io.Reader) (*RawFeatureCollection, error) {
+	rfc := new(RawFeatureCollection)
+	if err := json.NewDecoder(r).Decode(rfc); err != nil {
+		return nil, err
+	}
+	return rfc, nil
+}