Last active
February 27, 2019 18:30
-
-
Save peterhellberg/6fffe01a268e2b9724d2739269ecbd57 to your computer and use it in GitHub Desktop.
Carto Basemaps animation using gfx. https://carto.com/location-data-services/basemaps/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import "github.com/peterhellberg/gfx" | |
const ( | |
zoomLevels = 18 | |
tileSize = 512 | |
tileFormat = "https://a.basemaps.cartocdn.com/rastertiles/voyager/%d/%d/%d@2x.png" | |
) | |
func main() { | |
pos := gfx.GP(59.270889, 18.048125) | |
a := gfx.Animation{Delay: 50, LoopCount: -1} | |
for zoom := 0; zoom < zoomLevels; zoom++ { | |
gt := pos.GeoTile(zoom) | |
src, err := gfx.GetImage(gt.Rawurl(tileFormat)) | |
if err != nil { | |
continue | |
} | |
m := gfx.NewImage(tileSize/2+tileSize, tileSize/2+tileSize) | |
c := gfx.BoundsCenter(m.Bounds()) | |
gfx.Draw(m, m.Bounds().Add(c.Pt()).Sub(pos.In(gt, tileSize).Pt()), src) | |
gfx.DrawCircleFilled(m, c, 2, gfx.ColorBlack) | |
a.AddFrame(m, append(PaletteBasemaps, gfx.ColorMagenta).AsColorPalette()) | |
} | |
a.SaveGIF("gfx-geo-tiles-carto-basemaps-animated.gif") | |
} | |
var PaletteBasemaps = gfx.Palette{ | |
{0x41, 0x5C, 0x77, 0xFF}, | |
{0x56, 0x6E, 0x85, 0xFF}, | |
{0x68, 0x7D, 0x91, 0xFF}, | |
{0x87, 0x91, 0x9D, 0xFF}, | |
{0x8B, 0x94, 0xA0, 0xFF}, | |
{0x95, 0x9F, 0xAA, 0xFF}, | |
{0x96, 0xA4, 0xB0, 0xFF}, | |
{0x9B, 0xA3, 0xAD, 0xFF}, | |
{0xA4, 0xAB, 0xB3, 0xFF}, | |
{0xAE, 0xCE, 0xD4, 0xFF}, | |
{0xB3, 0xD1, 0xD6, 0xFF}, | |
{0xB9, 0xBF, 0xC5, 0xFF}, | |
{0xBB, 0xD6, 0xDB, 0xFF}, | |
{0xBC, 0xD4, 0xD5, 0xFF}, | |
{0xBE, 0xC3, 0xC8, 0xFF}, | |
{0xC0, 0xDB, 0xE0, 0xFF}, | |
{0xC2, 0xC9, 0xCE, 0xFF}, | |
{0xC3, 0xDC, 0xE1, 0xFF}, | |
{0xC6, 0xDE, 0xE2, 0xFF}, | |
{0xC8, 0xE0, 0xE4, 0xFF}, | |
{0xC9, 0xD6, 0xC9, 0xFF}, | |
{0xCB, 0xE0, 0xE3, 0xFF}, | |
{0xCB, 0xE1, 0xE5, 0xFF}, | |
{0xCD, 0xCC, 0xCA, 0xFF}, | |
{0xCE, 0xE3, 0xE6, 0xFF}, | |
{0xD1, 0xE5, 0xE9, 0xFF}, | |
{0xD3, 0xE6, 0xEA, 0xFF}, | |
{0xD5, 0xE3, 0xD7, 0xFF}, | |
{0xD5, 0xE8, 0xEB, 0xFF}, | |
{0xD7, 0xD8, 0xD9, 0xFF}, | |
{0xD9, 0xE7, 0xCE, 0xFF}, | |
{0xDA, 0xE8, 0xCF, 0xFF}, | |
{0xDC, 0xE9, 0xDB, 0xFF}, | |
{0xDD, 0xE0, 0xE0, 0xFF}, | |
{0xDF, 0xDE, 0xDD, 0xFF}, | |
{0xE1, 0xC7, 0xC9, 0xFF}, | |
{0xE1, 0xE0, 0xDF, 0xFF}, | |
{0xE2, 0xEB, 0xEB, 0xFF}, | |
{0xE2, 0xED, 0xD8, 0xFF}, | |
{0xE3, 0xE1, 0xDA, 0xFF}, | |
{0xE3, 0xE2, 0xE0, 0xFF}, | |
{0xE3, 0xE5, 0xE4, 0xFF}, | |
{0xE3, 0xEC, 0xD9, 0xFF}, | |
{0xE4, 0xDC, 0xD1, 0xFF}, | |
{0xE4, 0xE3, 0xE0, 0xFF}, | |
{0xE5, 0xDB, 0xC7, 0xFF}, | |
{0xE5, 0xEE, 0xDB, 0xFF}, | |
{0xE5, 0xEE, 0xED, 0xFF}, | |
{0xE6, 0xE5, 0xE1, 0xFF}, | |
{0xE6, 0xEF, 0xDD, 0xFF}, | |
{0xE7, 0xDA, 0xC8, 0xFF}, | |
{0xE7, 0xDB, 0xCA, 0xFF}, | |
{0xE7, 0xE0, 0xD5, 0xFF}, | |
{0xE8, 0xDB, 0xB8, 0xFF}, | |
{0xE8, 0xF0, 0xDD, 0xFF}, | |
{0xE9, 0xD6, 0xD6, 0xFF}, | |
{0xE9, 0xE9, 0xE9, 0xFF}, | |
{0xE9, 0xF0, 0xDF, 0xFF}, | |
{0xEA, 0xD5, 0xD7, 0xFF}, | |
{0xEA, 0xE2, 0xD6, 0xFF}, | |
{0xEA, 0xE4, 0xDF, 0xFF}, | |
{0xEB, 0xDD, 0xC9, 0xFF}, | |
{0xEB, 0xE4, 0xDA, 0xFF}, | |
{0xEB, 0xEB, 0xE8, 0xFF}, | |
{0xEC, 0xE2, 0xDD, 0xFF}, | |
{0xEC, 0xF1, 0xEE, 0xFF}, | |
{0xED, 0xE7, 0xDD, 0xFF}, | |
{0xED, 0xF2, 0xE4, 0xFF}, | |
{0xEE, 0xDD, 0xDE, 0xFF}, | |
{0xEE, 0xE1, 0xCE, 0xFF}, | |
{0xEE, 0xE5, 0xE3, 0xFF}, | |
{0xEE, 0xE9, 0xCE, 0xFF}, | |
{0xEE, 0xEE, 0xEC, 0xFF}, | |
{0xEE, 0xF2, 0xF1, 0xFF}, | |
{0xEF, 0xEA, 0xE0, 0xFF}, | |
{0xEF, 0xEE, 0xEA, 0xFF}, | |
{0xF0, 0xEE, 0xE7, 0xFF}, | |
{0xF1, 0xE6, 0xD6, 0xFF}, | |
{0xF1, 0xEE, 0xE3, 0xFF}, | |
{0xF1, 0xF2, 0xEE, 0xFF}, | |
{0xF2, 0xE6, 0xE5, 0xFF}, | |
{0xF2, 0xE9, 0xDA, 0xFF}, | |
{0xF2, 0xF0, 0xEA, 0xFF}, | |
{0xF2, 0xF5, 0xF8, 0xFF}, | |
{0xF3, 0xF6, 0xED, 0xFF}, | |
{0xF4, 0xEB, 0xD4, 0xFF}, | |
{0xF4, 0xEC, 0xE0, 0xFF}, | |
{0xF4, 0xF2, 0xEE, 0xFF}, | |
{0xF5, 0xED, 0xE3, 0xFF}, | |
{0xF5, 0xF3, 0xF0, 0xFF}, | |
{0xF5, 0xF5, 0xF2, 0xFF}, | |
{0xF6, 0xEF, 0xE5, 0xFF}, | |
{0xF6, 0xF0, 0xE5, 0xFF}, | |
{0xF6, 0xF4, 0xEB, 0xFF}, | |
{0xF6, 0xF6, 0xF5, 0xFF}, | |
{0xF7, 0xF1, 0xE7, 0xFF}, | |
{0xF8, 0xDD, 0xAA, 0xFF}, | |
{0xF8, 0xF2, 0xEE, 0xFF}, | |
{0xF8, 0xF4, 0xEB, 0xFF}, | |
{0xF9, 0xE0, 0xAF, 0xFF}, | |
{0xF9, 0xE6, 0xC3, 0xFF}, | |
{0xF9, 0xF6, 0xEE, 0xFF}, | |
{0xF9, 0xF6, 0xEF, 0xFF}, | |
{0xFA, 0xDC, 0x9E, 0xFF}, | |
{0xFA, 0xDD, 0xA1, 0xFF}, | |
{0xFA, 0xE4, 0xBC, 0xFF}, | |
{0xFA, 0xE7, 0xC0, 0xFF}, | |
{0xFB, 0xED, 0xD2, 0xFF}, | |
{0xFB, 0xEE, 0xD5, 0xFF}, | |
{0xFB, 0xF8, 0xF3, 0xFF}, | |
{0xFC, 0xE1, 0xA4, 0xFF}, | |
{0xFC, 0xF2, 0xE3, 0xFF}, | |
{0xFC, 0xFA, 0xF6, 0xFF}, | |
{0xFD, 0xEB, 0xCE, 0xFF}, | |
{0xFD, 0xEC, 0xD0, 0xFF}, | |
{0xFD, 0xEF, 0xD6, 0xFF}, | |
{0xFD, 0xFB, 0xF6, 0xFF}, | |
{0xFE, 0xE8, 0xA9, 0xFF}, | |
{0xFE, 0xF8, 0xED, 0xFF}, | |
{0xFE, 0xF9, 0xEF, 0xFF}, | |
{0xFE, 0xFC, 0xDA, 0xFF}, | |
{0xFF, 0xE8, 0xB7, 0xFF}, | |
{0xFF, 0xFF, 0xFE, 0xFF}, | |
} |
Author
peterhellberg
commented
Feb 15, 2019
// PaletteBasemapsVoyager is the Basemaps Voyager palette.
var PaletteBasemapsVoyager = Palette{
{0xE1, 0xC7, 0xC9, 0xFF},
{0xEA, 0xD5, 0xD7, 0xFF},
{0xEE, 0xDD, 0xDE, 0xFF},
{0x41, 0x5C, 0x77, 0xFF},
{0x56, 0x6E, 0x85, 0xFF},
{0x68, 0x7D, 0x91, 0xFF},
{0x96, 0xA4, 0xB0, 0xFF},
{0xC2, 0xC9, 0xCE, 0xFF},
{0x87, 0x91, 0x9D, 0xFF},
{0x8B, 0x94, 0xA0, 0xFF},
{0x95, 0x9F, 0xAA, 0xFF},
{0x9B, 0xA3, 0xAD, 0xFF},
{0xA4, 0xAB, 0xB3, 0xFF},
{0xB9, 0xBF, 0xC5, 0xFF},
{0xBE, 0xC3, 0xC8, 0xFF},
{0xD7, 0xD8, 0xD9, 0xFF},
{0xDD, 0xE0, 0xE0, 0xFF},
{0xE3, 0xE5, 0xE4, 0xFF},
{0xEC, 0xF1, 0xEE, 0xFF},
{0xEB, 0xEB, 0xE8, 0xFF},
{0xEE, 0xEE, 0xEC, 0xFF},
{0xF6, 0xF6, 0xF5, 0xFF},
{0xFF, 0xFF, 0xFE, 0xFF},
{0xAE, 0xCE, 0xD4, 0xFF},
{0xB3, 0xD1, 0xD6, 0xFF},
{0xBC, 0xD4, 0xD5, 0xFF},
{0xBB, 0xD6, 0xDB, 0xFF},
{0xC0, 0xDB, 0xE0, 0xFF},
{0xC3, 0xDC, 0xE1, 0xFF},
{0xC6, 0xDE, 0xE2, 0xFF},
{0xC8, 0xE0, 0xE4, 0xFF},
{0xCB, 0xE1, 0xE5, 0xFF},
{0xCB, 0xE0, 0xE3, 0xFF},
{0xCE, 0xE3, 0xE6, 0xFF},
{0xD3, 0xE6, 0xEA, 0xFF},
{0xD1, 0xE5, 0xE9, 0xFF},
{0xD5, 0xE8, 0xEB, 0xFF},
{0xE5, 0xEE, 0xED, 0xFF},
{0xE2, 0xEB, 0xEB, 0xFF},
{0xC9, 0xD6, 0xC9, 0xFF},
{0xD5, 0xE3, 0xD7, 0xFF},
{0xD9, 0xE7, 0xCE, 0xFF},
{0xDA, 0xE8, 0xCF, 0xFF},
{0xDC, 0xE9, 0xDB, 0xFF},
{0xE2, 0xED, 0xD8, 0xFF},
{0xE6, 0xEF, 0xDD, 0xFF},
{0xE5, 0xEE, 0xDB, 0xFF},
{0xE3, 0xEC, 0xD9, 0xFF},
{0xE8, 0xF0, 0xDD, 0xFF},
{0xE9, 0xF0, 0xDF, 0xFF},
{0xED, 0xF2, 0xE4, 0xFF},
{0xF3, 0xF6, 0xED, 0xFF},
{0xEE, 0xE9, 0xCE, 0xFF},
{0xFE, 0xFC, 0xDA, 0xFF},
{0xE6, 0xE5, 0xE1, 0xFF},
{0xEF, 0xEE, 0xEA, 0xFF},
{0xF1, 0xEE, 0xE3, 0xFF},
{0xF0, 0xEE, 0xE7, 0xFF},
{0xF6, 0xF4, 0xEB, 0xFF},
{0xE3, 0xE1, 0xDA, 0xFF},
{0xE4, 0xE3, 0xE0, 0xFF},
{0xF2, 0xF0, 0xEA, 0xFF},
{0xE8, 0xDB, 0xB8, 0xFF},
{0xF4, 0xEB, 0xD4, 0xFF},
{0xF9, 0xF6, 0xEE, 0xFF},
{0xFD, 0xFB, 0xF6, 0xFF},
{0xF8, 0xF4, 0xEB, 0xFF},
{0xF9, 0xF6, 0xEF, 0xFF},
{0xFA, 0xDD, 0xA1, 0xFF},
{0xFA, 0xDC, 0x9E, 0xFF},
{0xFC, 0xE1, 0xA4, 0xFF},
{0xFA, 0xE7, 0xC0, 0xFF},
{0xFE, 0xE8, 0xA9, 0xFF},
{0xFF, 0xE8, 0xB7, 0xFF},
{0xE3, 0xE2, 0xE0, 0xFF},
{0xF4, 0xF2, 0xEE, 0xFF},
{0xEF, 0xEA, 0xE0, 0xFF},
{0xE5, 0xDB, 0xC7, 0xFF},
{0xCD, 0xCC, 0xCA, 0xFF},
{0xF9, 0xE0, 0xAF, 0xFF},
{0xFB, 0xED, 0xD2, 0xFF},
{0xFB, 0xEE, 0xD5, 0xFF},
{0xF8, 0xDD, 0xAA, 0xFF},
{0xF9, 0xE6, 0xC3, 0xFF},
{0xFA, 0xE4, 0xBC, 0xFF},
{0xFD, 0xEF, 0xD6, 0xFF},
{0xED, 0xE7, 0xDD, 0xFF},
{0xF2, 0xE9, 0xDA, 0xFF},
{0xFB, 0xF8, 0xF3, 0xFF},
{0xFD, 0xEC, 0xD0, 0xFF},
{0xFD, 0xEB, 0xCE, 0xFF},
{0xE7, 0xE0, 0xD5, 0xFF},
{0xF5, 0xF3, 0xF0, 0xFF},
{0xFC, 0xF2, 0xE3, 0xFF},
{0xF4, 0xEC, 0xE0, 0xFF},
{0xEA, 0xE2, 0xD6, 0xFF},
{0xEE, 0xE1, 0xCE, 0xFF},
{0xF1, 0xE6, 0xD6, 0xFF},
{0xF6, 0xEF, 0xE5, 0xFF},
{0xEB, 0xDD, 0xC9, 0xFF},
{0xEB, 0xE4, 0xDA, 0xFF},
{0xE7, 0xDB, 0xCA, 0xFF},
{0xE7, 0xDA, 0xC8, 0xFF},
{0xE4, 0xDC, 0xD1, 0xFF},
{0xF5, 0xED, 0xE3, 0xFF},
{0xDF, 0xDE, 0xDD, 0xFF},
{0xE1, 0xE0, 0xDF, 0xFF},
{0xEA, 0xE4, 0xDF, 0xFF},
{0xEC, 0xE2, 0xDD, 0xFF},
{0xEE, 0xE5, 0xE3, 0xFF},
{0xF2, 0xE6, 0xE5, 0xFF},
{0xE9, 0xE9, 0xE9, 0xFF},
{0xF1, 0xF2, 0xEE, 0xFF},
{0xF5, 0xF5, 0xF2, 0xFF},
{0xF8, 0xF2, 0xEE, 0xFF},
{0xF7, 0xF1, 0xE7, 0xFF},
{0xEE, 0xF2, 0xF1, 0xFF},
{0xF2, 0xF5, 0xF8, 0xFF},
{0xFE, 0xF8, 0xED, 0xFF},
{0xFE, 0xF9, 0xEF, 0xFF},
{0xF6, 0xF0, 0xE5, 0xFF},
{0xFC, 0xFA, 0xF6, 0xFF},
}
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment