DroneMapUK

A browser-based UK drone airspace planning tool built with MapLibre GL JS. Visualises the airspace restrictions, protected areas, and managed land relevant to UK drone operations in a single interactive map.

Planning aid only. Always verify with official CAA sources and check NOTAMs at nats.co.uk before any flight.

DroneMapUK screenshot


Features

  • NATS AIP Airspace — parses the official NATS AIXM 5.1 XML dataset in a Web Worker (off the main thread) to render Restricted, Prohibited, CTR, CTA, TMA, RAS, and TMZ zones with per-type toggles and colour coding
  • Flight Restriction Zones (FRZ) — 5 km radius circles around ~40 UK licensed aerodromes, hardcoded from CAA reference points
  • Danger / Restricted Areas — load your own GeoJSON (e.g. converted from NATS ENR 5.1 KMZ)
  • MoD / Military Areas — load your own GeoJSON
  • National Parks (GB) — fetched automatically from the OS Open Geography Portal ArcGIS REST API
  • Royal Parks (London) — 8 London parks with approximate boundaries
  • SSSIs — England auto-loaded viewport-lazy from Natural England ArcGIS API (zoom ≥ 8); Scotland/Wales via file upload
  • Forestry managed land — load GeoJSON from Forestry England, FLS Scotland, or NRW Wales
  • GPS location tracking — live position with accuracy circle, auto-centres on first fix
  • Map styles — Terrain, Satellite, Streets (MapTiler)
  • 3D terrain — MapTiler terrain-rgb-v2 DEM with pitch and sky layer
  • Hillshade overlay — best on Satellite style

How it works

The app is three plain files — index.html, style.css, and app.js — with no build step, no bundler, and no framework.

Concern Detail
Map rendering MapLibre GL JS 4.x via CDN
Base tiles MapTiler (requires a free API key)
NATS parsing nats-worker.js Web Worker — receives the 72 MB AIXM XML as an ArrayBuffer, parses GML geometry (GeodesicString, CircleByCenterPoint, ArcByCenterPoint), and posts GeoJSON back to the main thread
API key storage localStorage key droneMapUK_maptilerKey
SSSI loading Viewport-lazy fetch from Natural England ArcGIS FeatureServer, debounced 450 ms on map move
National Parks Single fetch from OS Open Geography Portal on map load
Style switching Uses MapLibre idle event (not style.load) to re-add sources and layers after setStyle()

Setup

  1. Get a free API key at maptiler.com
  2. Serve the directory from a local web server — the NATS XML fetch requires HTTP, not file://
# Python
python3 -m http.server 8080

# Node
npx serve .
  1. Open http://localhost:8080 in a browser and enter your MapTiler key when prompted

NATS airspace data

Download the official NATS AIP dataset from nats-uk.ead-it.com and place the extracted XML file at the path referenced in app.js:

EG_AIP_DS_20260514_XML/EG_AIP_DS_FULL_20260514.xml

Update NATS_XML_PATH in app.js if your filename differs.


GeoJSON data sources

Layer Source
Danger / Restricted NATS UAS Zones
Forestry England data-forestry.opendata.arcgis.com
FLS Scotland ArcGIS Viewer
NRW Wales datamap.gov.wales
SSSIs (Scotland/Wales) Natural England / Defra Open Data

Attribution

Map tiles © MapTiler · Data © OpenStreetMap contributors
A Bournemouth Technology product

Description
No description provided
Readme 8.5 MiB
Languages
JavaScript 66.4%
HTML 17.4%
CSS 16.2%