diff --git a/README.md b/README.md index d3892f4..dec5034 100644 --- a/README.md +++ b/README.md @@ -188,7 +188,7 @@ $ create-static-map --width 600 --height 400 -o map3.png -m "red|52.514536,13.35 ## Acknowledgements Besides the go standard library, go-staticmaps uses -- [MapQuest](https://developer.mapquest.com/), [Thunderforest](http://www.thunderforest.com/), and [Stamen](http://maps.stamen.com/) as map tile providers +- [MapQuest](https://developer.mapquest.com/), [Thunderforest](http://www.thunderforest.com/), [OpenTopoMap](http://www.opentopomap.org/), and [Stamen](http://maps.stamen.com/) as map tile providers - [Go Graphics](https://github.com/fogleman/gg) for 2D drawing - [S2 geometry library](https://github.com/golang/geo) for spherical geometry calculations - [appdirs](https://github.com/Wessie/appdirs) for platform specific system directories diff --git a/tile_provider.go b/tile_provider.go index dcaec91..15a957b 100644 --- a/tile_provider.go +++ b/tile_provider.go @@ -67,6 +67,17 @@ func NewTileProviderStamenToner() *TileProvider { return t } +// NewTileProviderOpenTopoMap creates a TileProvider struct for opentopomaps's tile service +func NewTileProviderOpenTopoMap() *TileProvider { + t := new(TileProvider) + t.Name = "opentopomap" + t.Attribution = "Maps (c) OpenTopoMap [CC-BY-SA]; Data (c) OSM and contributors [ODbL]; Data (c) SRTM" + t.TileSize = 256 + t.URLPattern = "http://%[1].tile.opentopomap.org/%[2]d/%[3]d/%[4]d.png" + t.Shards = []string{"a", "b", "c"} + return t +} + // GetTileProviders returns a map of all available TileProviders func GetTileProviders() map[string]*TileProvider { m := make(map[string]*TileProvider) @@ -76,7 +87,8 @@ func GetTileProviders() map[string]*TileProvider { NewTileProviderThunderforestLandscape(), NewTileProviderThunderforestOutdoors(), NewTileProviderThunderforestTransport(), - NewTileProviderStamenToner()} + NewTileProviderStamenToner(), + NewTileProviderOpenTopoMap()} for _, tp := range list { m[tp.Name] = tp