Popularity
4.8
Stable
Activity
0.0
Stable
134
6
15

Programming language: Go
License: MIT License
Tags: Database    

geocache alternatives and similar packages

Based on the "Database" category.
Alternatively, view geocache alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of geocache or a related project?

Add another 'Database' Package

README

geocache GoDoc Go Report Card Build Status

geocache is an in-memory cache that is suitable for geolocation based applications. It uses geolocation as a key for storing items. You can specify range on initialization and thats it! You can store any object, it uses interface.

Installation

go get github.com/melihmucuk/geocache

Usage

geolocation cache


import (
    "fmt"
    "time"

    "github.com/melihmucuk/geocache"
)

func main() {
    c, err := geocache.NewCache(5*time.Minute, 30*time.Second, geocache.WithIn1KM)
    geoPoint := geocache.GeoPoint{Latitude: 40.9887, Longitude: 28.7817}
    if err != nil {
        fmt.Println("Error: ", err.Error())
    } else {
        c.Set(geoPoint, "helloooo", 2*time.Minute)
        v1, ok1 := c.Get(geocache.GeoPoint{Latitude: 41.2, Longitude: 29.3})
        v2, ok2 := c.Get(geocache.GeoPoint{Latitude: 41.2142, Longitude: 29.4234})
        v3, ok3 := c.Get(geocache.GeoPoint{Latitude: 40.9858, Longitude: 28.7852})
        v4, ok4 := c.Get(geocache.GeoPoint{Latitude: 40.9827, Longitude: 28.7883})
        fmt.Println(v1, ok1)
        fmt.Println(v2, ok2)
        fmt.Println(v3, ok3)
        fmt.Println(v4, ok4)
    }
}

outputs:

<nil>, false
<nil>, false
helloooo, true
helloooo, true

Information

You can specify 8 different range. More info can be found here.

  • WithIn11KM

The first decimal place is worth up to 11.1 km eg: 41.3, 29.6

  • WithIn1KM

The second decimal place is worth up to 1.1 km eg: 41.36, 29.63

  • WithIn110M

The third decimal place is worth up to 110 m eg: 41.367, 29.631

  • WithIn11M

The fourth decimal place is worth up to 11 m eg: 41.3674, 29.6316

  • WithIn1M

The fifth decimal place is worth up to 1.1 m eg: 41.36742, 29.63168

  • WithIn11CM

The sixth decimal place is worth up to 0.11 m eg: 41.367421, 29.631689

  • WithIn11MM

The seventh decimal place is worth up to 11 mm eg: 41.3674211, 29.6316893

  • WithIn1MM

The eighth decimal place is worth up to 1.1 mm eg: 41.36742115, 29.63168932