diff --git a/previews/PR114/404.html b/previews/PR114/404.html index e070cee5..2ca134a9 100644 --- a/previews/PR114/404.html +++ b/previews/PR114/404.html @@ -17,7 +17,7 @@
- + \ No newline at end of file diff --git a/previews/PR114/api.html b/previews/PR114/api.html index 1d011512..032f6e87 100644 --- a/previews/PR114/api.html +++ b/previews/PR114/api.html @@ -13,21 +13,21 @@ - + -
Skip to content

API

Tyler.ElevationProvider Type
julia
ElevationProvider(color_provider::Union{Nothing, AbstractProvider}=TileProviders.Esri(:WorldImagery); cache_size_gb=5)

Provider rendering elevation data from arcgis. This provider is special, since it uses a second provider for color information, which also means you can provide a cache size, since color tile caching has to be managed by the provider. When set to nothing, no color provider is used and the elevation data is used to color the surface with a colormap directly. Use Map(..., plot_config=Tyler.PlotConfig(colormap=colormap)) to set the colormap and other surface plot attributes.

source

Tyler.GeoTilePointCloudProvider Type
julia
GeoTilePointCloudProvider(subset="AHN1_T")

The PointCloud provider downloads from geotiles.citg.tudelft, which spans most of the netherlands. You can specify the subset to download from, which can be one of the following:

  • AHN1_T (default): The most corse dataset, but also the fastest to download (1-5mb compressed per tile)

  • AHN2_T: More detailed dataset (~70mb per tile)

  • AHN3_T: ~250mb per tile

  • AHN4_T: 300-500mb showing much detail, takes a long time to load each tile (over 1 minute per tile). Use max_plots=5 to limit the number of tiles loaded at once.

source

Tyler.Interpolator Type
julia
Interpolator <: AbstractProvider
+    
Skip to content

API

Tyler.ElevationProvider Type
julia
ElevationProvider(color_provider::Union{Nothing, AbstractProvider}=TileProviders.Esri(:WorldImagery); cache_size_gb=5)

Provider rendering elevation data from arcgis. This provider is special, since it uses a second provider for color information, which also means you can provide a cache size, since color tile caching has to be managed by the provider. When set to nothing, no color provider is used and the elevation data is used to color the surface with a colormap directly. Use Map(..., plot_config=Tyler.PlotConfig(colormap=colormap)) to set the colormap and other surface plot attributes.

source

Tyler.GeoTilePointCloudProvider Type
julia
GeoTilePointCloudProvider(subset="AHN1_T")

The PointCloud provider downloads from geotiles.citg.tudelft, which spans most of the netherlands. You can specify the subset to download from, which can be one of the following:

  • AHN1_T (default): The most corse dataset, but also the fastest to download (1-5mb compressed per tile)

  • AHN2_T: More detailed dataset (~70mb per tile)

  • AHN3_T: ~250mb per tile

  • AHN4_T: 300-500mb showing much detail, takes a long time to load each tile (over 1 minute per tile). Use max_plots=5 to limit the number of tiles loaded at once.

source

Tyler.Interpolator Type
julia
Interpolator <: AbstractProvider
 
-Interpolator(f; colormap=:thermal, options=Dict(:minzoom=1, :maxzoom=19))

Provides tiles by interpolating them on the fly.

  • f: an Interpolations.jl interpolator or similar.

  • colormap: A Symbol or Vector{RGBA{Float32}}. Default is :thermal.

source

Tyler.Map Type
julia
Map(extent, [extent_crs=wgs84]; kw...)
-Map(map::Map; ...) # layering another provider on top of an existing map

Tylers main object, it plots tiles onto a Makie.jl Axis, downloading and plotting more tiles as you zoom and pan. When layering providers over each other with Map(map::Map; ...), you can use toggle_visibility!(map) to hide/unhide them.

Arguments

  • extent: the initial extent of the map, as a GeometryBasics.Rect or an Extents.Extent in the projection of extent_crs.

  • extent_crs: Any GeoFormatTypes compatible crs, the default is wsg84.

Keywords

  • size: The figure size.

  • figure: an existing Makie.Figure object.

  • crs: The providers coordinate reference system.

  • provider: a TileProviders.jl Provider.

  • max_parallel_downloads: limits the attempted simultaneous downloads, with a default of 16.

  • cache_size_gb: limits the cache for storing tiles, with a default of 5.

  • fetching_scheme=Halo2DTiling(): The tile fetching scheme. Can be SimpleTiling(), Halo2DTiling(), or Tiling3D().

  • scale: a tile scaling factor. Low number decrease the downloads but reduce the resolution. The default is 0.5.

  • plot_config: A PlotConfig object to change the way tiles are plotted.

  • max_zoom: The maximum zoom level to display, with a default of TileProviders.max_zoom(provider).

  • max_plots=400: The maximum number of plots to keep displayed at the same time.

source

Tyler.Map Method
julia
Map(m::Map; kw...)

Layering constructor to show another provider on top of an existing map.

Example

julia
lat, lon = (52.395593, 4.884704)
+Interpolator(f; colormap=:thermal, options=Dict(:minzoom=1, :maxzoom=19))

Provides tiles by interpolating them on the fly.

  • f: an Interpolations.jl interpolator or similar.

  • colormap: A Symbol or Vector{RGBA{Float32}}. Default is :thermal.

source

Tyler.Map Type
julia
Map(extent, [extent_crs=wgs84]; kw...)
+Map(map::Map; ...) # layering another provider on top of an existing map

Tylers main object, it plots tiles onto a Makie.jl Axis, downloading and plotting more tiles as you zoom and pan. When layering providers over each other with Map(map::Map; ...), you can use toggle_visibility!(map) to hide/unhide them.

Arguments

  • extent: the initial extent of the map, as a GeometryBasics.Rect or an Extents.Extent in the projection of extent_crs.

  • extent_crs: Any GeoFormatTypes compatible crs, the default is wsg84.

Keywords

  • size: The figure size.

  • figure: an existing Makie.Figure object.

  • crs: The providers coordinate reference system.

  • provider: a TileProviders.jl Provider.

  • max_parallel_downloads: limits the attempted simultaneous downloads, with a default of 16.

  • cache_size_gb: limits the cache for storing tiles, with a default of 5.

  • fetching_scheme=Halo2DTiling(): The tile fetching scheme. Can be SimpleTiling(), Halo2DTiling(), or Tiling3D().

  • scale: a tile scaling factor. Low number decrease the downloads but reduce the resolution. The default is 0.5.

  • plot_config: A PlotConfig object to change the way tiles are plotted.

  • max_zoom: The maximum zoom level to display, with a default of TileProviders.max_zoom(provider).

  • max_plots=400: The maximum number of plots to keep displayed at the same time.

source

Tyler.Map Method
julia
Map(m::Map; kw...)

Layering constructor to show another provider on top of an existing map.

Example

julia
lat, lon = (52.395593, 4.884704)
 delta = 0.01
 ext = Rect2f(lon - delta / 2, lat - delta / 2, delta, delta)
 m1 = Tyler.Map(ext)
 m2 = Tyler.Map(m1; provider=TileProviders.Esri(:WorldImagery), plot_config=Tyler.PlotConfig(alpha=0.5, postprocess=(p-> translate!(p, 0, 0, 1f0))))
-m1

source

Tyler.PlotConfig Method
julia
PlotConfig(; preprocess=identity, postprocess=identity, plot_attributes...)

Creates a PlotConfig object to influence how tiles are being plotted.

  • preprocess(tile_data): Function to preprocess the data before plotting. For a tile provider returning image data, preprocess will be called on the image data before plotting.

  • postprocess(tile_data): Function to mutate the plot object after creation. Can be used like this: (plot)-> translate!(plot, 0, 0, 1).

  • plot_attributes: Additional attributes to pass to the plot

Example

julia
using Tyler, GLMakie
+m1

source

Tyler.PlotConfig Method
julia
PlotConfig(; preprocess=identity, postprocess=identity, plot_attributes...)

Creates a PlotConfig object to influence how tiles are being plotted.

  • preprocess(tile_data): Function to preprocess the data before plotting. For a tile provider returning image data, preprocess will be called on the image data before plotting.

  • postprocess(tile_data): Function to mutate the plot object after creation. Can be used like this: (plot)-> translate!(plot, 0, 0, 1).

  • plot_attributes: Additional attributes to pass to the plot

Example

julia
using Tyler, GLMakie
 
 config = PlotConfig(
     preprocess = (data) -> data .+ 1,
@@ -37,8 +37,8 @@
 lat, lon = (52.395593, 4.884704)
 delta = 0.1
 extent = Extent(; X=(lon - delta / 2, lon + delta / 2), Y=(lat - delta / 2, lat + delta / 2))
-Tyler.Map(extent; provider=Tyler.TileProviders.Esri(:WorldImagery), plot_config=config)

source

- +Tyler.Map(extent; provider=Tyler.TileProviders.Esri(:WorldImagery), plot_config=config)

source

+ \ No newline at end of file diff --git a/previews/PR114/assets/aybcqxf.Gq36V23f.png b/previews/PR114/assets/adlznpa.Gq36V23f.png similarity index 100% rename from previews/PR114/assets/aybcqxf.Gq36V23f.png rename to previews/PR114/assets/adlznpa.Gq36V23f.png diff --git a/previews/PR114/assets/berykvn.DKXGq9hF.png b/previews/PR114/assets/amrqxik.DKXGq9hF.png similarity index 100% rename from previews/PR114/assets/berykvn.DKXGq9hF.png rename to previews/PR114/assets/amrqxik.DKXGq9hF.png diff --git a/previews/PR114/assets/api.md.DJB945Po.js b/previews/PR114/assets/api.md.4zlzHm0D.js similarity index 94% rename from previews/PR114/assets/api.md.DJB945Po.js rename to previews/PR114/assets/api.md.4zlzHm0D.js index 8de45469..d7a367a5 100644 --- a/previews/PR114/assets/api.md.DJB945Po.js +++ b/previews/PR114/assets/api.md.4zlzHm0D.js @@ -1,12 +1,12 @@ -import{_ as n,c as p,j as i,a,G as e,a5 as l,B as h,o as k}from"./chunks/framework.CMCfLljJ.js";const T=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),r={name:"api.md"},o={class:"jldocstring custom-block",open:""},d={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""};function F(u,s,C,m,b,f){const t=h("Badge");return k(),p("div",null,[s[18]||(s[18]=i("h2",{id:"api",tabindex:"-1"},[a("API "),i("a",{class:"header-anchor",href:"#api","aria-label":'Permalink to "API"'},"​")],-1)),i("details",o,[i("summary",null,[s[0]||(s[0]=i("a",{id:"Tyler.ElevationProvider",href:"#Tyler.ElevationProvider"},[i("span",{class:"jlbinding"},"Tyler.ElevationProvider")],-1)),s[1]||(s[1]=a()),e(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[2]||(s[2]=l('
julia
ElevationProvider(color_provider::Union{Nothing, AbstractProvider}=TileProviders.Esri(:WorldImagery); cache_size_gb=5)

Provider rendering elevation data from arcgis. This provider is special, since it uses a second provider for color information, which also means you can provide a cache size, since color tile caching has to be managed by the provider. When set to nothing, no color provider is used and the elevation data is used to color the surface with a colormap directly. Use Map(..., plot_config=Tyler.PlotConfig(colormap=colormap)) to set the colormap and other surface plot attributes.

source

',3))]),i("details",d,[i("summary",null,[s[3]||(s[3]=i("a",{id:"Tyler.GeoTilePointCloudProvider",href:"#Tyler.GeoTilePointCloudProvider"},[i("span",{class:"jlbinding"},"Tyler.GeoTilePointCloudProvider")],-1)),s[4]||(s[4]=a()),e(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[5]||(s[5]=l('
julia
GeoTilePointCloudProvider(subset="AHN1_T")

The PointCloud provider downloads from geotiles.citg.tudelft, which spans most of the netherlands. You can specify the subset to download from, which can be one of the following:

source

',4))]),i("details",E,[i("summary",null,[s[6]||(s[6]=i("a",{id:"Tyler.Interpolator",href:"#Tyler.Interpolator"},[i("span",{class:"jlbinding"},"Tyler.Interpolator")],-1)),s[7]||(s[7]=a()),e(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[8]||(s[8]=l(`
julia
Interpolator <: AbstractProvider
+import{_ as n,c as p,j as i,a,G as l,a5 as e,B as h,o as k}from"./chunks/framework.CMCfLljJ.js";const T=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),r={name:"api.md"},o={class:"jldocstring custom-block",open:""},d={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""};function F(u,s,C,m,b,f){const t=h("Badge");return k(),p("div",null,[s[18]||(s[18]=i("h2",{id:"api",tabindex:"-1"},[a("API "),i("a",{class:"header-anchor",href:"#api","aria-label":'Permalink to "API"'},"​")],-1)),i("details",o,[i("summary",null,[s[0]||(s[0]=i("a",{id:"Tyler.ElevationProvider",href:"#Tyler.ElevationProvider"},[i("span",{class:"jlbinding"},"Tyler.ElevationProvider")],-1)),s[1]||(s[1]=a()),l(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[2]||(s[2]=e('
julia
ElevationProvider(color_provider::Union{Nothing, AbstractProvider}=TileProviders.Esri(:WorldImagery); cache_size_gb=5)

Provider rendering elevation data from arcgis. This provider is special, since it uses a second provider for color information, which also means you can provide a cache size, since color tile caching has to be managed by the provider. When set to nothing, no color provider is used and the elevation data is used to color the surface with a colormap directly. Use Map(..., plot_config=Tyler.PlotConfig(colormap=colormap)) to set the colormap and other surface plot attributes.

source

',3))]),i("details",d,[i("summary",null,[s[3]||(s[3]=i("a",{id:"Tyler.GeoTilePointCloudProvider",href:"#Tyler.GeoTilePointCloudProvider"},[i("span",{class:"jlbinding"},"Tyler.GeoTilePointCloudProvider")],-1)),s[4]||(s[4]=a()),l(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[5]||(s[5]=e('
julia
GeoTilePointCloudProvider(subset="AHN1_T")

The PointCloud provider downloads from geotiles.citg.tudelft, which spans most of the netherlands. You can specify the subset to download from, which can be one of the following:

  • AHN1_T (default): The most corse dataset, but also the fastest to download (1-5mb compressed per tile)

  • AHN2_T: More detailed dataset (~70mb per tile)

  • AHN3_T: ~250mb per tile

  • AHN4_T: 300-500mb showing much detail, takes a long time to load each tile (over 1 minute per tile). Use max_plots=5 to limit the number of tiles loaded at once.

source

',4))]),i("details",E,[i("summary",null,[s[6]||(s[6]=i("a",{id:"Tyler.Interpolator",href:"#Tyler.Interpolator"},[i("span",{class:"jlbinding"},"Tyler.Interpolator")],-1)),s[7]||(s[7]=a()),l(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[8]||(s[8]=e(`
julia
Interpolator <: AbstractProvider
 
-Interpolator(f; colormap=:thermal, options=Dict(:minzoom=1, :maxzoom=19))

Provides tiles by interpolating them on the fly.

  • f: an Interpolations.jl interpolator or similar.

  • colormap: A Symbol or Vector{RGBA{Float32}}. Default is :thermal.

source

`,4))]),i("details",g,[i("summary",null,[s[9]||(s[9]=i("a",{id:"Tyler.Map",href:"#Tyler.Map"},[i("span",{class:"jlbinding"},"Tyler.Map")],-1)),s[10]||(s[10]=a()),e(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[11]||(s[11]=l(`
julia
Map(extent, [extent_crs=wgs84]; kw...)
-Map(map::Map; ...) # layering another provider on top of an existing map

Tylers main object, it plots tiles onto a Makie.jl Axis, downloading and plotting more tiles as you zoom and pan. When layering providers over each other with Map(map::Map; ...), you can use toggle_visibility!(map) to hide/unhide them.

Arguments

  • extent: the initial extent of the map, as a GeometryBasics.Rect or an Extents.Extent in the projection of extent_crs.

  • extent_crs: Any GeoFormatTypes compatible crs, the default is wsg84.

Keywords

  • size: The figure size.

  • figure: an existing Makie.Figure object.

  • crs: The providers coordinate reference system.

  • provider: a TileProviders.jl Provider.

  • max_parallel_downloads: limits the attempted simultaneous downloads, with a default of 16.

  • cache_size_gb: limits the cache for storing tiles, with a default of 5.

  • fetching_scheme=Halo2DTiling(): The tile fetching scheme. Can be SimpleTiling(), Halo2DTiling(), or Tiling3D().

  • scale: a tile scaling factor. Low number decrease the downloads but reduce the resolution. The default is 0.5.

  • plot_config: A PlotConfig object to change the way tiles are plotted.

  • max_zoom: The maximum zoom level to display, with a default of TileProviders.max_zoom(provider).

  • max_plots=400: The maximum number of plots to keep displayed at the same time.

source

`,7))]),i("details",y,[i("summary",null,[s[12]||(s[12]=i("a",{id:"Tyler.Map-Tuple{Tyler.Map}",href:"#Tyler.Map-Tuple{Tyler.Map}"},[i("span",{class:"jlbinding"},"Tyler.Map")],-1)),s[13]||(s[13]=a()),e(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[14]||(s[14]=l(`
julia
Map(m::Map; kw...)

Layering constructor to show another provider on top of an existing map.

Example

julia
lat, lon = (52.395593, 4.884704)
+Interpolator(f; colormap=:thermal, options=Dict(:minzoom=1, :maxzoom=19))

Provides tiles by interpolating them on the fly.

  • f: an Interpolations.jl interpolator or similar.

  • colormap: A Symbol or Vector{RGBA{Float32}}. Default is :thermal.

source

`,4))]),i("details",g,[i("summary",null,[s[9]||(s[9]=i("a",{id:"Tyler.Map",href:"#Tyler.Map"},[i("span",{class:"jlbinding"},"Tyler.Map")],-1)),s[10]||(s[10]=a()),l(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[11]||(s[11]=e(`
julia
Map(extent, [extent_crs=wgs84]; kw...)
+Map(map::Map; ...) # layering another provider on top of an existing map

Tylers main object, it plots tiles onto a Makie.jl Axis, downloading and plotting more tiles as you zoom and pan. When layering providers over each other with Map(map::Map; ...), you can use toggle_visibility!(map) to hide/unhide them.

Arguments

  • extent: the initial extent of the map, as a GeometryBasics.Rect or an Extents.Extent in the projection of extent_crs.

  • extent_crs: Any GeoFormatTypes compatible crs, the default is wsg84.

Keywords

  • size: The figure size.

  • figure: an existing Makie.Figure object.

  • crs: The providers coordinate reference system.

  • provider: a TileProviders.jl Provider.

  • max_parallel_downloads: limits the attempted simultaneous downloads, with a default of 16.

  • cache_size_gb: limits the cache for storing tiles, with a default of 5.

  • fetching_scheme=Halo2DTiling(): The tile fetching scheme. Can be SimpleTiling(), Halo2DTiling(), or Tiling3D().

  • scale: a tile scaling factor. Low number decrease the downloads but reduce the resolution. The default is 0.5.

  • plot_config: A PlotConfig object to change the way tiles are plotted.

  • max_zoom: The maximum zoom level to display, with a default of TileProviders.max_zoom(provider).

  • max_plots=400: The maximum number of plots to keep displayed at the same time.

source

`,7))]),i("details",y,[i("summary",null,[s[12]||(s[12]=i("a",{id:"Tyler.Map-Tuple{Tyler.Map}",href:"#Tyler.Map-Tuple{Tyler.Map}"},[i("span",{class:"jlbinding"},"Tyler.Map")],-1)),s[13]||(s[13]=a()),l(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[14]||(s[14]=e(`
julia
Map(m::Map; kw...)

Layering constructor to show another provider on top of an existing map.

Example

julia
lat, lon = (52.395593, 4.884704)
 delta = 0.01
 ext = Rect2f(lon - delta / 2, lat - delta / 2, delta, delta)
 m1 = Tyler.Map(ext)
 m2 = Tyler.Map(m1; provider=TileProviders.Esri(:WorldImagery), plot_config=Tyler.PlotConfig(alpha=0.5, postprocess=(p-> translate!(p, 0, 0, 1f0))))
-m1

source

`,5))]),i("details",c,[i("summary",null,[s[15]||(s[15]=i("a",{id:"Tyler.PlotConfig-Tuple{}",href:"#Tyler.PlotConfig-Tuple{}"},[i("span",{class:"jlbinding"},"Tyler.PlotConfig")],-1)),s[16]||(s[16]=a()),e(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[17]||(s[17]=l(`
julia
PlotConfig(; preprocess=identity, postprocess=identity, plot_attributes...)

Creates a PlotConfig object to influence how tiles are being plotted.

  • preprocess(tile_data): Function to preprocess the data before plotting. For a tile provider returning image data, preprocess will be called on the image data before plotting.

  • postprocess(tile_data): Function to mutate the plot object after creation. Can be used like this: (plot)-> translate!(plot, 0, 0, 1).

  • plot_attributes: Additional attributes to pass to the plot

Example

julia
using Tyler, GLMakie
+m1

source

`,5))]),i("details",c,[i("summary",null,[s[15]||(s[15]=i("a",{id:"Tyler.PlotConfig-Tuple{}",href:"#Tyler.PlotConfig-Tuple{}"},[i("span",{class:"jlbinding"},"Tyler.PlotConfig")],-1)),s[16]||(s[16]=a()),l(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[17]||(s[17]=e(`
julia
PlotConfig(; preprocess=identity, postprocess=identity, plot_attributes...)

Creates a PlotConfig object to influence how tiles are being plotted.

  • preprocess(tile_data): Function to preprocess the data before plotting. For a tile provider returning image data, preprocess will be called on the image data before plotting.

  • postprocess(tile_data): Function to mutate the plot object after creation. Can be used like this: (plot)-> translate!(plot, 0, 0, 1).

  • plot_attributes: Additional attributes to pass to the plot

Example

julia
using Tyler, GLMakie
 
 config = PlotConfig(
     preprocess = (data) -> data .+ 1,
@@ -16,4 +16,4 @@ import{_ as n,c as p,j as i,a,G as e,a5 as l,B as h,o as k}from"./chunks/framewo
 lat, lon = (52.395593, 4.884704)
 delta = 0.1
 extent = Extent(; X=(lon - delta / 2, lon + delta / 2), Y=(lat - delta / 2, lat + delta / 2))
-Tyler.Map(extent; provider=Tyler.TileProviders.Esri(:WorldImagery), plot_config=config)

source

`,6))])])}const A=n(r,[["render",F]]);export{T as __pageData,A as default}; +Tyler.Map(extent; provider=Tyler.TileProviders.Esri(:WorldImagery), plot_config=config)

source

`,6))])])}const A=n(r,[["render",F]]);export{T as __pageData,A as default}; diff --git a/previews/PR114/assets/api.md.DJB945Po.lean.js b/previews/PR114/assets/api.md.4zlzHm0D.lean.js similarity index 94% rename from previews/PR114/assets/api.md.DJB945Po.lean.js rename to previews/PR114/assets/api.md.4zlzHm0D.lean.js index 8de45469..d7a367a5 100644 --- a/previews/PR114/assets/api.md.DJB945Po.lean.js +++ b/previews/PR114/assets/api.md.4zlzHm0D.lean.js @@ -1,12 +1,12 @@ -import{_ as n,c as p,j as i,a,G as e,a5 as l,B as h,o as k}from"./chunks/framework.CMCfLljJ.js";const T=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),r={name:"api.md"},o={class:"jldocstring custom-block",open:""},d={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""};function F(u,s,C,m,b,f){const t=h("Badge");return k(),p("div",null,[s[18]||(s[18]=i("h2",{id:"api",tabindex:"-1"},[a("API "),i("a",{class:"header-anchor",href:"#api","aria-label":'Permalink to "API"'},"​")],-1)),i("details",o,[i("summary",null,[s[0]||(s[0]=i("a",{id:"Tyler.ElevationProvider",href:"#Tyler.ElevationProvider"},[i("span",{class:"jlbinding"},"Tyler.ElevationProvider")],-1)),s[1]||(s[1]=a()),e(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[2]||(s[2]=l('
julia
ElevationProvider(color_provider::Union{Nothing, AbstractProvider}=TileProviders.Esri(:WorldImagery); cache_size_gb=5)

Provider rendering elevation data from arcgis. This provider is special, since it uses a second provider for color information, which also means you can provide a cache size, since color tile caching has to be managed by the provider. When set to nothing, no color provider is used and the elevation data is used to color the surface with a colormap directly. Use Map(..., plot_config=Tyler.PlotConfig(colormap=colormap)) to set the colormap and other surface plot attributes.

source

',3))]),i("details",d,[i("summary",null,[s[3]||(s[3]=i("a",{id:"Tyler.GeoTilePointCloudProvider",href:"#Tyler.GeoTilePointCloudProvider"},[i("span",{class:"jlbinding"},"Tyler.GeoTilePointCloudProvider")],-1)),s[4]||(s[4]=a()),e(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[5]||(s[5]=l('
julia
GeoTilePointCloudProvider(subset="AHN1_T")

The PointCloud provider downloads from geotiles.citg.tudelft, which spans most of the netherlands. You can specify the subset to download from, which can be one of the following:

source

',4))]),i("details",E,[i("summary",null,[s[6]||(s[6]=i("a",{id:"Tyler.Interpolator",href:"#Tyler.Interpolator"},[i("span",{class:"jlbinding"},"Tyler.Interpolator")],-1)),s[7]||(s[7]=a()),e(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[8]||(s[8]=l(`
julia
Interpolator <: AbstractProvider
+import{_ as n,c as p,j as i,a,G as l,a5 as e,B as h,o as k}from"./chunks/framework.CMCfLljJ.js";const T=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),r={name:"api.md"},o={class:"jldocstring custom-block",open:""},d={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""};function F(u,s,C,m,b,f){const t=h("Badge");return k(),p("div",null,[s[18]||(s[18]=i("h2",{id:"api",tabindex:"-1"},[a("API "),i("a",{class:"header-anchor",href:"#api","aria-label":'Permalink to "API"'},"​")],-1)),i("details",o,[i("summary",null,[s[0]||(s[0]=i("a",{id:"Tyler.ElevationProvider",href:"#Tyler.ElevationProvider"},[i("span",{class:"jlbinding"},"Tyler.ElevationProvider")],-1)),s[1]||(s[1]=a()),l(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[2]||(s[2]=e('
julia
ElevationProvider(color_provider::Union{Nothing, AbstractProvider}=TileProviders.Esri(:WorldImagery); cache_size_gb=5)

Provider rendering elevation data from arcgis. This provider is special, since it uses a second provider for color information, which also means you can provide a cache size, since color tile caching has to be managed by the provider. When set to nothing, no color provider is used and the elevation data is used to color the surface with a colormap directly. Use Map(..., plot_config=Tyler.PlotConfig(colormap=colormap)) to set the colormap and other surface plot attributes.

source

',3))]),i("details",d,[i("summary",null,[s[3]||(s[3]=i("a",{id:"Tyler.GeoTilePointCloudProvider",href:"#Tyler.GeoTilePointCloudProvider"},[i("span",{class:"jlbinding"},"Tyler.GeoTilePointCloudProvider")],-1)),s[4]||(s[4]=a()),l(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[5]||(s[5]=e('
julia
GeoTilePointCloudProvider(subset="AHN1_T")

The PointCloud provider downloads from geotiles.citg.tudelft, which spans most of the netherlands. You can specify the subset to download from, which can be one of the following:

  • AHN1_T (default): The most corse dataset, but also the fastest to download (1-5mb compressed per tile)

  • AHN2_T: More detailed dataset (~70mb per tile)

  • AHN3_T: ~250mb per tile

  • AHN4_T: 300-500mb showing much detail, takes a long time to load each tile (over 1 minute per tile). Use max_plots=5 to limit the number of tiles loaded at once.

source

',4))]),i("details",E,[i("summary",null,[s[6]||(s[6]=i("a",{id:"Tyler.Interpolator",href:"#Tyler.Interpolator"},[i("span",{class:"jlbinding"},"Tyler.Interpolator")],-1)),s[7]||(s[7]=a()),l(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[8]||(s[8]=e(`
julia
Interpolator <: AbstractProvider
 
-Interpolator(f; colormap=:thermal, options=Dict(:minzoom=1, :maxzoom=19))

Provides tiles by interpolating them on the fly.

  • f: an Interpolations.jl interpolator or similar.

  • colormap: A Symbol or Vector{RGBA{Float32}}. Default is :thermal.

source

`,4))]),i("details",g,[i("summary",null,[s[9]||(s[9]=i("a",{id:"Tyler.Map",href:"#Tyler.Map"},[i("span",{class:"jlbinding"},"Tyler.Map")],-1)),s[10]||(s[10]=a()),e(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[11]||(s[11]=l(`
julia
Map(extent, [extent_crs=wgs84]; kw...)
-Map(map::Map; ...) # layering another provider on top of an existing map

Tylers main object, it plots tiles onto a Makie.jl Axis, downloading and plotting more tiles as you zoom and pan. When layering providers over each other with Map(map::Map; ...), you can use toggle_visibility!(map) to hide/unhide them.

Arguments

  • extent: the initial extent of the map, as a GeometryBasics.Rect or an Extents.Extent in the projection of extent_crs.

  • extent_crs: Any GeoFormatTypes compatible crs, the default is wsg84.

Keywords

  • size: The figure size.

  • figure: an existing Makie.Figure object.

  • crs: The providers coordinate reference system.

  • provider: a TileProviders.jl Provider.

  • max_parallel_downloads: limits the attempted simultaneous downloads, with a default of 16.

  • cache_size_gb: limits the cache for storing tiles, with a default of 5.

  • fetching_scheme=Halo2DTiling(): The tile fetching scheme. Can be SimpleTiling(), Halo2DTiling(), or Tiling3D().

  • scale: a tile scaling factor. Low number decrease the downloads but reduce the resolution. The default is 0.5.

  • plot_config: A PlotConfig object to change the way tiles are plotted.

  • max_zoom: The maximum zoom level to display, with a default of TileProviders.max_zoom(provider).

  • max_plots=400: The maximum number of plots to keep displayed at the same time.

source

`,7))]),i("details",y,[i("summary",null,[s[12]||(s[12]=i("a",{id:"Tyler.Map-Tuple{Tyler.Map}",href:"#Tyler.Map-Tuple{Tyler.Map}"},[i("span",{class:"jlbinding"},"Tyler.Map")],-1)),s[13]||(s[13]=a()),e(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[14]||(s[14]=l(`
julia
Map(m::Map; kw...)

Layering constructor to show another provider on top of an existing map.

Example

julia
lat, lon = (52.395593, 4.884704)
+Interpolator(f; colormap=:thermal, options=Dict(:minzoom=1, :maxzoom=19))

Provides tiles by interpolating them on the fly.

  • f: an Interpolations.jl interpolator or similar.

  • colormap: A Symbol or Vector{RGBA{Float32}}. Default is :thermal.

source

`,4))]),i("details",g,[i("summary",null,[s[9]||(s[9]=i("a",{id:"Tyler.Map",href:"#Tyler.Map"},[i("span",{class:"jlbinding"},"Tyler.Map")],-1)),s[10]||(s[10]=a()),l(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[11]||(s[11]=e(`
julia
Map(extent, [extent_crs=wgs84]; kw...)
+Map(map::Map; ...) # layering another provider on top of an existing map

Tylers main object, it plots tiles onto a Makie.jl Axis, downloading and plotting more tiles as you zoom and pan. When layering providers over each other with Map(map::Map; ...), you can use toggle_visibility!(map) to hide/unhide them.

Arguments

  • extent: the initial extent of the map, as a GeometryBasics.Rect or an Extents.Extent in the projection of extent_crs.

  • extent_crs: Any GeoFormatTypes compatible crs, the default is wsg84.

Keywords

  • size: The figure size.

  • figure: an existing Makie.Figure object.

  • crs: The providers coordinate reference system.

  • provider: a TileProviders.jl Provider.

  • max_parallel_downloads: limits the attempted simultaneous downloads, with a default of 16.

  • cache_size_gb: limits the cache for storing tiles, with a default of 5.

  • fetching_scheme=Halo2DTiling(): The tile fetching scheme. Can be SimpleTiling(), Halo2DTiling(), or Tiling3D().

  • scale: a tile scaling factor. Low number decrease the downloads but reduce the resolution. The default is 0.5.

  • plot_config: A PlotConfig object to change the way tiles are plotted.

  • max_zoom: The maximum zoom level to display, with a default of TileProviders.max_zoom(provider).

  • max_plots=400: The maximum number of plots to keep displayed at the same time.

source

`,7))]),i("details",y,[i("summary",null,[s[12]||(s[12]=i("a",{id:"Tyler.Map-Tuple{Tyler.Map}",href:"#Tyler.Map-Tuple{Tyler.Map}"},[i("span",{class:"jlbinding"},"Tyler.Map")],-1)),s[13]||(s[13]=a()),l(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[14]||(s[14]=e(`
julia
Map(m::Map; kw...)

Layering constructor to show another provider on top of an existing map.

Example

julia
lat, lon = (52.395593, 4.884704)
 delta = 0.01
 ext = Rect2f(lon - delta / 2, lat - delta / 2, delta, delta)
 m1 = Tyler.Map(ext)
 m2 = Tyler.Map(m1; provider=TileProviders.Esri(:WorldImagery), plot_config=Tyler.PlotConfig(alpha=0.5, postprocess=(p-> translate!(p, 0, 0, 1f0))))
-m1

source

`,5))]),i("details",c,[i("summary",null,[s[15]||(s[15]=i("a",{id:"Tyler.PlotConfig-Tuple{}",href:"#Tyler.PlotConfig-Tuple{}"},[i("span",{class:"jlbinding"},"Tyler.PlotConfig")],-1)),s[16]||(s[16]=a()),e(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[17]||(s[17]=l(`
julia
PlotConfig(; preprocess=identity, postprocess=identity, plot_attributes...)

Creates a PlotConfig object to influence how tiles are being plotted.

  • preprocess(tile_data): Function to preprocess the data before plotting. For a tile provider returning image data, preprocess will be called on the image data before plotting.

  • postprocess(tile_data): Function to mutate the plot object after creation. Can be used like this: (plot)-> translate!(plot, 0, 0, 1).

  • plot_attributes: Additional attributes to pass to the plot

Example

julia
using Tyler, GLMakie
+m1

source

`,5))]),i("details",c,[i("summary",null,[s[15]||(s[15]=i("a",{id:"Tyler.PlotConfig-Tuple{}",href:"#Tyler.PlotConfig-Tuple{}"},[i("span",{class:"jlbinding"},"Tyler.PlotConfig")],-1)),s[16]||(s[16]=a()),l(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[17]||(s[17]=e(`
julia
PlotConfig(; preprocess=identity, postprocess=identity, plot_attributes...)

Creates a PlotConfig object to influence how tiles are being plotted.

  • preprocess(tile_data): Function to preprocess the data before plotting. For a tile provider returning image data, preprocess will be called on the image data before plotting.

  • postprocess(tile_data): Function to mutate the plot object after creation. Can be used like this: (plot)-> translate!(plot, 0, 0, 1).

  • plot_attributes: Additional attributes to pass to the plot

Example

julia
using Tyler, GLMakie
 
 config = PlotConfig(
     preprocess = (data) -> data .+ 1,
@@ -16,4 +16,4 @@ import{_ as n,c as p,j as i,a,G as e,a5 as l,B as h,o as k}from"./chunks/framewo
 lat, lon = (52.395593, 4.884704)
 delta = 0.1
 extent = Extent(; X=(lon - delta / 2, lon + delta / 2), Y=(lat - delta / 2, lat + delta / 2))
-Tyler.Map(extent; provider=Tyler.TileProviders.Esri(:WorldImagery), plot_config=config)

source

`,6))])])}const A=n(r,[["render",F]]);export{T as __pageData,A as default}; +Tyler.Map(extent; provider=Tyler.TileProviders.Esri(:WorldImagery), plot_config=config)

source

`,6))])])}const A=n(r,[["render",F]]);export{T as __pageData,A as default}; diff --git a/previews/PR114/assets/usnnmju.d7P5S1c4.png b/previews/PR114/assets/bdvwqlh.d7P5S1c4.png similarity index 100% rename from previews/PR114/assets/usnnmju.d7P5S1c4.png rename to previews/PR114/assets/bdvwqlh.d7P5S1c4.png diff --git a/previews/PR114/assets/fmsdqqy.BNZYDzi0.png b/previews/PR114/assets/dsxsqpo.BNZYDzi0.png similarity index 100% rename from previews/PR114/assets/fmsdqqy.BNZYDzi0.png rename to previews/PR114/assets/dsxsqpo.BNZYDzi0.png diff --git a/previews/PR114/assets/getting_started.md.4eHH39Il.js b/previews/PR114/assets/getting_started.md.AcgX6wpJ.js similarity index 98% rename from previews/PR114/assets/getting_started.md.4eHH39Il.js rename to previews/PR114/assets/getting_started.md.AcgX6wpJ.js index 823c675c..e4090c37 100644 --- a/previews/PR114/assets/getting_started.md.4eHH39Il.js +++ b/previews/PR114/assets/getting_started.md.AcgX6wpJ.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.CMCfLljJ.js";const l="/Tyler.jl/previews/PR114/assets/ftxeuvw.CKYsriLI.png",e="/Tyler.jl/previews/PR114/assets/hlcgnwe.0gO0QBJx.png",p="/Tyler.jl/previews/PR114/assets/fvjpzyv.BxVNfquj.jpeg",y=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"getting_started.md","filePath":"getting_started.md","lastUpdated":null}'),h={name:"getting_started.md"};function k(r,s,d,o,E,g){return t(),a("div",null,s[0]||(s[0]=[n(`

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:

julia
] add Tyler

The ] character starts the Julia package manager. Hit backspace key to return to Julia prompt.

Or, explicitly use Pkg

julia
using Pkg
+import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.CMCfLljJ.js";const l="/Tyler.jl/previews/PR114/assets/vlooypp.CKYsriLI.png",e="/Tyler.jl/previews/PR114/assets/vnsyynf.RBoAuHmD.png",p="/Tyler.jl/previews/PR114/assets/koqchya.BxVNfquj.jpeg",y=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"getting_started.md","filePath":"getting_started.md","lastUpdated":null}'),h={name:"getting_started.md"};function k(r,s,d,o,E,g){return t(),a("div",null,s[0]||(s[0]=[n(`

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:

julia
] add Tyler

The ] character starts the Julia package manager. Hit backspace key to return to Julia prompt.

Or, explicitly use Pkg

julia
using Pkg
 Pkg.add(["Tyler.jl"])

Demo: London

julia
using Tyler, GLMakie
 m = Tyler.Map(Rect2f(-0.0921, 51.5, 0.04, 0.025))

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:

julia
using GLMakie, Tyler
 using Tyler.TileProviders
diff --git a/previews/PR114/assets/getting_started.md.4eHH39Il.lean.js b/previews/PR114/assets/getting_started.md.AcgX6wpJ.lean.js
similarity index 98%
rename from previews/PR114/assets/getting_started.md.4eHH39Il.lean.js
rename to previews/PR114/assets/getting_started.md.AcgX6wpJ.lean.js
index 823c675c..e4090c37 100644
--- a/previews/PR114/assets/getting_started.md.4eHH39Il.lean.js
+++ b/previews/PR114/assets/getting_started.md.AcgX6wpJ.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.CMCfLljJ.js";const l="/Tyler.jl/previews/PR114/assets/ftxeuvw.CKYsriLI.png",e="/Tyler.jl/previews/PR114/assets/hlcgnwe.0gO0QBJx.png",p="/Tyler.jl/previews/PR114/assets/fvjpzyv.BxVNfquj.jpeg",y=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"getting_started.md","filePath":"getting_started.md","lastUpdated":null}'),h={name:"getting_started.md"};function k(r,s,d,o,E,g){return t(),a("div",null,s[0]||(s[0]=[n(`

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:

julia
] add Tyler

The ] character starts the Julia package manager. Hit backspace key to return to Julia prompt.

Or, explicitly use Pkg

julia
using Pkg
+import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.CMCfLljJ.js";const l="/Tyler.jl/previews/PR114/assets/vlooypp.CKYsriLI.png",e="/Tyler.jl/previews/PR114/assets/vnsyynf.RBoAuHmD.png",p="/Tyler.jl/previews/PR114/assets/koqchya.BxVNfquj.jpeg",y=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"getting_started.md","filePath":"getting_started.md","lastUpdated":null}'),h={name:"getting_started.md"};function k(r,s,d,o,E,g){return t(),a("div",null,s[0]||(s[0]=[n(`

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:

julia
] add Tyler

The ] character starts the Julia package manager. Hit backspace key to return to Julia prompt.

Or, explicitly use Pkg

julia
using Pkg
 Pkg.add(["Tyler.jl"])

Demo: London

julia
using Tyler, GLMakie
 m = Tyler.Map(Rect2f(-0.0921, 51.5, 0.04, 0.025))

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:

julia
using GLMakie, Tyler
 using Tyler.TileProviders
diff --git a/previews/PR114/assets/gslvmvt.BJUw9D1D.png b/previews/PR114/assets/hwisqfg.BJUw9D1D.png
similarity index 100%
rename from previews/PR114/assets/gslvmvt.BJUw9D1D.png
rename to previews/PR114/assets/hwisqfg.BJUw9D1D.png
diff --git a/previews/PR114/assets/iceloss_ex.md.ni6rhUou.js b/previews/PR114/assets/iceloss_ex.md.FW8LKE_j.js
similarity index 99%
rename from previews/PR114/assets/iceloss_ex.md.ni6rhUou.js
rename to previews/PR114/assets/iceloss_ex.md.FW8LKE_j.js
index df75b831..20e14ea7 100644
--- a/previews/PR114/assets/iceloss_ex.md.ni6rhUou.js
+++ b/previews/PR114/assets/iceloss_ex.md.FW8LKE_j.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as h,o as n}from"./chunks/framework.CMCfLljJ.js";const k="/Tyler.jl/previews/PR114/assets/usnnmju.d7P5S1c4.png",l="/Tyler.jl/previews/PR114/assets/fmsdqqy.BNZYDzi0.png",p="/Tyler.jl/previews/PR114/assets/berykvn.DKXGq9hF.png",c=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"iceloss_ex.md","filePath":"iceloss_ex.md","lastUpdated":null}'),t={name:"iceloss_ex.md"};function e(E,s,r,d,g,y){return n(),a("div",null,s[0]||(s[0]=[h(`

Greenland ice loss example: animated & interactive

julia
using Tyler
+import{_ as i,c as a,a5 as h,o as n}from"./chunks/framework.CMCfLljJ.js";const k="/Tyler.jl/previews/PR114/assets/bdvwqlh.d7P5S1c4.png",l="/Tyler.jl/previews/PR114/assets/dsxsqpo.BNZYDzi0.png",p="/Tyler.jl/previews/PR114/assets/amrqxik.DKXGq9hF.png",c=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"iceloss_ex.md","filePath":"iceloss_ex.md","lastUpdated":null}'),t={name:"iceloss_ex.md"};function e(E,s,r,d,g,y){return n(),a("div",null,s[0]||(s[0]=[h(`

Greenland ice loss example: animated & interactive

julia
using Tyler
 using Tyler.TileProviders
 using Tyler.Extents
 using Dates
diff --git a/previews/PR114/assets/iceloss_ex.md.ni6rhUou.lean.js b/previews/PR114/assets/iceloss_ex.md.FW8LKE_j.lean.js
similarity index 99%
rename from previews/PR114/assets/iceloss_ex.md.ni6rhUou.lean.js
rename to previews/PR114/assets/iceloss_ex.md.FW8LKE_j.lean.js
index df75b831..20e14ea7 100644
--- a/previews/PR114/assets/iceloss_ex.md.ni6rhUou.lean.js
+++ b/previews/PR114/assets/iceloss_ex.md.FW8LKE_j.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as h,o as n}from"./chunks/framework.CMCfLljJ.js";const k="/Tyler.jl/previews/PR114/assets/usnnmju.d7P5S1c4.png",l="/Tyler.jl/previews/PR114/assets/fmsdqqy.BNZYDzi0.png",p="/Tyler.jl/previews/PR114/assets/berykvn.DKXGq9hF.png",c=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"iceloss_ex.md","filePath":"iceloss_ex.md","lastUpdated":null}'),t={name:"iceloss_ex.md"};function e(E,s,r,d,g,y){return n(),a("div",null,s[0]||(s[0]=[h(`

Greenland ice loss example: animated & interactive

julia
using Tyler
+import{_ as i,c as a,a5 as h,o as n}from"./chunks/framework.CMCfLljJ.js";const k="/Tyler.jl/previews/PR114/assets/bdvwqlh.d7P5S1c4.png",l="/Tyler.jl/previews/PR114/assets/dsxsqpo.BNZYDzi0.png",p="/Tyler.jl/previews/PR114/assets/amrqxik.DKXGq9hF.png",c=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"iceloss_ex.md","filePath":"iceloss_ex.md","lastUpdated":null}'),t={name:"iceloss_ex.md"};function e(E,s,r,d,g,y){return n(),a("div",null,s[0]||(s[0]=[h(`

Greenland ice loss example: animated & interactive

julia
using Tyler
 using Tyler.TileProviders
 using Tyler.Extents
 using Dates
diff --git a/previews/PR114/assets/interpolation.md.Cr5-7aRD.js b/previews/PR114/assets/interpolation.md.BTRydMt-.js
similarity index 99%
rename from previews/PR114/assets/interpolation.md.Cr5-7aRD.js
rename to previews/PR114/assets/interpolation.md.BTRydMt-.js
index 47938eff..3b05c230 100644
--- a/previews/PR114/assets/interpolation.md.Cr5-7aRD.js
+++ b/previews/PR114/assets/interpolation.md.BTRydMt-.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.CMCfLljJ.js";const k="/Tyler.jl/previews/PR114/assets/gslvmvt.BJUw9D1D.png",y=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"interpolation.md","filePath":"interpolation.md","lastUpdated":null}'),l={name:"interpolation.md"};function t(p,s,e,E,r,d){return h(),a("div",null,s[0]||(s[0]=[n(`

Using Interpolation On The Fly

INFO

Sine waves

julia
using Tyler, GLMakie
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.CMCfLljJ.js";const k="/Tyler.jl/previews/PR114/assets/hwisqfg.BJUw9D1D.png",y=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"interpolation.md","filePath":"interpolation.md","lastUpdated":null}'),l={name:"interpolation.md"};function t(p,s,e,E,r,d){return h(),a("div",null,s[0]||(s[0]=[n(`

Using Interpolation On The Fly

INFO

Sine waves

julia
using Tyler, GLMakie
 using Interpolations: interpolate, Gridded, Linear
 
 f(lon,lat)=cosd(16*lon)+sind(16*lat)
diff --git a/previews/PR114/assets/interpolation.md.Cr5-7aRD.lean.js b/previews/PR114/assets/interpolation.md.BTRydMt-.lean.js
similarity index 99%
rename from previews/PR114/assets/interpolation.md.Cr5-7aRD.lean.js
rename to previews/PR114/assets/interpolation.md.BTRydMt-.lean.js
index 47938eff..3b05c230 100644
--- a/previews/PR114/assets/interpolation.md.Cr5-7aRD.lean.js
+++ b/previews/PR114/assets/interpolation.md.BTRydMt-.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.CMCfLljJ.js";const k="/Tyler.jl/previews/PR114/assets/gslvmvt.BJUw9D1D.png",y=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"interpolation.md","filePath":"interpolation.md","lastUpdated":null}'),l={name:"interpolation.md"};function t(p,s,e,E,r,d){return h(),a("div",null,s[0]||(s[0]=[n(`

Using Interpolation On The Fly

INFO

Sine waves

julia
using Tyler, GLMakie
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.CMCfLljJ.js";const k="/Tyler.jl/previews/PR114/assets/hwisqfg.BJUw9D1D.png",y=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"interpolation.md","filePath":"interpolation.md","lastUpdated":null}'),l={name:"interpolation.md"};function t(p,s,e,E,r,d){return h(),a("div",null,s[0]||(s[0]=[n(`

Using Interpolation On The Fly

INFO

Sine waves

julia
using Tyler, GLMakie
 using Interpolations: interpolate, Gridded, Linear
 
 f(lon,lat)=cosd(16*lon)+sind(16*lat)
diff --git a/previews/PR114/assets/jdoiwny.CssOlB9z.png b/previews/PR114/assets/jnmdrdn.CssOlB9z.png
similarity index 100%
rename from previews/PR114/assets/jdoiwny.CssOlB9z.png
rename to previews/PR114/assets/jnmdrdn.CssOlB9z.png
diff --git a/previews/PR114/assets/jzkshaz.MJxNWkuo.png b/previews/PR114/assets/jzkshaz.MJxNWkuo.png
new file mode 100644
index 00000000..ebc2a829
Binary files /dev/null and b/previews/PR114/assets/jzkshaz.MJxNWkuo.png differ
diff --git a/previews/PR114/assets/fvjpzyv.BxVNfquj.jpeg b/previews/PR114/assets/koqchya.BxVNfquj.jpeg
similarity index 100%
rename from previews/PR114/assets/fvjpzyv.BxVNfquj.jpeg
rename to previews/PR114/assets/koqchya.BxVNfquj.jpeg
diff --git a/previews/PR114/assets/zkwvuab.BUSHWvNr.png b/previews/PR114/assets/lmbpbch.BUSHWvNr.png
similarity index 100%
rename from previews/PR114/assets/zkwvuab.BUSHWvNr.png
rename to previews/PR114/assets/lmbpbch.BUSHWvNr.png
diff --git a/previews/PR114/assets/map-3d.md.B2KlAWR7.js b/previews/PR114/assets/map-3d.md.BIDBVVhS.js
similarity index 99%
rename from previews/PR114/assets/map-3d.md.B2KlAWR7.js
rename to previews/PR114/assets/map-3d.md.BIDBVVhS.js
index 49aa812c..84c82d5a 100644
--- a/previews/PR114/assets/map-3d.md.B2KlAWR7.js
+++ b/previews/PR114/assets/map-3d.md.BIDBVVhS.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as h,o as k}from"./chunks/framework.CMCfLljJ.js";const n="/Tyler.jl/previews/PR114/assets/erhsprr.BWoWexMQ.png",l="/Tyler.jl/previews/PR114/assets/jpiwpeo.Bd1ung6q.png",t="/Tyler.jl/previews/PR114/assets/aybcqxf.Gq36V23f.png",p="/Tyler.jl/previews/PR114/assets/nlppmwd.DTp9PEt0.png",e="/Tyler.jl/previews/PR114/assets/alpine.CXfd9LFs.png",E="/Tyler.jl/previews/PR114/assets/pointclouds.CWR3APBN.png",D=JSON.parse('{"title":"Map3D","description":"","frontmatter":{},"headers":[],"relativePath":"map-3d.md","filePath":"map-3d.md","lastUpdated":null}'),r={name:"map-3d.md"};function d(g,s,y,F,o,C){return k(),a("div",null,s[0]||(s[0]=[h(`

Map3D

Tyler also offers to view tiles in 3D, and offers a simple Elevation and PointCloud provider.

julia
using Tyler, GLMakie
+import{_ as i,c as a,a5 as h,o as k}from"./chunks/framework.CMCfLljJ.js";const n="/Tyler.jl/previews/PR114/assets/snspndh.BWoWexMQ.png",l="/Tyler.jl/previews/PR114/assets/qdxlffa.Bd1ung6q.png",t="/Tyler.jl/previews/PR114/assets/adlznpa.Gq36V23f.png",p="/Tyler.jl/previews/PR114/assets/jzkshaz.MJxNWkuo.png",e="/Tyler.jl/previews/PR114/assets/alpine.CXfd9LFs.png",E="/Tyler.jl/previews/PR114/assets/pointclouds.CWR3APBN.png",D=JSON.parse('{"title":"Map3D","description":"","frontmatter":{},"headers":[],"relativePath":"map-3d.md","filePath":"map-3d.md","lastUpdated":null}'),r={name:"map-3d.md"};function d(g,s,y,F,o,C){return k(),a("div",null,s[0]||(s[0]=[h(`

Map3D

Tyler also offers to view tiles in 3D, and offers a simple Elevation and PointCloud provider.

julia
using Tyler, GLMakie
 using Tyler: ElevationProvider
 
 lat, lon = (47.087441, 13.377214)
diff --git a/previews/PR114/assets/map-3d.md.B2KlAWR7.lean.js b/previews/PR114/assets/map-3d.md.BIDBVVhS.lean.js
similarity index 99%
rename from previews/PR114/assets/map-3d.md.B2KlAWR7.lean.js
rename to previews/PR114/assets/map-3d.md.BIDBVVhS.lean.js
index 49aa812c..84c82d5a 100644
--- a/previews/PR114/assets/map-3d.md.B2KlAWR7.lean.js
+++ b/previews/PR114/assets/map-3d.md.BIDBVVhS.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as h,o as k}from"./chunks/framework.CMCfLljJ.js";const n="/Tyler.jl/previews/PR114/assets/erhsprr.BWoWexMQ.png",l="/Tyler.jl/previews/PR114/assets/jpiwpeo.Bd1ung6q.png",t="/Tyler.jl/previews/PR114/assets/aybcqxf.Gq36V23f.png",p="/Tyler.jl/previews/PR114/assets/nlppmwd.DTp9PEt0.png",e="/Tyler.jl/previews/PR114/assets/alpine.CXfd9LFs.png",E="/Tyler.jl/previews/PR114/assets/pointclouds.CWR3APBN.png",D=JSON.parse('{"title":"Map3D","description":"","frontmatter":{},"headers":[],"relativePath":"map-3d.md","filePath":"map-3d.md","lastUpdated":null}'),r={name:"map-3d.md"};function d(g,s,y,F,o,C){return k(),a("div",null,s[0]||(s[0]=[h(`

Map3D

Tyler also offers to view tiles in 3D, and offers a simple Elevation and PointCloud provider.

julia
using Tyler, GLMakie
+import{_ as i,c as a,a5 as h,o as k}from"./chunks/framework.CMCfLljJ.js";const n="/Tyler.jl/previews/PR114/assets/snspndh.BWoWexMQ.png",l="/Tyler.jl/previews/PR114/assets/qdxlffa.Bd1ung6q.png",t="/Tyler.jl/previews/PR114/assets/adlznpa.Gq36V23f.png",p="/Tyler.jl/previews/PR114/assets/jzkshaz.MJxNWkuo.png",e="/Tyler.jl/previews/PR114/assets/alpine.CXfd9LFs.png",E="/Tyler.jl/previews/PR114/assets/pointclouds.CWR3APBN.png",D=JSON.parse('{"title":"Map3D","description":"","frontmatter":{},"headers":[],"relativePath":"map-3d.md","filePath":"map-3d.md","lastUpdated":null}'),r={name:"map-3d.md"};function d(g,s,y,F,o,C){return k(),a("div",null,s[0]||(s[0]=[h(`

Map3D

Tyler also offers to view tiles in 3D, and offers a simple Elevation and PointCloud provider.

julia
using Tyler, GLMakie
 using Tyler: ElevationProvider
 
 lat, lon = (47.087441, 13.377214)
diff --git a/previews/PR114/assets/nlppmwd.DTp9PEt0.png b/previews/PR114/assets/nlppmwd.DTp9PEt0.png
deleted file mode 100644
index 02aa759e..00000000
Binary files a/previews/PR114/assets/nlppmwd.DTp9PEt0.png and /dev/null differ
diff --git a/previews/PR114/assets/osmmakie.md.NQalcgPj.js b/previews/PR114/assets/osmmakie.md.DGw9-_WE.js
similarity index 99%
rename from previews/PR114/assets/osmmakie.md.NQalcgPj.js
rename to previews/PR114/assets/osmmakie.md.DGw9-_WE.js
index 0dd12f48..f3029520 100644
--- a/previews/PR114/assets/osmmakie.md.NQalcgPj.js
+++ b/previews/PR114/assets/osmmakie.md.DGw9-_WE.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.CMCfLljJ.js";const k="/Tyler.jl/previews/PR114/assets/taiidwd.B4MqFnIf.png",y=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"osmmakie.md","filePath":"osmmakie.md","lastUpdated":null}'),l={name:"osmmakie.md"};function p(t,s,e,E,r,d){return h(),a("div",null,s[0]||(s[0]=[n(`

OpenStreetMap data (OSM)

In this example, we combine OpenStreetMap data, loading some roads and buildings and plotting them on top of a Tyler map.

julia
using Tyler, Tyler.TileProviders
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.CMCfLljJ.js";const k="/Tyler.jl/previews/PR114/assets/sdmfzfu.B4MqFnIf.png",y=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"osmmakie.md","filePath":"osmmakie.md","lastUpdated":null}'),l={name:"osmmakie.md"};function p(t,s,e,E,r,d){return h(),a("div",null,s[0]||(s[0]=[n(`

OpenStreetMap data (OSM)

In this example, we combine OpenStreetMap data, loading some roads and buildings and plotting them on top of a Tyler map.

julia
using Tyler, Tyler.TileProviders
 using GLMakie, OSMMakie, LightOSM
 
 area = (
diff --git a/previews/PR114/assets/osmmakie.md.NQalcgPj.lean.js b/previews/PR114/assets/osmmakie.md.DGw9-_WE.lean.js
similarity index 99%
rename from previews/PR114/assets/osmmakie.md.NQalcgPj.lean.js
rename to previews/PR114/assets/osmmakie.md.DGw9-_WE.lean.js
index 0dd12f48..f3029520 100644
--- a/previews/PR114/assets/osmmakie.md.NQalcgPj.lean.js
+++ b/previews/PR114/assets/osmmakie.md.DGw9-_WE.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.CMCfLljJ.js";const k="/Tyler.jl/previews/PR114/assets/taiidwd.B4MqFnIf.png",y=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"osmmakie.md","filePath":"osmmakie.md","lastUpdated":null}'),l={name:"osmmakie.md"};function p(t,s,e,E,r,d){return h(),a("div",null,s[0]||(s[0]=[n(`

OpenStreetMap data (OSM)

In this example, we combine OpenStreetMap data, loading some roads and buildings and plotting them on top of a Tyler map.

julia
using Tyler, Tyler.TileProviders
+import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.CMCfLljJ.js";const k="/Tyler.jl/previews/PR114/assets/sdmfzfu.B4MqFnIf.png",y=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"osmmakie.md","filePath":"osmmakie.md","lastUpdated":null}'),l={name:"osmmakie.md"};function p(t,s,e,E,r,d){return h(),a("div",null,s[0]||(s[0]=[n(`

OpenStreetMap data (OSM)

In this example, we combine OpenStreetMap data, loading some roads and buildings and plotting them on top of a Tyler map.

julia
using Tyler, Tyler.TileProviders
 using GLMakie, OSMMakie, LightOSM
 
 area = (
diff --git a/previews/PR114/assets/points_poly_text.md.C0_Hy_cB.js b/previews/PR114/assets/points_poly_text.md.DhzT5V8g.js
similarity index 99%
rename from previews/PR114/assets/points_poly_text.md.C0_Hy_cB.js
rename to previews/PR114/assets/points_poly_text.md.DhzT5V8g.js
index eca4ab82..30e9599c 100644
--- a/previews/PR114/assets/points_poly_text.md.C0_Hy_cB.js
+++ b/previews/PR114/assets/points_poly_text.md.DhzT5V8g.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as t,o as n}from"./chunks/framework.CMCfLljJ.js";const h="/Tyler.jl/previews/PR114/assets/zkwvuab.BUSHWvNr.png",p="/Tyler.jl/previews/PR114/assets/jdoiwny.CssOlB9z.png",o=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"points_poly_text.md","filePath":"points_poly_text.md","lastUpdated":null}'),l={name:"points_poly_text.md"};function k(e,s,E,d,r,g){return n(),a("div",null,s[0]||(s[0]=[t(`

Add points, polygons and text to a map

Load packages

julia
using Tyler, GLMakie
+import{_ as i,c as a,a5 as t,o as n}from"./chunks/framework.CMCfLljJ.js";const h="/Tyler.jl/previews/PR114/assets/lmbpbch.BUSHWvNr.png",p="/Tyler.jl/previews/PR114/assets/jnmdrdn.CssOlB9z.png",o=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"points_poly_text.md","filePath":"points_poly_text.md","lastUpdated":null}'),l={name:"points_poly_text.md"};function k(e,s,E,d,r,g){return n(),a("div",null,s[0]||(s[0]=[t(`

Add points, polygons and text to a map

Load packages

julia
using Tyler, GLMakie
 using Tyler.TileProviders
 using Tyler.MapTiles
 using Tyler.Extents

select a map provider

julia
provider = TileProviders.Esri(:WorldImagery)
TileProviders.Provider("https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}", Dict{Symbol, Any}(:url => "https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}", :attribution => "Tiles (C) Esri -- Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community", :variant => "World_Imagery", :name => "Esri.WorldImagery", :html_attribution => "Tiles &copy; Esri &mdash; Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community"))

define a point to plot on the map

julia
# point location to add to map
diff --git a/previews/PR114/assets/points_poly_text.md.C0_Hy_cB.lean.js b/previews/PR114/assets/points_poly_text.md.DhzT5V8g.lean.js
similarity index 99%
rename from previews/PR114/assets/points_poly_text.md.C0_Hy_cB.lean.js
rename to previews/PR114/assets/points_poly_text.md.DhzT5V8g.lean.js
index eca4ab82..30e9599c 100644
--- a/previews/PR114/assets/points_poly_text.md.C0_Hy_cB.lean.js
+++ b/previews/PR114/assets/points_poly_text.md.DhzT5V8g.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as t,o as n}from"./chunks/framework.CMCfLljJ.js";const h="/Tyler.jl/previews/PR114/assets/zkwvuab.BUSHWvNr.png",p="/Tyler.jl/previews/PR114/assets/jdoiwny.CssOlB9z.png",o=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"points_poly_text.md","filePath":"points_poly_text.md","lastUpdated":null}'),l={name:"points_poly_text.md"};function k(e,s,E,d,r,g){return n(),a("div",null,s[0]||(s[0]=[t(`

Add points, polygons and text to a map

Load packages

julia
using Tyler, GLMakie
+import{_ as i,c as a,a5 as t,o as n}from"./chunks/framework.CMCfLljJ.js";const h="/Tyler.jl/previews/PR114/assets/lmbpbch.BUSHWvNr.png",p="/Tyler.jl/previews/PR114/assets/jnmdrdn.CssOlB9z.png",o=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"points_poly_text.md","filePath":"points_poly_text.md","lastUpdated":null}'),l={name:"points_poly_text.md"};function k(e,s,E,d,r,g){return n(),a("div",null,s[0]||(s[0]=[t(`

Add points, polygons and text to a map

Load packages

julia
using Tyler, GLMakie
 using Tyler.TileProviders
 using Tyler.MapTiles
 using Tyler.Extents

select a map provider

julia
provider = TileProviders.Esri(:WorldImagery)
TileProviders.Provider("https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}", Dict{Symbol, Any}(:url => "https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}", :attribution => "Tiles (C) Esri -- Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community", :variant => "World_Imagery", :name => "Esri.WorldImagery", :html_attribution => "Tiles &copy; Esri &mdash; Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community"))

define a point to plot on the map

julia
# point location to add to map
diff --git a/previews/PR114/assets/jpiwpeo.Bd1ung6q.png b/previews/PR114/assets/qdxlffa.Bd1ung6q.png
similarity index 100%
rename from previews/PR114/assets/jpiwpeo.Bd1ung6q.png
rename to previews/PR114/assets/qdxlffa.Bd1ung6q.png
diff --git a/previews/PR114/assets/taiidwd.B4MqFnIf.png b/previews/PR114/assets/sdmfzfu.B4MqFnIf.png
similarity index 100%
rename from previews/PR114/assets/taiidwd.B4MqFnIf.png
rename to previews/PR114/assets/sdmfzfu.B4MqFnIf.png
diff --git a/previews/PR114/assets/erhsprr.BWoWexMQ.png b/previews/PR114/assets/snspndh.BWoWexMQ.png
similarity index 100%
rename from previews/PR114/assets/erhsprr.BWoWexMQ.png
rename to previews/PR114/assets/snspndh.BWoWexMQ.png
diff --git a/previews/PR114/assets/ftxeuvw.CKYsriLI.png b/previews/PR114/assets/vlooypp.CKYsriLI.png
similarity index 100%
rename from previews/PR114/assets/ftxeuvw.CKYsriLI.png
rename to previews/PR114/assets/vlooypp.CKYsriLI.png
diff --git a/previews/PR114/assets/hlcgnwe.0gO0QBJx.png b/previews/PR114/assets/vnsyynf.RBoAuHmD.png
similarity index 72%
rename from previews/PR114/assets/hlcgnwe.0gO0QBJx.png
rename to previews/PR114/assets/vnsyynf.RBoAuHmD.png
index c39b915d..1cc45329 100644
Binary files a/previews/PR114/assets/hlcgnwe.0gO0QBJx.png and b/previews/PR114/assets/vnsyynf.RBoAuHmD.png differ
diff --git a/previews/PR114/assets/whale_shark.md.CnmhdG-7.js b/previews/PR114/assets/whale_shark.md.BWsEl3hC.js
similarity index 98%
rename from previews/PR114/assets/whale_shark.md.CnmhdG-7.js
rename to previews/PR114/assets/whale_shark.md.BWsEl3hC.js
index e4794ee3..6b49a524 100644
--- a/previews/PR114/assets/whale_shark.md.CnmhdG-7.js
+++ b/previews/PR114/assets/whale_shark.md.BWsEl3hC.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.CMCfLljJ.js";const l="/Tyler.jl/previews/PR114/assets/nzfxdpg.DTm3NE0X.png",k="/Tyler.jl/previews/PR114/assets/jtlnnhi.B1A_CUPt.png",t="/Tyler.jl/previews/PR114/assets/whale_shark_128786.byuaqxsL.mp4",F=JSON.parse('{"title":"Whale shark's trajectory","description":"","frontmatter":{},"headers":[],"relativePath":"whale_shark.md","filePath":"whale_shark.md","lastUpdated":null}'),p={name:"whale_shark.md"};function e(E,s,r,d,g,y){return h(),a("div",null,s[0]||(s[0]=[n(`

Whale shark's trajectory

The full stack of Makie's ecosystem works.

Load packages

julia
using Tyler, GLMakie
+import{_ as i,c as a,a5 as h,o as n}from"./chunks/framework.CMCfLljJ.js";const l="/Tyler.jl/previews/PR114/assets/ziolpfr.DTm3NE0X.png",k="/Tyler.jl/previews/PR114/assets/yynrpch.B1A_CUPt.png",t="/Tyler.jl/previews/PR114/assets/whale_shark_128786.byuaqxsL.mp4",F=JSON.parse('{"title":"Whale shark's trajectory","description":"","frontmatter":{},"headers":[],"relativePath":"whale_shark.md","filePath":"whale_shark.md","lastUpdated":null}'),p={name:"whale_shark.md"};function e(E,s,r,d,g,y){return n(),a("div",null,s[0]||(s[0]=[h(`

Whale shark's trajectory

The full stack of Makie's ecosystem works.

Load packages

julia
using Tyler, GLMakie
 using Tyler.TileProviders
 using Tyler.MapTiles
 using CSV, DataFrames
diff --git a/previews/PR114/assets/whale_shark.md.CnmhdG-7.lean.js b/previews/PR114/assets/whale_shark.md.BWsEl3hC.lean.js
similarity index 98%
rename from previews/PR114/assets/whale_shark.md.CnmhdG-7.lean.js
rename to previews/PR114/assets/whale_shark.md.BWsEl3hC.lean.js
index e4794ee3..6b49a524 100644
--- a/previews/PR114/assets/whale_shark.md.CnmhdG-7.lean.js
+++ b/previews/PR114/assets/whale_shark.md.BWsEl3hC.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.CMCfLljJ.js";const l="/Tyler.jl/previews/PR114/assets/nzfxdpg.DTm3NE0X.png",k="/Tyler.jl/previews/PR114/assets/jtlnnhi.B1A_CUPt.png",t="/Tyler.jl/previews/PR114/assets/whale_shark_128786.byuaqxsL.mp4",F=JSON.parse('{"title":"Whale shark's trajectory","description":"","frontmatter":{},"headers":[],"relativePath":"whale_shark.md","filePath":"whale_shark.md","lastUpdated":null}'),p={name:"whale_shark.md"};function e(E,s,r,d,g,y){return h(),a("div",null,s[0]||(s[0]=[n(`

Whale shark's trajectory

The full stack of Makie's ecosystem works.

Load packages

julia
using Tyler, GLMakie
+import{_ as i,c as a,a5 as h,o as n}from"./chunks/framework.CMCfLljJ.js";const l="/Tyler.jl/previews/PR114/assets/ziolpfr.DTm3NE0X.png",k="/Tyler.jl/previews/PR114/assets/yynrpch.B1A_CUPt.png",t="/Tyler.jl/previews/PR114/assets/whale_shark_128786.byuaqxsL.mp4",F=JSON.parse('{"title":"Whale shark's trajectory","description":"","frontmatter":{},"headers":[],"relativePath":"whale_shark.md","filePath":"whale_shark.md","lastUpdated":null}'),p={name:"whale_shark.md"};function e(E,s,r,d,g,y){return n(),a("div",null,s[0]||(s[0]=[h(`

Whale shark's trajectory

The full stack of Makie's ecosystem works.

Load packages

julia
using Tyler, GLMakie
 using Tyler.TileProviders
 using Tyler.MapTiles
 using CSV, DataFrames
diff --git a/previews/PR114/assets/jtlnnhi.B1A_CUPt.png b/previews/PR114/assets/yynrpch.B1A_CUPt.png
similarity index 100%
rename from previews/PR114/assets/jtlnnhi.B1A_CUPt.png
rename to previews/PR114/assets/yynrpch.B1A_CUPt.png
diff --git a/previews/PR114/assets/nzfxdpg.DTm3NE0X.png b/previews/PR114/assets/ziolpfr.DTm3NE0X.png
similarity index 100%
rename from previews/PR114/assets/nzfxdpg.DTm3NE0X.png
rename to previews/PR114/assets/ziolpfr.DTm3NE0X.png
diff --git a/previews/PR114/getting_started.html b/previews/PR114/getting_started.html
index fcc1a483..79f0dde3 100644
--- a/previews/PR114/getting_started.html
+++ b/previews/PR114/getting_started.html
@@ -13,7 +13,7 @@
     
     
     
-    
+    
     
     
     
@@ -21,7 +21,7 @@
   
     
Skip to content

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:

julia
] add Tyler

The ] character starts the Julia package manager. Hit backspace key to return to Julia prompt.

Or, explicitly use Pkg

julia
using Pkg
 Pkg.add(["Tyler.jl"])

Demo: London

julia
using Tyler, GLMakie
-m = Tyler.Map(Rect2f(-0.0921, 51.5, 0.04, 0.025))

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:

julia
using GLMakie, Tyler
+m = Tyler.Map(Rect2f(-0.0921, 51.5, 0.04, 0.025))

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:

julia
using GLMakie, Tyler
 using Tyler.TileProviders
 
 provider = TileProviders.OpenStreetMap(:Mapnik)
@@ -32,7 +32,7 @@
     hidedecorations!(m.axis)
     hidespines!(m.axis)
     m
-end

Providers list

More providers are available. See the following list:

julia
providers = TileProviders.list_providers()
Dict{Function, Vector{Symbol}} with 40 entries:
+end

Providers list

More providers are available. See the following list:

julia
providers = TileProviders.list_providers()
Dict{Function, Vector{Symbol}} with 40 entries:
   NLS                   => [:osgb63k1885, :osgb1888, :osgb10k1888, :osgb1919, :…
   SwissFederalGeoportal => [:NationalMapColor, :NationalMapGrey, :SWISSIMAGE]
   Stadia                => [:AlidadeSmooth, :AlidadeSmoothDark, :OSMBright, :Ou…
@@ -66,8 +66,8 @@
     hidedecorations!(ax)
     hidespines!(ax)
     fig
-end

Next, we could add any other plot type on top of the ax axis defined above.

- +end

Next, we could add any other plot type on top of the ax axis defined above.

+ \ No newline at end of file diff --git a/previews/PR114/hashmap.json b/previews/PR114/hashmap.json index 5ece658e..211a7eb1 100644 --- a/previews/PR114/hashmap.json +++ b/previews/PR114/hashmap.json @@ -1 +1 @@ -{"api.md":"DJB945Po","getting_started.md":"4eHH39Il","iceloss_ex.md":"ni6rhUou","index.md":"DbVpCQxe","interpolation.md":"Cr5-7aRD","map-3d.md":"B2KlAWR7","osmmakie.md":"NQalcgPj","points_poly_text.md":"C0_Hy_cB","whale_shark.md":"CnmhdG-7"} +{"api.md":"4zlzHm0D","getting_started.md":"AcgX6wpJ","iceloss_ex.md":"FW8LKE_j","index.md":"DbVpCQxe","interpolation.md":"BTRydMt-","map-3d.md":"BIDBVVhS","osmmakie.md":"DGw9-_WE","points_poly_text.md":"DhzT5V8g","whale_shark.md":"BWsEl3hC"} diff --git a/previews/PR114/iceloss_ex.html b/previews/PR114/iceloss_ex.html index fb685cb7..8aca3244 100644 --- a/previews/PR114/iceloss_ex.html +++ b/previews/PR114/iceloss_ex.html @@ -13,7 +13,7 @@ - + @@ -43,8 +43,8 @@ cmap = Colors.alphacolor.(Makie.to_colormap(:thermal), alpha); cmap = Observable(cmap);

show map

julia
fig = Figure(; size = (1200,600))
 ax = Axis(fig[1,1])
-m = Tyler.Map(extent; provider, figure=fig, axis=ax)

create initial scatter plot

julia
scatter!(ax, X, Y; color = Z, colormap = cmap, colorrange = [0, n], markersize = 10);
-m

add colorbar

julia
a,b = extrema(df.Date);
+m = Tyler.Map(extent; provider, figure=fig, axis=ax)

create initial scatter plot

julia
scatter!(ax, X, Y; color = Z, colormap = cmap, colorrange = [0, n], markersize = 10);
+m

add colorbar

julia
a,b = extrema(df.Date);
 a = year(a);
 b = year(b);
 Colorbar(fig[1,2]; colormap = cmap, colorrange = [a,b],
@@ -53,7 +53,7 @@
 hidedecorations!(ax);
 # hide frames
 hidespines!(ax);
-m

loop to create animation

julia
for k = 1:15
+m

loop to create animation

julia
for k = 1:15
     # reset apha
     alpha[:] = zeros(nc);
     cmap[] = Colors.alphacolor.(cmap[], alpha)
@@ -65,7 +65,7 @@
         sleep(0.001);
     end
 end

- + \ No newline at end of file diff --git a/previews/PR114/index.html b/previews/PR114/index.html index a64e21b2..b8f5e64d 100644 --- a/previews/PR114/index.html +++ b/previews/PR114/index.html @@ -20,7 +20,7 @@
Skip to content

Tyler.jl

Maps

Download Map Tiles on Demand

Tyler
- + \ No newline at end of file diff --git a/previews/PR114/interpolation.html b/previews/PR114/interpolation.html index ec4e9851..00001a0d 100644 --- a/previews/PR114/interpolation.html +++ b/previews/PR114/interpolation.html @@ -13,7 +13,7 @@ - + @@ -43,8 +43,8 @@ p2 = Tyler.Interpolator(fun; options) b = Rect2f(-20.0, -20.0, 40.0, 40.0) -m = Tyler.Map(b, provider=p1)

TIP

Try b = Rect2f(-180.0, -89.9, 360.0, 179.8)

INFO

interpolated_getindex requires input i to be in the 0-1 range.

- +m = Tyler.Map(b, provider=p1)

TIP

Try b = Rect2f(-180.0, -89.9, 360.0, 179.8)

INFO

interpolated_getindex requires input i to be in the 0-1 range.

+ \ No newline at end of file diff --git a/previews/PR114/map-3d.html b/previews/PR114/map-3d.html index 4cb87c9b..784ef935 100644 --- a/previews/PR114/map-3d.html +++ b/previews/PR114/map-3d.html @@ -13,7 +13,7 @@ - + @@ -25,7 +25,7 @@ lat, lon = (47.087441, 13.377214) delta = 0.3 ext = Rect2f(lon-delta/2, lat-delta/2, delta, delta) -m = Tyler.Map3D(ext; provider=ElevationProvider())

Elevation with PlotConfig

With PlotConfig one can change the way tiles are plotted. The it has a preprocess + postprocess function and allows to pass any plot attribute to the tile. These attributes are global and will be passed to every tile plot.

julia
lat, lon = (47.087441, 13.377214)
+m = Tyler.Map3D(ext; provider=ElevationProvider())

Elevation with PlotConfig

With PlotConfig one can change the way tiles are plotted. The it has a preprocess + postprocess function and allows to pass any plot attribute to the tile. These attributes are global and will be passed to every tile plot.

julia
lat, lon = (47.087441, 13.377214)
 delta = 0.3
 ext = Rect2f(lon - delta / 2, lat - delta / 2, delta, delta)
 cfg = Tyler.PlotConfig(
@@ -33,11 +33,11 @@
     shading=FastShading, colorrange=(2000, 5000),
     colormap=:alpine
 )
-m = Tyler.Map3D(ext; provider=ElevationProvider(nothing), plot_config=cfg)

PointClouds

The PointCloud provider downloads from geotiles.citg.tudelft, which spans most of the netherlands.

julia
lat, lon = (52.40459835, 4.84763329)
+m = Tyler.Map3D(ext; provider=ElevationProvider(nothing), plot_config=cfg)

PointClouds

The PointCloud provider downloads from geotiles.citg.tudelft, which spans most of the netherlands.

julia
lat, lon = (52.40459835, 4.84763329)
 delta = 0.03
 ext = Rect2f(lon - delta / 2, lat - delta / 2, delta, delta)
 provider = Tyler.GeoTilePointCloudProvider()
-m = Tyler.Map3D(ext; provider=provider)

Pointclouds with PlotConfig + Meshscatter

There is also a MeshScatter plot config, which can be used to switch the point cloud plotting from scatter to meshscatter. This looks better, at a significant slow down.

julia
lat, lon = (52.40459835, 4.84763329)
+m = Tyler.Map3D(ext; provider=provider)

Pointclouds with PlotConfig + Meshscatter

There is also a MeshScatter plot config, which can be used to switch the point cloud plotting from scatter to meshscatter. This looks better, at a significant slow down.

julia
lat, lon = (52.40459835, 4.84763329)
 delta = 0.008
 ext = Rect2f(lon - delta / 2, lat - delta / 2, delta, delta)
 provider = Tyler.GeoTilePointCloudProvider()
@@ -46,7 +46,7 @@
 m1 = Tyler.Map3D(ext; provider=provider, plot_config=cfg)
 cfg = Tyler.PlotConfig(preprocess=pc -> map(p -> p .* 2, pc), shading=FastShading, colormap=:alpine)
 m2 = Tyler.Map3D(m1; provider=image, plot_config=cfg)
-m1

Using RPRMakie

julia
using RPRMakie, FileIO
+m1

Using RPRMakie

julia
using RPRMakie, FileIO
 function render_rpr(m, name, radiance=1000000)
     wait(m)
     ax = m.axis
@@ -95,7 +95,7 @@
 m2 = Tyler.Map3D(m; provider=ElevationProvider(nothing), plot_config=cfg, max_plots=5)
 render_rpr(m, "pointclouds")
 cp(Tyler)

- + \ No newline at end of file diff --git a/previews/PR114/osmmakie.html b/previews/PR114/osmmakie.html index 5f0a17ad..151cc6f2 100644 --- a/previews/PR114/osmmakie.html +++ b/previews/PR114/osmmakie.html @@ -13,7 +13,7 @@ - + @@ -54,8 +54,8 @@ m.axis.aspect = map_aspect(area.minlat, area.maxlat) p = osmplot!(m.axis, osm; buildings) # DataInspector(m.axis) # this is broken/slow -m

- +m

+ \ No newline at end of file diff --git a/previews/PR114/points_poly_text.html b/previews/PR114/points_poly_text.html index 387614b4..86c0f9c0 100644 --- a/previews/PR114/points_poly_text.html +++ b/previews/PR114/points_poly_text.html @@ -13,7 +13,7 @@ - + @@ -27,7 +27,7 @@ lon = -118.1714;
-118.1714

convert to point in web_mercator

julia
pts = Point2f(MapTiles.project((lon,lat), MapTiles.wgs84, MapTiles.web_mercator))
2-element GeometryBasics.Point{2, Float32} with indices SOneTo(2):
  -1.315478f7
   4.0558638f6

set how much area to map in degrees and define an Extent for display in web_mercator

julia
delta = 1
-extent = Rect2f(lon - delta / 2, lat - delta / 2, delta, delta);
GeometryBasics.HyperRectangle{2, Float32}(Float32[-118.6714, 33.7013], Float32[1.0, 1.0])

show map

julia
m = Tyler.Map(extent; provider, size=(1000, 600))

now plot a point, polygon and text on the map

julia
objscatter = scatter!(m.axis, pts; color = :red,
+extent = Rect2f(lon - delta / 2, lat - delta / 2, delta, delta);
GeometryBasics.HyperRectangle{2, Float32}(Float32[-118.6714, 33.7013], Float32[1.0, 1.0])

show map

julia
m = Tyler.Map(extent; provider, size=(1000, 600))

now plot a point, polygon and text on the map

julia
objscatter = scatter!(m.axis, pts; color = :red,
     marker = '⭐', markersize = 50)
 # hide ticks, grid and lables
 hidedecorations!(m.axis)
@@ -48,8 +48,8 @@
 text!(pts2, text = "Basic Example"; fontsize = 30,
     color = :darkblue, align = (:center, :center)
     )
-m

- +m

+ \ No newline at end of file diff --git a/previews/PR114/whale_shark.html b/previews/PR114/whale_shark.html index 786449be..be5361ce 100644 --- a/previews/PR114/whale_shark.html +++ b/previews/PR114/whale_shark.html @@ -13,7 +13,7 @@ - + @@ -43,7 +43,7 @@ fig = Figure(; size = (1200, 600)) ax = Axis(fig[1,1]) m = Tyler.Map(Rect2f(Rect2f(lomn - δlon/2, lamn-δlat/2, 2δlon, 2δlat)); - provider, figure=fig, axis=ax)

Initial point

julia
nt = 30
+    provider, figure=fig, axis=ax)

Initial point

julia
nt = 30
 trail = CircularBuffer{Point2f}(nt)
 fill!(trail, points[1]) # add correct values to the circular buffer
 trail = Observable(trail) # make it an observable
@@ -57,7 +57,7 @@
     strokecolor=:white, strokewidth=1.5)
 hidedecorations!(ax)
 hidespines!(ax)
-m

Animated trajectory

The animation is done by updating the Observable values

julia
record(fig, "whale_shark_128786.mp4") do io
+m

Animated trajectory

The animation is done by updating the Observable values

julia
record(fig, "whale_shark_128786.mp4") do io
     for i in 2:steps
         push!(trail[], points[i])
         whale[] = points[i]
@@ -66,7 +66,7 @@
     end
 end
 set_theme!() # reset theme (default)

- + \ No newline at end of file