Documentation
¶
Overview ¶
Package tzf is a package convert (lng,lat) to timezone.
Inspired by timezonefinder https://github.com/jannikmi/timezonefinder, fast python package for finding the timezone of any point on earth (coordinates) offline.
Index ¶
- type Finder
- func (f *Finder) GetTimezone(lng float64, lat float64) (*pb.Timezone, error)
- func (f *Finder) GetTimezoneLoc(lng float64, lat float64) (*time.Location, error)
- func (f *Finder) GetTimezoneName(lng float64, lat float64) string
- func (f *Finder) GetTimezoneShapeByName(name string) (*pb.Timezone, error)
- func (f *Finder) GetTimezoneShapeByShift(shift int) ([]*pb.Timezone, error)
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Finder ¶
type Finder struct {
// contains filtered or unexported fields
}
func NewFinderFromRawJSON ¶ added in v0.2.0
func NewFinderFromRawJSON(input *convert.BoundaryFile) (*Finder, error)
func (*Finder) GetTimezone ¶ added in v0.3.0
func (*Finder) GetTimezoneLoc ¶
Example ¶
package main
import (
"fmt"
"github.com/ringsaturn/tzf"
tzfrel "github.com/ringsaturn/tzf-rel"
"github.com/ringsaturn/tzf/pb"
"google.golang.org/protobuf/proto"
)
func main() {
input := &pb.Timezones{}
// Lite data, about 16.7MB
dataFile := tzfrel.LiteData
// Full data, about 83.5MB
// dataFile := tzfrel.FullData
if err := proto.Unmarshal(dataFile, input); err != nil {
panic(err)
}
finder, _ := tzf.NewFinderFromPB(input)
fmt.Println(finder.GetTimezoneLoc(116.6386, 40.0786))
}
Output: Asia/Shanghai <nil>
func (*Finder) GetTimezoneName ¶
Example ¶
package main
import (
"fmt"
"github.com/ringsaturn/tzf"
tzfrel "github.com/ringsaturn/tzf-rel"
"github.com/ringsaturn/tzf/pb"
"google.golang.org/protobuf/proto"
)
func main() {
input := &pb.Timezones{}
// Lite data, about 16.7MB
dataFile := tzfrel.LiteData
// Full data, about 83.5MB
// dataFile := tzfrel.FullData
if err := proto.Unmarshal(dataFile, input); err != nil {
panic(err)
}
finder, _ := tzf.NewFinderFromPB(input)
fmt.Println(finder.GetTimezoneName(116.6386, 40.0786))
}
Output: Asia/Shanghai
func (*Finder) GetTimezoneShapeByName ¶ added in v0.5.0
Example ¶
package main
import (
"fmt"
"github.com/ringsaturn/tzf"
tzfrel "github.com/ringsaturn/tzf-rel"
"github.com/ringsaturn/tzf/pb"
"google.golang.org/protobuf/proto"
)
func main() {
input := &pb.Timezones{}
// Lite data, about 16.7MB
dataFile := tzfrel.LiteData
if err := proto.Unmarshal(dataFile, input); err != nil {
panic(err)
}
finder, _ := tzf.NewFinderFromPB(input)
pbtz, err := finder.GetTimezoneShapeByName("Asia/Shanghai")
fmt.Printf("%v %v\n", pbtz.Name, err)
}
Output: Asia/Shanghai <nil>
func (*Finder) GetTimezoneShapeByShift ¶ added in v0.5.0
Example ¶
package main
import (
"fmt"
"strings"
"sort"
"github.com/ringsaturn/tzf"
tzfrel "github.com/ringsaturn/tzf-rel"
"github.com/ringsaturn/tzf/pb"
"google.golang.org/protobuf/proto"
)
func main() {
input := &pb.Timezones{}
// Lite data, about 16.7MB
dataFile := tzfrel.LiteData
if err := proto.Unmarshal(dataFile, input); err != nil {
panic(err)
}
finder, _ := tzf.NewFinderFromPB(input)
pbtzs, _ := finder.GetTimezoneShapeByShift(28800)
pbnames := make([]string, 0)
for _, pbtz := range pbtzs {
pbnames = append(pbnames, pbtz.Name)
}
sort.Strings(pbnames)
fmt.Println(strings.Join(pbnames, ","))
}
Output: Asia/Brunei,Asia/Choibalsan,Asia/Hong_Kong,Asia/Irkutsk,Asia/Kuala_Lumpur,Asia/Kuching,Asia/Macau,Asia/Makassar,Asia/Manila,Asia/Shanghai,Asia/Singapore,Asia/Taipei,Asia/Ulaanbaatar,Australia/Perth,Etc/GMT-8
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
compare-lite-full
command
|
|
|
reducePolygon
command
CLI tool to reduce polygon filesize
|
CLI tool to reduce polygon filesize |
|
tzjson2pb
command
CLI tool to convert GeoJSON based Timezone boundary to tzf's Probuf format.
|
CLI tool to convert GeoJSON based Timezone boundary to tzf's Probuf format. |
|
python
|
|
|
tzfpy
command
TZF's Python binding
|
TZF's Python binding |
|
Package reduce could reduce Polygon size both polygon lines and float precise.
|
Package reduce could reduce Polygon size both polygon lines and float precise. |
Click to show internal directories.
Click to hide internal directories.