using DeckGL
cities = (
lng = [-122.4, -74.0, 2.35, 139.7, 151.2, -0.13, 77.22, 103.8],
lat = [ 37.8, 40.7, 48.86, 35.7, -33.9, 51.5, 28.61, 1.35],
pop = [ 870, 8400, 2100, 13900, 5300, 9000, 32000, 5700],
)
Deck(
ScatterplotLayer(
data = cities,
get_position = [:lng, :lat],
get_radius = :pop,
radius_scale = 80,
radius_min_pixels = 4,
get_fill_color = [255, 140, 0, 220],
),
initial_view_state = ViewState(longitude=30, latitude=25, zoom=1.2, pitch=20),
map_style = "https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json",
)DeckGL.jl
Interactive maps in Julia.
GPU-accelerated geospatial visualization. Millions of points. Smooth pan, zoom, 3D. Built on deck.gl.
Overview
- Big data, smooth frames — WebGL rendering of millions of points.
- Any Tables.jl source — DataFrames, NamedTuples, CSV.jl, Arrow.jl, …
- 10+ layer types — scatter, arc, line, path, polygon, text, hexbin, grid, heatmap, GeoJSON.
- Any display target — Jupyter, Pluto, VS Code, standalone HTML.
- Declarative API — layers, view state, widgets. That’s it.
Install:
using Pkg
Pkg.add(url="https://github.com/RallypointOne/DeckGL.jl")Quickstart
A Deck has three pieces:
- Layers — what to draw.
- ViewState — where the camera is (
longitude,latitude,zoom,pitch,bearing). - Widgets (optional) — UI overlays.
Columns are referenced by Symbol: get_radius = :pop, get_position = [:lng, :lat]. Static values work too: get_fill_color = [255, 140, 0, 220].
Display
- Notebooks (Jupyter, Pluto, VS Code) — a
Deckrenders inline automatically. - Browser —
open_html(deck)pops a tab. - File —
save_html(deck, "map.html"). - String —
to_html(deck)/to_json(deck).
Where to go next
- Examples → — flight routes, earthquakes, 3D buildings, wildfires, trees, accidents.
- Layers → — every layer type with a live interactive example.
- Widgets → — zoom, compass, fullscreen.
- API → — full reference.