Skip to content
Updraft Docs
Türkçe

Tiles and styles

The tile server (https://maps.updraftmaps.com) serves MapLibre styles, vector tiles (MVT), fonts (glyphs), icons and raster PNG tiles.

Styles

Style Address
Pilot eye, light https://maps.updraftmaps.com/styles/pilot-light.json
Pilot eye, dark https://maps.updraftmaps.com/styles/pilot-dark.json

Pilot eye: contours and ridges stand out, power lines and cable cars are emphasised, open fields (landing candidates) are set apart from forest and scrub, cities are plain; Updraft's approved take-offs, landings and hazards are on top. You may change the style (colours, layers, labels); the attribution line stays and a changed map must not look endorsed by Updraft (Attribution).

3D terrain is off in the style; to turn it on: map.setTerrain({ source: 'terrain', exaggeration: 1.3 }).

Sources

Each source's TileJSON is at https://maps.updraftmaps.com/{source}; tiles at /{source}/{z}/{x}/{y}.

Source Type Zoom Content
base vector (OpenMapTiles 3.16 schema) 0–14 Land cover, water, roads, cable cars, boundaries, labels
contours vector, layer contour (ele, idx) 9–14 Contour lines (z≤10 100 m, z11–12 50 m, z13 20 m, z14 10 m)
hillshade raster 512 px 5–12 Hillshade
terrain raster-dem 512 px, terrarium 5–11 3D terrain
power vector, layer power (class, voltage, cables, name) 9–14 Power lines and towers (OSM)
sites vector 6–14 Approved take-off and landing sites
hazards vector 9–14 Hazards (power line, cable …)
skyways vector 7–14 Skyway lines
thermals vector, layer thermals 8–14 Thermal grid (below)
regions vector 4–12 Flying regions

The information layers (sites, hazards, skyways, thermals, regions) carry no exact pilot counts: they give confidence_tier (low, medium, high) and min_pilots (steps 3, 5, 10, 20, 50, 100) (Privacy).

Thermal grid

thermals is a function source: the breakdown is chosen with the query string of the TileJSON address, and the tile addresses carry it.

https://maps.updraftmaps.com/thermals                               all months, all day, all directions
https://maps.updraftmaps.com/thermals?month=7                       July
https://maps.updraftmaps.com/thermals?month=7&hour_bucket=6         July, 12:00–14:00
https://maps.updraftmaps.com/thermals?hour_bucket=7&wind_sector=6   14:00–16:00, wind from the west
Parameter Values Default ("all") Meaning
month 1–12 0 Local month (Europe/Istanbul)
hour_bucket 0–11 12 Local two-hour slot: 0 = 00–02, 6 = 12–14, 11 = 22–24
wind_sector 0–7 8 45° sector the 850 hPa wind blows from: 0 north, 1 north-east, 2 east … 7 north-west

An invalid value returns an empty tile. H3 hexagons of ~5 km² at z8–10 and ~0.1 km² at z11–14; there are no tiles below z8, above z14 the client overzooms.

Field Meaning
h3 H3 index of the cell
avg_climb_ms Mean climb, m/s (rounded to 0.1)
confidence_tier low, medium, high
min_pilots "At least N distinct pilots" (3, 5, 10, 20, 50, 100)

A cell is served only when enough distinct pilots (5 by default) found thermals in it. The wind sector comes from the model wind at the flight's take-off cell; flights without a model wind are only in the "all directions" breakdown.

Raster tiles

PNG tiles drawn from the same style, for clients that cannot draw vectors:

Address
256 px https://maps.updraftmaps.com/raster/pilot-light/{z}/{x}/{y}.png
512 px (same area, high-density screens) https://maps.updraftmaps.com/raster/pilot-light/{z}/{x}/{y}@2x.png
TileJSON https://maps.updraftmaps.com/raster/pilot-light.json

Zoom 5–16 (404 outside); dark theme pilot-dark. Raster tiles hold the base map only (land cover, water, roads, cable cars, contours, hillshade, power lines, labels); thermals, skyways, take-offs and landings are not in them. Example: flutter_map.

Caching

Response Cache-Control
Base, contours, hillshade, terrain, power (stable names) public, max-age=3600
Information layers and thermals public, max-age=60
Raster PNG public, max-age=3600, stale-while-revalidate=86400, stale-if-error=604800, Last-Modified + 304

The base map is rebuilt monthly, power lines weekly, the thermal grid nightly. For offline use in a mobile app extend the cache freshness on the client or use region packs (PMTiles per region; base map, contours and terrain only).

Keyed and public access

Path Checks Counted for you
Without a key Coarse limit per client address; a plain 429 without a body when exceeded No
With a key (X-Api-Key header or ?key=) tiles scope, per-key rate limits; 401/403/429 with the API body Yes

For browser requests the tile server only admits registered origins (CORS); tell us your site's origin when you ask for a key. Use the keyed path in your application: the limits are set per key, we can see your usage and reach you if something goes wrong.