Tyler.jl
A package for downloading map tiles on demand from different data source providers.
This package is currently in the initial phase of development. It needs support. Sponsorships are welcome!
Installation
In the Julia REPL type:
] add Tyler
The ]
character starts the Julia package manager. Hit backspace key to return to Julia prompt.
Or, explicitly use Pkg
using Pkg
Pkg.add(["Tyler.jl"])
Demo: London
using Tyler, GLMakie
m = Tyler.Map(Rect2f(-0.0921, 51.5, 0.04, 0.025))
wait(m)
INFO
A Rect2f
definition takes as input the origin, first two entries, and the width and hight, last two numbers.
Tile provider
We can use a different tile provider as well as any style theme
from Makie as follows:
using GLMakie, Tyler
using Tyler.TileProviders
provider = TileProviders.OpenTopoMap()
london = Rect2f(-0.0921, 51.5, 0.04, 0.025)
with_theme(theme_dark()) do
m = Tyler.Map(london; provider)
hidedecorations!(m.axis)
hidespines!(m.axis)
wait(m)
end
Providers list
More providers are available. See the following list:
providers = TileProviders.list_providers()
Dict{Function, Vector{Symbol}} with 40 entries:
TomTom => [:Basic, :Hybrid, :Labels]
OneMapSG => [:Default, :Night, :Original, :Grey, :LandLot]
USGS => [:USTopo, :USImagery, :USImageryTopo]
BaseMapDE => [:Color, :Grey]
NLS => [:osgb63k1885, :osgb1888, :osgb10k1888, :osgb1919, :…
OpenRailwayMap => []
Thunderforest => [:OpenCycleMap, :Transport, :TransportDark, :SpinalM…
Jawg => [:Streets, :Terrain, :Lagoon, :Sunny, :Dark, :Light,…
OpenSeaMap => []
nlmaps => [:standaard, :pastel, :grijs, :water, :luchtfoto]
WaymarkedTrails => [:hiking, :cycling, :mtb, :slopes, :riding, :skating]
OPNVKarte => []
OpenTopoMap => []
HikeBike => [:HikeBike, :HillShading]
OpenAIP => []
OpenSnowMap => [:pistes]
SwissFederalGeoportal => [:NationalMapColor, :NationalMapGrey, :SWISSIMAGE]
CartoDB => [:Positron, :PositronNoLabels, :PositronOnlyLabels, …
MapBox => []
⋮ => ⋮
INFO
For some providers additional configuration steps are necessary, look at the TileProviders.jl
documentation for more information.
Figure size & aspect ratio
Although, the figure size can be controlled by passing additional arguments to Map
, it's better to define a Figure first and then continue with a normal Makie's figure creation workflow, namely
using GLMakie, Tyler
using Tyler.TileProviders
provider = TileProviders.OpenTopoMap()
london = Rect2f(-0.0921, 51.5, 0.04, 0.025)
with_theme(theme_dark()) do
fig = Figure(; size =(1200,600))
ax = Axis(fig[1,1]) # aspect = DataAspect()
m = Tyler.Map(london; provider, figure=fig, axis=ax)
hidedecorations!(ax)
hidespines!(ax)
wait(m)
fig
end
Next, we could add any other plot type on top of the ax
axis defined above.