A real-time geospatial intelligence platform for monitoring live flight traffic, maritime vessels, weather radar, and more — all on a single interactive map.
- Live Flights — Real-time ADS-B aircraft positions via OpenSky Network, including altitude, speed, heading, vertical rate, squawk, and callsign
- AIS Vessels — Real-time ship tracking via AISStream WebSocket, showing vessel name, type, speed, course, and navigation status
- Weather Radar — Live precipitation radar overlay powered by RainViewer
- Road Traffic — Simulated vehicle layer on roads (available at zoom level 13+)
| Style | Description |
|---|---|
| Road | Vector street map via OpenFreeMap (Liberty) |
| Satellite | ESRI World Imagery aerial photography |
| Terrain | Topographic map with hillshading |
| Elevation | DEM-based relief visualization |
- 2D — Standard flat orthogonal view
- 3D — Pitched perspective view (45°) with automatic terrain extrusion
- Globe — Spherical globe projection
- Toggle place name labels
- 3D Terrain extrusion with adjustable exaggeration (0.5×–5.0×)
- Hillshading from DEM data
- Extruded 3D Buildings
- Contour Lines (100m intervals)
- Grid / Graticule (lat/lon lines at 10° intervals)
Global real-time aircraft and ship positions on the vector street map.
The same live data overlaid on ESRI World Imagery.
Aircraft and maritime traffic visible along a coastline in satellite view.
Simulated road vehicles rendered in a pitched 3D perspective over satellite imagery.
Extruded building footprints with live tracking markers at street level.
| Layer | Technology |
|---|---|
| Framework | React 18 + TypeScript |
| Build Tool | Vite |
| Map Engine | MapLibre GL JS |
| State Management | Zustand |
| Styling | Tailwind CSS |
| Icons | Lucide React |
| Source | Data | Docs |
|---|---|---|
| OpenSky Network | Live ADS-B flight states | OAuth2 REST API |
| AISStream | Real-time AIS vessel positions | WebSocket API |
| RainViewer | Precipitation radar tiles | REST API |
| OpenFreeMap | Vector base map tiles | — |
| ESRI ArcGIS | Satellite & terrain tiles | — |
| AWS Terrain Tiles | DEM elevation (Terrarium) | — |
- Node.js 18+
- API keys for OpenSky Network and AISStream (free tiers available)
git clone https://github.com/hendrikbgr/open-live-map.git
cd open-live-map
npm installCopy the example environment file and fill in your credentials:
cp .env.example .env.local# OpenSky Network API credentials
# Register at https://opensky-network.org/
VITE_OPENSKY_CLIENT_ID=your_opensky_client_id
VITE_OPENSKY_CLIENT_SECRET=your_opensky_client_secret
# AISStream API key
# Register at https://aisstream.io/
VITE_AISSTREAM_API_KEY=your_aisstream_api_keyNote: The app works without credentials — OpenSky falls back to unauthenticated access (rate-limited) and vessels/weather still load. You'll get the best experience with credentials configured.
npm run devOpen http://localhost:5173 in your browser.
npm run build
npm run previewBuild and run the app as a container using Docker Compose:
cp .env.example .env # fill in your API keys (optional)
docker compose up -dThe app will be available at http://localhost:8080.
Alternatively, build and run with plain Docker:
docker build \
--build-arg VITE_OPENSKY_CLIENT_ID=your_id \
--build-arg VITE_OPENSKY_CLIENT_SECRET=your_secret \
--build-arg VITE_AISSTREAM_API_KEY=your_key \
-t open-live-map .
docker run -d -p 8080:80 open-live-mapNote: API key build args are optional. The image uses a multi-stage build (Node for compilation, Nginx for serving) and includes reverse proxy rules for all external APIs and the AIS WebSocket relay.
src/
├── components/
│ ├── Map/
│ │ └── MapView.tsx # MapLibre GL map container
│ └── UI/
│ ├── Sidebar.tsx # Collapsible control panel
│ ├── LayerPanel.tsx # Layer toggle controls
│ ├── StyleSelector.tsx # Base map switcher
│ ├── ViewModeToggle.tsx # 2D / 3D / Globe toggle
│ ├── TerrainControls.tsx # Elevation exaggeration slider
│ ├── FlightPanel.tsx # Aircraft detail panel
│ ├── VesselPanel.tsx # Vessel detail panel
│ └── StatusBar.tsx # Coordinate / zoom / pitch HUD
├── services/
│ ├── opensky.ts # OpenSky Network REST client
│ ├── aisstream.ts # AISStream WebSocket client
│ └── rainviewer.ts # RainViewer radar tile fetcher
├── store/
│ ├── mapStore.ts # Map state (style, view mode, layers)
│ ├── flightStore.ts # Flight data and selected aircraft
│ └── vesselStore.ts # Vessel data and selected vessel
├── config/
│ └── mapStyles.ts # Map style definitions
└── types/
├── flight.ts # Flight data types
├── vessel.ts # Vessel data types
└── map.ts # Map state types
MIT — see LICENSE for details.
OpenTIR v0.1.0 · Built with MapLibre GL JS · Open Source




