package main import ( "crypto/sha256" "fmt" "io" "strings" "github.com/golang/geo/s2" ) type cacheFunction func(center s2.LatLng, zoom int, marker []marker, x, y int) (io.ReadCloser, error) func cacheKeyHelper(center s2.LatLng, zoom int, marker []marker, x, y int) string { markerString := []string{} for _, m := range marker { markerString = append(markerString, m.String()) } hashString := fmt.Sprintf("%s|%d|%s|%dx%d", center.String(), zoom, strings.Join(markerString, "+"), x, y) return fmt.Sprintf("%x", sha256.Sum256([]byte(hashString))) }