Mercurial > gemma
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 |