latlong

package module
v0.0.0-...-4fcde68 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2018 License: Apache-2.0 Imports: 10 Imported by: 1

README

Disclaimer

This is a fork of patched package originaly authored by Brad Fitzpatrick. It has been setted up to automatically generate new code against fresh world.shp file every day.

Current build status: Build Status

Usage

This packages guarantees backward compatibility. So update as often as possible.

go get -u github.com/bbrodriges/latlong

Original bradfitz message

This is a Go package which maps a (lat, long) to a timezone.

My motivation was figuring out the UTC time of a JPG with EXIF
metadata containing GPS coordinates and local time, but no timezone
offset. This is a surprising number of photos. I built this to
improve sorting in Camlistore, especially when photos are intermixed
with tweets, checkins, etc, but it should be generally applicable.

See docs at http://godoc.org/github.com/bradfitz/latlong

It tries to have a small binary size (~360 KB), low memory footprint
(~1 MB), and incredibly fast lookups (~0.5 microseconds). It does not
try to be perfectly accurate when very close to borders.

To rebuild the data files, see the Makefile (or just run make).
You'll need the data files unzip to the "world" directory.

Some background:

    https://plus.google.com/u/0/+BradFitzpatrick/posts/XVyy1bAzkZd

Another image of the underlying data structure:

    http://i.imgur.com/Rt8bLSD.png

... the tile borders are only there for debugging, to show areas with
only one timezone. Tiles without borders around them still work; at
that level, the small possible bitmap is used for lookup.

Documentation

Overview

Package latlong maps from a latitude and longitude to a timezone.

It uses the data from http://efele.net/maps/tz/world/ compressed down to an internal form optimized for low memory overhead and fast lookups at the expense of perfect accuracy when close to borders. The data files are compiled in to this package and do not require explicit loading.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func LookupZoneName

func LookupZoneName(lat, long float64) string

LookupZoneName returns the timezone name at the given latitude and longitude. The returned name is either the empty string (if not found) or a name suitable for passing to time.LoadLocation. For example, "America/New_York".

Types

This section is empty.

Jump to

Keyboard shortcuts

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