go-tz

module
v2.0.17 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 25, 2022 License: MIT

README

go-tz

Library archived and no longer maintained, use something elses

tz-lookup by lon and lat

GoDoc Go Report Card Donate

lookup timezone for a given location

Usage

import "gopkg.in/ugjka/go-tz.v2/tz"
Example
// Loading Zone for Line Islands, Kiritimati
zone, err := tz.GetZone(tz.Point{
    Lon: -157.21328, Lat: 1.74294,
})
if err != nil {
    panic(err)
}
fmt.Println(zone[0])
[ugjka@archee example]$ go run main.go
Pacific/Kiritimati

Uses simplified shapefile from timezone-boundary-builder

GeoJson Simplification done with mapshaper

Features

  • The timezone shapefile is embedded in the build binary
  • Supports overlapping zones
  • You can load your own geojson shapefile if you want
  • Sub millisecond lookup even on old hardware

Problems

  • Shapefile is simplified using a lossy method so it may be innacurate along the borders
  • This is purely in-memory. Uses ~50MB of ram

Licenses

The code used to lookup the timezone for a location is licensed under the MIT License.

The data in timezone shapefile is licensed under the Open Data Commons Open Database License (ODbL).

Directories

Path Synopsis
tz
tzshapefilegen
Code generation tool for embedding the timezone shapefile in the gotz package run "go generate" in the parent directory after changing the -release flag in gen.go You need mapshaper to be installed and it must be in your $PATH More info on mapshaper: https://github.com/mbloch/mapshaper
Code generation tool for embedding the timezone shapefile in the gotz package run "go generate" in the parent directory after changing the -release flag in gen.go You need mapshaper to be installed and it must be in your $PATH More info on mapshaper: https://github.com/mbloch/mapshaper

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL