comparison pkg/wfs/capabilities.go @ 1679:2dc7768be0e4

Waterway axis import: More on reading data from WFS. TODO: Parse to concrete features.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 26 Dec 2018 21:01:29 +0100
parents efc409e330a6
children 6caf5cd6249e
comparison
equal deleted inserted replaced
1678:8fdb57173e3f 1679:2dc7768be0e4
13 13
14 package wfs 14 package wfs
15 15
16 import ( 16 import (
17 "encoding/xml" 17 "encoding/xml"
18 "errors"
18 "io" 19 "io"
19 "regexp" 20 "regexp"
20 "strconv" 21 "strconv"
21 22
22 "golang.org/x/net/html/charset" 23 "golang.org/x/net/html/charset"
313 } 314 }
314 315
315 return max 316 return max
316 } 317 }
317 318
319 var (
320 ErrInvalidCRS = errors.New("Invalid CRS string")
321 crsRe = regexp.MustCompile(`urn:ogc:def:crs:EPSG:[^:]*:(\d+)`)
322 )
323
324 func CRSToEPSG(s string) (int, error) {
325 m := crsRe.FindStringSubmatch(s)
326 if m == nil {
327 return 0, ErrInvalidCRS
328 }
329 return strconv.Atoi(m[1])
330 }
331
318 func ParseCapabilities(r io.Reader) (*Capabilities, error) { 332 func ParseCapabilities(r io.Reader) (*Capabilities, error) {
319 333
320 decoder := xml.NewDecoder(r) 334 decoder := xml.NewDecoder(r)
321 decoder.CharsetReader = charset.NewReaderLabel 335 decoder.CharsetReader = charset.NewReaderLabel
322 336