Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/flopp/go-coordsparser
A library for parsing (geographic) coordinates in go (golang)
https://github.com/flopp/go-coordsparser
coordinates geospatial gis parser
Last synced: 4 months ago
JSON representation
A library for parsing (geographic) coordinates in go (golang)
- Host: GitHub
- URL: https://github.com/flopp/go-coordsparser
- Owner: flopp
- License: mit
- Created: 2016-02-14T12:05:20.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2024-04-03T15:29:46.000Z (10 months ago)
- Last Synced: 2024-06-19T11:32:00.187Z (8 months ago)
- Topics: coordinates, geospatial, gis, parser
- Language: Go
- Homepage:
- Size: 15.6 KB
- Stars: 7
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![PkgGoDev](https://pkg.go.dev/badge/github.com/flopp/go-coordsparser)](https://pkg.go.dev/github.com/flopp/go-coordsparser)
[![Go Report Card](https://goreportcard.com/badge/flopp/go-coordsparser)](https://goreportcard.com/report/flopp/go-coordsparser)
[![License MIT](https://img.shields.io/badge/license-MIT-lightgrey.svg?style=flat)](https://github.com/flopp/go-coordsparser)# go-coordsparser
A library for parsing (geographic) coordinates in go (golang)# What?
go-coordsparser allows you to parse lat/lng coordinates from strings in various popular formats. Currently supported formats are:
- **D** (decimal degrees), e.g. `40.76, -73.984`
- **HD** (hemisphere prefix, decimal degrees), e.g. `N 40.76 W 73.984`
- **HDM** (hemisphere prefix, integral degrees, decimal minutes), e.g. `N 40 45.600 W 73 59.040`
- **HDMS** (hemisphere prefix, integral degrees, integral minutes, decimal seconds), e.g. `N 40 45 36.0 W 73 59 02.4`# How?
### Installing
Installing the library is as easy as```bash
$ go get github.com/flopp/go-coordsparser
```The package can then be used through an
```go
import "github.com/flopp/go-coordsparser"
```### Using
go-coordsparser provides several functions for parsing coordinate strings: a general parsing function `coordsparser.Parse`, which accepts all supported formats, as well as specialized functions `coordsparser.ParseD`, `coordsparser.ParseHD`, `coordsparser.ParseHDM`, `coordsparser.ParseHDMS` for the corresponding coordinate formats.Each function takes a single string as a parameter and returns an idiomatic `lat, lng, error` triple, where `lat` and `lng` are decimal degrees (`float64`) with -90 ≤ `lat` ≤ 90 and -180 ≤ `lng` ≤ 180.
```go
// parse any format
s1 := "..."
lat1, lng1, err := coordsparser.Parse(s1)
if err != nil {
fmt.Errorf("Cannot parse coordinates string:", s1)
}// parse specific format, e.g. HDM
s2 := "..."
lat2, lng2, err = coordsparser.ParseHDM(s2)
if err != nil {
fmt.Errorf("Cannot parse coordinates string:", s2)
}
```# License
Copyright 2016 Florian Pigorsch. All rights reserved.Use of this source code is governed by a MIT-style license that can be found in the LICENSE file.