From 90b962745ecd9fb0f124d5c23977a23040e51169 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 23 Oct 2026 09:59:48 +0000 Subject: [PATCH] wip(mobile): checkpoint polish round in progress Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01VVYRAqiQj9Y1V9ZfG1RcDH --- mobile/DESIGN.md | 125 +- mobile/demo/capture-history.mjs | 388 ++ mobile/demo/history/gulf.json | 1002 +++++ mobile/demo/history/index.json | 30 + mobile/demo/history/london.json | 6007 ++++++++++++++++++++++++++ mobile/demo/history/nyc.json | 583 +++ mobile/demo/moments/empire-state.jpg | Bin 0 -> 145914 bytes mobile/globe/API.md | 37 + mobile/globe/airlines.js | 169 + mobile/globe/archive.js | 171 + mobile/globe/entities.js | 51 +- mobile/globe/imagery.js | 138 +- mobile/globe/index.js | 72 +- mobile/globe/quality.js | 2 +- mobile/globe/recorder.js | 14 +- mobile/main.js | 262 +- mobile/styles/moment.css | 184 + mobile/styles/shell.css | 49 + mobile/styles/timemachine.css | 48 +- mobile/ui/dossier.js | 2 +- mobile/ui/feed.js | 20 +- mobile/ui/globeHost.js | 5 + mobile/ui/liveChat.js | 7 +- mobile/ui/moment.js | 86 +- mobile/ui/shim3.js | 4 +- mobile/ui/social.js | 1 + mobile/ui/timeRibbon.js | 154 +- mobile/ui/today.js | 126 +- mobile/ui/watch.js | 68 + 29 files changed, 9600 insertions(+), 205 deletions(-) create mode 100644 mobile/demo/capture-history.mjs create mode 100644 mobile/demo/history/gulf.json create mode 100644 mobile/demo/history/index.json create mode 100644 mobile/demo/history/london.json create mode 100644 mobile/demo/history/nyc.json create mode 100644 mobile/demo/moments/empire-state.jpg create mode 100644 mobile/globe/airlines.js create mode 100644 mobile/globe/archive.js diff --git a/mobile/DESIGN.md b/mobile/DESIGN.md index da732976a..db3e7d5bc 100644 --- a/mobile/DESIGN.md +++ b/mobile/DESIGN.md @@ -4,10 +4,10 @@ _The window through which you see the world, and the eye through which the world This folder holds two things: -| Path | What it is | Tethered to production? | -| --- | --- | --- | -| [`mobile/index.html`](index.html) → `/mobile/` | **Prototype.** A working phone/foldable app that sets the design language on top of the real engine: CesiumJS, Esri cloudless imagery, NASA Black Marble night lights, Google Photorealistic 3D Tiles (when keyed), and the app's own live `/api` feeds (ADS-B, military, AIS, TLEs, quakes, FIRMS fires, cyclones, launches, CCTV) plus the bundled Bhote Koshi event pack. Capture is real: camera, IMU, GPS and a WebCrypto signature. | Yes. Runs on the existing dev server (`npm run dev`, open `http://localhost:4173/mobile/`). | -| [`mobile/vision/index.html`](vision/index.html) | **Vision.** A single self-contained file with no server, no keys and no production code. It shows where the product goes: the full feed, 4D reconstructions with collaborative hypotheses, the provenance ledger, holograms left in places, a hand-written WebGL globe with a cinematic post chain. | No. Open the file straight from disk in any browser (the dev server's CSP blocks its inline script). Rebuild it with `node mobile/vision/build.mjs`. | +| Path | What it is | Tethered to production? | +| ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| [`mobile/index.html`](index.html) → `/mobile/` | **Prototype.** A working phone/foldable app that sets the design language on top of the real engine: CesiumJS, Esri cloudless imagery, NASA Black Marble night lights, Google Photorealistic 3D Tiles (when keyed), and the app's own live `/api` feeds (ADS-B, military, AIS, TLEs, quakes, FIRMS fires, cyclones, launches, CCTV) plus the bundled Bhote Koshi event pack. Capture is real: camera, IMU, GPS and a WebCrypto signature. | Yes. Runs on the existing dev server (`npm run dev`, open `http://localhost:4173/mobile/`). | +| [`mobile/vision/index.html`](vision/index.html) | **Vision.** A single self-contained file with no server, no keys and no production code. It shows where the product goes: the full feed, 4D reconstructions with collaborative hypotheses, the provenance ledger, holograms left in places, a hand-written WebGL globe with a cinematic post chain. | No. Open the file straight from disk in any browser (the dev server's CSP blocks its inline script). Rebuild it with `node mobile/vision/build.mjs`. | --- @@ -29,13 +29,13 @@ Five commitments fall out of that sentence: Five tabs. Capture is a tab, not a floating action, because it is a _mode_ with its own full-screen surface (HIG: tab bars navigate between peer areas; capture is a peer area here, as it is in Camera-first apps). -| Tab | SF-style glyph | Job | -| --- | --- | --- | -| **Now** | `dot.radiowaves` | A two-column, RedNote-style masonry feed of live and recent situations. Each card is a living thumbnail: real imagery of the place, live counters, a pulse when it changes. Sections: _Happening now_, _Near you_, _Reconstructions_, _Always on_ (chopper schools, busy airports, ISS, port of Rotterdam…). | -| **Globe** | `globe.americas` | The window. Full-bleed globe, the lens dock, the time ribbon, search. This is the expert surface. | -| **Capture** | `viewfinder` | Two modes on one dial: **Look** (AR — the God's-eye view projected around you: aircraft, satellites, ships, quakes as overlays on the camera, aligned by compass + gyro) and **Witness** (your phone becomes an eye for the God's eye: signed photo/video with IMU, GPS, heading, depth when available). | -| **Threads** | `point.3.connected.trianglepath.dotted` | Reconstructions people are building together: observations, hypotheses, AI refinements, and the ledger. | -| **You** | `person.crop.circle` | Your captures and their seals, holograms you left in places, situations you follow, alert radius. | +| Tab | SF-style glyph | Job | +| ----------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **Now** | `dot.radiowaves` | A two-column, RedNote-style masonry feed of live and recent situations. Each card is a living thumbnail: real imagery of the place, live counters, a pulse when it changes. Sections: _Happening now_, _Near you_, _Reconstructions_, _Always on_ (chopper schools, busy airports, ISS, port of Rotterdam…). | +| **Globe** | `globe.americas` | The window. Full-bleed globe, the lens dock, the time ribbon, search. This is the expert surface. | +| **Capture** | `viewfinder` | Two modes on one dial: **Look** (AR — the God's-eye view projected around you: aircraft, satellites, ships, quakes as overlays on the camera, aligned by compass + gyro) and **Witness** (your phone becomes an eye for the God's eye: signed photo/video with IMU, GPS, heading, depth when available). | +| **Threads** | `point.3.connected.trianglepath.dotted` | Reconstructions people are building together: observations, hypotheses, AI refinements, and the ledger. | +| **You** | `person.crop.circle` | Your captures and their seals, holograms you left in places, situations you follow, alert radius. | The iOS 26-era shell: a floating glass tab bar that shrinks to a pill while you scroll the feed and expands when you stop; a **tab-bar accessory** shows the one situation you are following live ("Typhoon · 185 km/h · 2 min ago"), like a now-playing bar for the planet. @@ -60,14 +60,14 @@ The iOS 26-era shell: a floating glass tab bar that shrinks to a pill while you ## 5. Rendering budget (phone) -| Item | Target | -| --- | --- | -| Frame | 60 fps while interacting, 0 fps (request-render mode) at rest | -| Resolution scale | `min(devicePixelRatio, 2)`, dropping to 1.5 / 1.25 when frame time > 20 ms for 2 s | -| Tiles | `maximumScreenSpaceError` 2 → 4 on compact; tile cache 256 MB → 128 MB | -| Post chain | atmosphere + night-lights blend (built into the globe shader) → FXAA → single-pass bloom (half res) → vignette + grade. Bloom and grain switch off under Low Power / thermal pressure | -| Labels | no Cesium labels; HTML/canvas overlay in screen space, capped at 40 visible | -| Data | each layer has an LOD rule (aggregate above 2,000 km altitude, glyphs below) and a visible-count cap | +| Item | Target | +| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Frame | 60 fps while interacting, 0 fps (request-render mode) at rest | +| Resolution scale | `min(devicePixelRatio, 2)`, dropping to 1.5 / 1.25 when frame time > 20 ms for 2 s | +| Tiles | `maximumScreenSpaceError` 2 → 4 on compact; tile cache 256 MB → 128 MB | +| Post chain | atmosphere + night-lights blend (built into the globe shader) → FXAA → single-pass bloom (half res) → vignette + grade. Bloom and grain switch off under Low Power / thermal pressure | +| Labels | no Cesium labels; HTML/canvas overlay in screen space, capped at 40 visible | +| Data | each layer has an LOD rule (aggregate above 2,000 km altitude, glyphs below) and a visible-count cap | ## 6. Capture and provenance @@ -98,16 +98,16 @@ Collaborative AI prompting happens on stratum 2: a participant asks the model to ## 8. Layer catalog (44) -| Family | Layers | -| --- | --- | -| Sky | Commercial flights · Military aircraft · Helicopters · Private/GA · Emergency squawks · Drones (Remote ID) · Airport boards · Holding patterns | -| Sea | AIS vessels · Ports · Tankers/cargo · Fishing effort · Dark vessels (AIS gaps) · Submarine cables | -| Orbit | Satellites (TLE) · ISS & crewed · Starlink trains · Launches & trajectories · Debris · Ground tracks & passes | -| Hazards | Earthquakes · Active fires (FIRMS) · Fire perimeters · Floods · Tropical cyclones · Volcanoes · Air quality | -| Eyes | Public CCTV · Signed captures · Street-level imagery · Holograms · Live streams | -| Ground | Transit vehicles · Traffic flow · Bike share · Rail · Events & venues · ALPR cameras | -| Weather | Radar · Clouds · Lightning · Wind · Forecast models | -| Infra | Datacenters · Dams · Power plants · Military installations · GNSS interference · Recent satellite imagery | +| Family | Layers | +| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| Sky | Commercial flights · Military aircraft · Helicopters · Private/GA · Emergency squawks · Drones (Remote ID) · Airport boards · Holding patterns | +| Sea | AIS vessels · Ports · Tankers/cargo · Fishing effort · Dark vessels (AIS gaps) · Submarine cables | +| Orbit | Satellites (TLE) · ISS & crewed · Starlink trains · Launches & trajectories · Debris · Ground tracks & passes | +| Hazards | Earthquakes · Active fires (FIRMS) · Fire perimeters · Floods · Tropical cyclones · Volcanoes · Air quality | +| Eyes | Public CCTV · Signed captures · Street-level imagery · Holograms · Live streams | +| Ground | Transit vehicles · Traffic flow · Bike share · Rail · Events & venues · ALPR cameras | +| Weather | Radar · Clouds · Lightning · Wind · Forecast models | +| Infra | Datacenters · Dams · Power plants · Military installations · GNSS interference · Recent satellite imagery | ## 9. Situations worth monitoring (the feed's genres) @@ -168,12 +168,12 @@ Review notes on the first build: the feed showed one kind of picture (open ocean The app's subject is altitude. Every surface tells you **where the sensor is** and **how high it is**, from orbit down to street level and finally inside: a room, a cockpit, a person's own capture. That is the brand, and it replaces the weather-app palette of blue gradients and big temperature-style numbers. -| Altitude band | Sensor | Telemetry burned into the frame | -| --- | --- | --- | -| **Orbit** · 400–36,000 km | satellites, ISS, launches, weather satellite IR | `ORBIT · 412 KM · 7.66 KM/S · PASS 21:04` | -| **Sky** · 0–15 km | ADS-B aircraft, helicopters, military, radar returns, lightning | `SKY · FL350 · 487 KT · SQ 7700` | -| **Ground** · 0 m | CCTV, traffic, transit, fires, quakes, floods | `GROUND · CAM 0412 · I-5 S · 14:02:11Z` | -| **Inside** · you | signed captures, live broadcasts, holograms, conversations | `WITNESS · SEALED · ±4 M · 1.2 KM FROM EVENT` | +| Altitude band | Sensor | Telemetry burned into the frame | +| ------------------------- | --------------------------------------------------------------- | --------------------------------------------- | +| **Orbit** · 400–36,000 km | satellites, ISS, launches, weather satellite IR | `ORBIT · 412 KM · 7.66 KM/S · PASS 21:04` | +| **Sky** · 0–15 km | ADS-B aircraft, helicopters, military, radar returns, lightning | `SKY · FL350 · 487 KT · SQ 7700` | +| **Ground** · 0 m | CCTV, traffic, transit, fires, quakes, floods | `GROUND · CAM 0412 · I-5 S · 14:02:11Z` | +| **Inside** · you | signed captures, live broadcasts, holograms, conversations | `WITNESS · SEALED · ±4 M · 1.2 KM FROM EVENT` | Visual rules: @@ -193,7 +193,7 @@ Card archetypes: 3. **Track card**: one moving thing, such as an aircraft squawking 7700, a helicopter on its 14th circuit at Fort Novosel, or the ISS crossing your night sky. It shows a trail, a big readout, and a "ride along" call to action. 4. **Number card**: one striking fact with a sparkline. Examples: "4,812 lightning strikes in the last hour over the Gulf", "GNSS jamming over the Baltic, 340 aircraft affected". 5. **Witness card**: a signed capture or a live broadcast from a person. It shows the seal, the distance from the event, and the reply count. -6. **Room card**: a conversation that is heating up. It shows the top claim, its status (*Confirmed by 3 signed captures* / *Disputed*), and the participants. +6. **Room card**: a conversation that is heating up. It shows the top claim, its status (_Confirmed by 3 signed captures_ / _Disputed_), and the participants. Situation genres to source from keyless layers. Each card must say its source: @@ -222,12 +222,13 @@ People will talk about events anyway, on other platforms and without the evidenc - **Structured posts.** Each post is one of: **Witness** (I saw or recorded this), **Context** (background, a link, a map), **Question**, **Correction**, or **Prediction**. The kind is chosen in the composer and drawn as an icon. Questions float to the top until answered. - **Anchored.** A post can pin a place (a dot on the globe) and a time (a pip on the time ribbon). Tapping a post flies the globe there and scrubs the ribbon to that moment. Pinned posts appear in 3D as small speech glyphs at their location. - **Earned badges, not follower counts.** Badges come from evidence: - - *Was there*: a signed capture within N km and M minutes of the event. - - *Sealed*: the post has a sealed attachment. - - *Local*: the author's home area is set. - - *Domain*: pilot, mariner, met, first responder, held as a verified credential. + - _Was there_: a signed capture within N km and M minutes of the event. + - _Sealed_: the post has a sealed attachment. + - _Local_: the author's home area is set. + - _Domain_: pilot, mariner, met, first responder, held as a verified credential. Posts are ordered by evidence first, then recency, never by follower count. + - **Community notes with bridging.** Any claim can get a note. A note becomes visible only when raters who usually disagree both rate it helpful (bridging-based ranking, as Community Notes does), which resists brigading. - **AI synthesis, kept honest.** A pinned card at the top of every room is labelled **Known / Disputed / Unknown**. AI writes it from the observations and the posts, and every line cites its sources. It is regenerated as the room changes, with its prompt and inputs recorded in the ledger. It never states anything that has no citation. - **Live layer.** While you are in a room, presence shows as small avatars, reactions float up the side, and a "N people watching" count appears. Rooms for live situations sit in the feed as Room cards. @@ -237,12 +238,12 @@ People will talk about events anyway, on other platforms and without the evidenc Capture is how a person becomes a sensor. Four modes share one dial: -| Mode | What it makes | Trust tier | -| --- | --- | --- | -| **Look** | AR overlay of contacts around you. Nothing is recorded unless you tap. | none | -| **Witness** | A sealed photo or clip with the IMU, GPS and heading trace (§6). | **Sealed** | -| **Live** | A broadcast from your camera. It appears on the globe as an *eye*: a frustum cone at your position and heading, with live telemetry, watchable by the room. Every 10 s the stream is sealed as hash-chained segments. | **Sealed live** | -| **Upload** | A photo or video from your library. EXIF is read if present, then you place it on the map and set the time. | **Unverified**: labelled as such everywhere, and it can never become an observation, only cited by a hypothesis. | +| Mode | What it makes | Trust tier | +| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| **Look** | AR overlay of contacts around you. Nothing is recorded unless you tap. | none | +| **Witness** | A sealed photo or clip with the IMU, GPS and heading trace (§6). | **Sealed** | +| **Live** | A broadcast from your camera. It appears on the globe as an _eye_: a frustum cone at your position and heading, with live telemetry, watchable by the room. Every 10 s the stream is sealed as hash-chained segments. | **Sealed live** | +| **Upload** | A photo or video from your library. EXIF is read if present, then you place it on the map and set the time. | **Unverified**: labelled as such everywhere, and it can never become an observation, only cited by a hypothesis. | After the shutter comes the **attach sheet**. It suggests the situation you are probably at, from distance and time ("Typhoon Champi · 4.2 km from track", "Times Square camera · 180 m"). It offers "new place" if none fits, a post kind (Witness by default), an optional note, and whether to drop it as a **hologram** that others can find at this spot later. Posting puts the capture in that situation's room, and a Witness card in the feed when it is notable. @@ -260,14 +261,14 @@ Founder's brief for this round: take what made Palantir Gotham work, fix what Ci Gotham's power is not the map. It is that **everything is an object, every object has a history and links, and every view (map, timeline, graph, dossier) shows the same objects**. Select something anywhere and every view follows. Analysts build an investigation, share it, and every fact keeps its source. -| Gotham idea | God's Eye version | -| --- | --- | -| Ontology of objects and links | **Entities**: aircraft, vessels, satellites, cameras, places, events, captures and contributors (pseudonymous). Each has a **dossier**: identity, live state, track history, events, links and receipts. | -| Map + timeline + graph, synchronized | Globe, **time machine** and **link graph** share one selection and one clock. | -| Search to dossier | Universal search ("N46567", "7700", "Piccadilly", "M5.2", "ISS") opens a dossier, not a list of pins. | -| Watchlists and alerts | **Watch**: follow an entity or a place, and write alert rules in plain chips ("any squawk 7700 within 200 km of Home"). | -| Investigations with provenance | **Moments**: shareable 4D reconstructions whose every track, capture and claim carries its source and hash. | -| Audit log | The room ledger: every post, note, AI synthesis and vote is hash-chained and exportable. | +| Gotham idea | God's Eye version | +| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Ontology of objects and links | **Entities**: aircraft, vessels, satellites, cameras, places, events, captures and contributors (pseudonymous). Each has a **dossier**: identity, live state, track history, events, links and receipts. | +| Map + timeline + graph, synchronized | Globe, **time machine** and **link graph** share one selection and one clock. | +| Search to dossier | Universal search ("N46567", "7700", "Piccadilly", "M5.2", "ISS") opens a dossier, not a list of pins. | +| Watchlists and alerts | **Watch**: follow an entity or a place, and write alert rules in plain chips ("any squawk 7700 within 200 km of Home"). | +| Investigations with provenance | **Moments**: shareable 4D reconstructions whose every track, capture and claim carries its source and hash. | +| Audit log | The room ledger: every post, note, AI synthesis and vote is hash-chained and exportable. | **The line we don't cross.** Gotham tracks people; we don't. Trackable entities are things that broadcast publicly (transponders, AIS, orbital elements), public infrastructure, and events. Contributors are pseudonymous. There is no face recognition and no person search, and aircraft on owner-privacy lists (LADD/PIA) are never named. This is the product's moral spine and a talking point, not a footnote. @@ -301,7 +302,7 @@ A **Moment** is a 4D reconstruction assembled around an event: tracks, sensor fr The time ribbon becomes a time machine: -- **It remembers.** The app records every live contact's position each poll (a ring buffer persisted in IndexedDB, about 6 h). Scrubbing back shows where everything actually was, with ghost trails. A selected aircraft's full track comes from the server's track routes. +- **It remembers.** The app records every live contact's position each poll (a ring buffer persisted in IndexedDB, about 6 h). Scrubbing back shows where everything actually was, with ghost trails. A selected aircraft's full track comes from the server's track routes. The app also ships a **bundled real recording** (`mobile/demo/history/`, a few hours over New York, London and the Gulf of Mexico, captured with `capture-history.mjs`) so a first run already has ghosts to replay; it keeps its true timestamps and the time machine shows it where it happened (`RECORDING · `). - **Everything moves together.** Contacts, radar and lightning frames, quakes and fires appearing, cyclone positions, the sun, room posts, and captures all follow the clock. - **Play.** Play/pause and 1×, 10×, 60× and 600× speeds; momentum scrubbing; detents at events; a **NOW** snap. - **Event pips.** Pips from every layer are colour-coded by altitude band. Tapping one jumps to it. @@ -311,13 +312,13 @@ The time ribbon becomes a time machine: Two lanes in every room. This is the delineation that keeps the conversation both fun and true. -| | **Live** (Twitch) | **Record** (Reddit and X) | -| --- | --- | --- | -| Pace | Fast, ephemeral, scrolls away | Considered, persistent, threaded | -| Shape | One-line chat, emotes, @mentions, slow mode, viewer count | Posts with kinds (§11.3), replies, quote-posts, attachments | -| Reactions | Hearts, 🔥, 👀 and 😮 fly up the screen, **and rise from the reactor's location on the globe**: you see the world watching | Corroborate / Dispute votes weighted by Signal | -| Badges | Witness glow for people with a sealed capture nearby, plus First eyes | Was there, Sealed, Local, Domain | -| Becomes the record? | Only if it carries evidence or is promoted by corroboration | Yes, hash-chained in the ledger | +| | **Live** (Twitch) | **Record** (Reddit and X) | +| ------------------- | -------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | +| Pace | Fast, ephemeral, scrolls away | Considered, persistent, threaded | +| Shape | One-line chat, emotes, @mentions, slow mode, viewer count | Posts with kinds (§11.3), replies, quote-posts, attachments | +| Reactions | Hearts, 🔥, 👀 and 😮 fly up the screen, **and rise from the reactor's location on the globe**: you see the world watching | Corroborate / Dispute votes weighted by Signal | +| Badges | Witness glow for people with a sealed capture nearby, plus First eyes | Was there, Sealed, Local, Domain | +| Becomes the record? | Only if it carries evidence or is promoted by corroboration | Yes, hash-chained in the ledger | - **The clerk.** Every few minutes, AI summarizes the Live lane into "What chat is saying", with citations to messages, and posts it into the Record as a clearly labelled synthesis. - **Crews.** Crews are persistent groups (X communities): "NYC Scanner Nerds", "Fort Novosel Alumni", "Gulf Storm Chasers". A crew has its own feed, members and rooms, and can co-watch a Moment together. diff --git a/mobile/demo/capture-history.mjs b/mobile/demo/capture-history.mjs new file mode 100644 index 000000000..999fe9624 --- /dev/null +++ b/mobile/demo/capture-history.mjs @@ -0,0 +1,388 @@ +#!/usr/bin/env node +/** + * Captures a bundled flight-history recording for the time machine + * (DESIGN.md §12.5). For N minutes it polls the real feeds the engine uses + * (adsb.lol point snapshots around each region's anchors, the dev server's + * /api/flights as a fallback and its /api/military), keeps the busiest + * regions, and writes one file per region to mobile/demo/history/.json. + * + * npx vite --port 4191 --strictPort # a dev server, for the fallbacks + * node mobile/demo/capture-history.mjs [--base http://localhost:4191] + * [--minutes 150] [--poll 20] [--budget 4000000] [--out dir] + * (behind an HTTPS proxy: NODE_USE_ENV_PROXY=1 node …) + * + * The engine's normalisation (flightFromState, classifyAircraft) is used, and the + * same sampling as the recorder's persisted history: one fix per 30 s for + * low traffic, one per 120 s for cruise. The file keeps the real capture + * timestamps; the engine never shifts them. + * + * File format (quantised, delta-encoded): + * { format: 'gev-history/1', region, label, bbox, capturedAt: { start, end }, + * source, t0 (epoch s), tracks: [{ k, m, p }] } + * k: recorder key (icao24 / hex) m: recorder meta (callsign, type…) + * p: comma-separated ints, 6 per sample, deltas from the previous sample: + * dt (s) · dlon (1e-4°) · dlat (1e-4°) · dalt (10 m) · heading (°, absolute) + * · speed (m/s, absolute) + * Written every 5 minutes, so an interrupted run still leaves a usable file. + */ +import { mkdir, writeFile } from 'node:fs/promises'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { flightFromState } from '../globe/feeds.js'; +import { classifyAircraft } from '../../src/data/aircraftClass.js'; + +const HERE = path.dirname(fileURLToPath(import.meta.url)); +const args = Object.fromEntries( + process.argv + .slice(2) + .join(' ') + .split('--') + .filter(Boolean) + .map((kv) => { + const [k, ...v] = kv.trim().split(/\s+/); + return [k, v.join(' ') || true]; + }), +); +const BASE = args.base || 'http://localhost:4191'; +const MINUTES = Number(args.minutes || 150); +const POLL_S = Number(args.poll || 20); +const BUDGET = Number(args.budget || 4_000_000); +const OUT = args.out ? path.resolve(args.out) : path.join(HERE, 'history'); + +const REGIONS = [ + { + id: 'nyc', + label: 'New York area', + bbox: { west: -76.5, south: 39.4, east: -71.2, north: 42.2 }, + anchors: [{ lat: 40.75, lon: -73.98 }], + }, + { + id: 'london', + label: 'London and the North Sea approaches', + bbox: { west: -2.6, south: 50.2, east: 5.6, north: 53.6 }, + anchors: [ + { lat: 51.51, lon: -0.12 }, + { lat: 52.2, lon: 4.2 }, + ], + }, + { + id: 'gulf', + label: 'Gulf of Mexico', + bbox: { west: -98.5, south: 23.5, east: -81.5, north: 31.2 }, + anchors: [ + { lat: 27.5, lon: -90 }, + { lat: 29.6, lon: -95.2 }, + { lat: 27.9, lon: -83.5 }, + ], + }, +]; + +const CRUISE_ALT_M = 6000; +const LOW_GAP_S = 30; +const CRUISE_GAP_S = 120; + +const inBox = (b, lon, lat) => + lat >= b.south && lat <= b.north && lon >= b.west && lon <= b.east; + +/** region id → Map(key → { meta, pts: [[t, lon, lat, alt, hdg, spd]] }) */ +const store = new Map(REGIONS.map((r) => [r.id, new Map()])); +let firstAt = Infinity; +let lastAt = -Infinity; +const sources = new Set(); + +function add(region, key, meta, s) { + const tracks = store.get(region.id); + let tr = tracks.get(key); + if (!tr) { + tr = { meta, pts: [] }; + tracks.set(key, tr); + } else tr.meta = { ...tr.meta, ...meta }; + const last = tr.pts[tr.pts.length - 1]; + const gap = s[3] > CRUISE_ALT_M ? CRUISE_GAP_S : LOW_GAP_S; + if (last && s[0] - last[0] < gap) return; + tr.pts.push(s); + if (s[0] < firstAt) firstAt = s[0]; + if (s[0] > lastAt) lastAt = s[0]; +} + +function ingest(records) { + const nowS = Date.now() / 1000; + for (const r of records) { + if (!Number.isFinite(r.lon) || !Number.isFinite(r.lat)) continue; + if (r.onGround && (r.speed ?? 0) < 8) continue; + const t = Math.floor( + Math.min(r.seenAt ?? Date.now(), Date.now() + 5000) / 1000, + ); + if (nowS - t > 15 * 60) continue; + const region = REGIONS.find((g) => inBox(g.bbox, r.lon, r.lat)); + if (!region) continue; + const meta = { + kind: r.military ? 'military' : r.helicopter ? 'helicopter' : 'aircraft', + layer: r.military ? 'military' : 'flights', + callsign: r.callsign || undefined, + ...(r.registration ? { registration: r.registration } : {}), + ...(r.type ? { type: r.type } : {}), + ...(r.country ? { country: r.country } : {}), + ...(r.squawk ? { squawk: r.squawk } : {}), + ...(r.helicopter ? { helicopter: true } : {}), + ...(r.military ? { military: true } : {}), + ...(r.ga ? { ga: true } : {}), + ...(r.pia ? { pia: true } : {}), + ...(r.ladd ? { ladd: true } : {}), + }; + add(region, String(r.id), meta, [ + t, + r.lon, + r.lat, + Math.round(r.altM ?? 0), + Math.round(r.heading ?? 0), + Math.round(r.speed ?? 0), + ]); + } +} + +async function getJson(url, headers = {}) { + const ctl = new AbortController(); + const timer = setTimeout(() => ctl.abort(), 30_000); + try { + const res = await fetch(url, { signal: ctl.signal, headers }); + if (!res.ok) throw new Error(`HTTP ${res.status}`); + return { json: await res.json(), headers: res.headers }; + } finally { + clearTimeout(timer); + } +} + +const ADSBLOL = 'https://api.adsb.lol/v2'; +const UA = { 'User-Agent': 'gods-eye-view-history-capture/1.0' }; + +/** adsb.lol v2 aircraft → the engine's flight record shape. */ +function fromAdsbLol(a, nowMs) { + if (!Number.isFinite(a.lon) || !Number.isFinite(a.lat)) return null; + const onGround = a.alt_baro === 'ground'; + const altFt = Number.isFinite(a.alt_geom) ? a.alt_geom : a.alt_baro; + const cls = classifyAircraft({ typeCode: a.t, category: a.category }); + const military = Boolean(a.dbFlags & 1); + return { + id: String(a.hex).replace(/^~/, ''), + callsign: String(a.flight || a.r || a.hex).trim(), + registration: a.r || '', + type: a.t || '', + lon: a.lon, + lat: a.lat, + altM: onGround + ? 0 + : Math.max(0, (Number.isFinite(altFt) ? altFt : 15000) * 0.3048), + onGround, + speed: Number.isFinite(a.gs) ? a.gs * 0.514444 : 0, + heading: a.track ?? a.true_heading ?? 0, + squawk: a.squawk || null, + helicopter: cls === 'helicopter', + military, + pia: Boolean(a.dbFlags & 4), + ladd: Boolean(a.dbFlags & 8), + seenAt: nowMs - (a.seen_pos ?? a.seen ?? 0) * 1000, + }; +} + +/** + * Each region's anchors straight from adsb.lol (250 nm point queries, the + * same source the dev server falls back to); an anchor that fails is asked + * through the dev server instead. + */ +async function pollFlights() { + let n = 0; + for (const g of REGIONS) { + for (const a of g.anchors) { + // Polite spacing: adsb.lol answers 429 to bursts. + await new Promise((r) => setTimeout(r, 1500)); + try { + const { json } = await getJson( + `${ADSBLOL}/lat/${a.lat}/lon/${a.lon}/dist/250`, + UA, + ); + const now = Number.isFinite(json.now) ? json.now : Date.now(); + const recs = (json.ac || []) + .map((x) => fromAdsbLol(x, now)) + .filter(Boolean); + ingest(recs); + n += recs.length; + sources.add('adsb.lol (ODbL)'); + continue; + } catch (error) { + console.warn(`[adsb.lol ${g.id}]`, error.message); + } + try { + const { json } = await getJson( + `${BASE}/api/flights?lat=${a.lat}&lon=${a.lon}`, + ); + const recs = (json.states || []).map(flightFromState).filter(Boolean); + ingest(recs); + n += recs.length; + sources.add('God’s Eye dev server (OpenSky / adsb.lol)'); + } catch (error) { + console.warn(`[flights ${g.id}]`, error.message); + } + } + } + return n; +} + +async function pollMilitary() { + try { + const { json } = await getJson(`${BASE}/api/military`); + const recs = []; + for (const a of json.ac || []) { + if (!Number.isFinite(a.lon) || !Number.isFinite(a.lat)) continue; + const altFt = Number.isFinite(a.alt_geom) ? a.alt_geom : a.alt_baro; + recs.push({ + id: String(a.hex), + callsign: String(a.flight || a.r || a.hex).trim(), + registration: a.r || '', + type: a.t || '', + lon: a.lon, + lat: a.lat, + altM: + a.alt_baro === 'ground' ? 0 : Math.max(0, (altFt ?? 15000) * 0.3048), + onGround: a.alt_baro === 'ground', + speed: Number.isFinite(a.gs) ? a.gs * 0.514444 : 0, + heading: a.track ?? a.true_heading ?? 0, + squawk: a.squawk || null, + military: true, + pia: Boolean(a.dbFlags & 4), + ladd: Boolean(a.dbFlags & 8), + seenAt: Date.now() - (a.seen_pos ?? a.seen ?? 0) * 1000, + }); + } + ingest(recs); + sources.add('adsb.lol military (ODbL)'); + return recs.length; + } catch (error) { + console.warn('[military]', error.message); + return 0; + } +} + +function encode(region, cruiseGap) { + const tracks = []; + const t0 = Number.isFinite(firstAt) ? firstAt : Math.floor(Date.now() / 1000); + for (const [k, tr] of store.get(region.id)) { + if (tr.pts.length < 2) continue; + const p = []; + let prev = [t0, 0, 0, 0]; + let keptT = -Infinity; + tr.pts.forEach((s, i) => { + const isLast = i === tr.pts.length - 1; + if ( + cruiseGap > CRUISE_GAP_S && + s[3] > CRUISE_ALT_M && + !isLast && + s[0] - keptT < cruiseGap + ) + return; + keptT = s[0]; + const lon = Math.round(s[1] * 1e4); + const lat = Math.round(s[2] * 1e4); + const alt = Math.round(s[3] / 10); + p.push( + s[0] - prev[0], + lon - prev[1], + lat - prev[2], + alt - prev[3], + s[4], + s[5], + ); + prev = [s[0], lon, lat, alt]; + }); + // A string, so the file stays compact under Prettier. + tracks.push({ k, m: tr.meta, p: p.join(',') }); + } + return { + format: 'gev-history/1', + region: region.id, + label: region.label, + bbox: region.bbox, + capturedAt: { + start: new Date(firstAt * 1000).toISOString(), + end: new Date(lastAt * 1000).toISOString(), + }, + source: [...sources].join(' · '), + note: 'Real recorded positions, captured through the God’s Eye dev server. Timestamps are the true capture times and are never shifted.', + t0, + tracks, + }; +} + +/** Prettier-clean JSON (the repo checks mobile/ with Prettier). */ +async function pretty(text) { + try { + const prettier = await import('prettier'); + return await prettier.format(text, { parser: 'json' }); + } catch { + return text + '\n'; + } +} + +async function save() { + await mkdir(OUT, { recursive: true }); + let gap = CRUISE_GAP_S; + for (;;) { + const files = REGIONS.map((g) => [g, JSON.stringify(encode(g, gap))]); + const bytes = files.reduce((n, [, s]) => n + s.length, 0); + if (bytes > BUDGET && gap < 300) { + gap += 60; + continue; + } + for (const [g, text] of files) + await writeFile(path.join(OUT, `${g.id}.json`), await pretty(text)); + const index = { + format: 'gev-history-index/1', + capturedAt: { + start: new Date(firstAt * 1000).toISOString(), + end: new Date(lastAt * 1000).toISOString(), + }, + regions: REGIONS.map((g, i) => ({ + id: g.id, + label: g.label, + bbox: g.bbox, + file: `${g.id}.json`, + tracks: JSON.parse(files[i][1]).tracks.length, + })), + }; + await writeFile( + path.join(OUT, 'index.json'), + await pretty(JSON.stringify(index)), + ); + console.log( + `[save] ${new Date().toISOString()} span ${Math.round((lastAt - firstAt) / 60)} min, ${Math.round(bytes / 1024)} KB (cruise gap ${gap}s)`, + ); + return; + } +} + +const until = Date.now() + MINUTES * 60_000; +let polls = 0; +let lastSave = Date.now(); +let lastMil = 0; +console.log(`capturing ${MINUTES} min from ${BASE} → ${OUT}`); +while (Date.now() < until) { + const started = Date.now(); + const n = await pollFlights(); + if (Date.now() - lastMil > 40_000) { + lastMil = Date.now(); + await pollMilitary(); + } + polls++; + if (polls % 15 === 1) + console.log( + `[poll ${polls}] ${n} aircraft; tracks ${REGIONS.map((g) => `${g.id}:${store.get(g.id).size}`).join(' ')}`, + ); + if (Date.now() - lastSave > 5 * 60_000) { + lastSave = Date.now(); + await save().catch((e) => console.warn('[save]', e.message)); + } + const wait = POLL_S * 1000 - (Date.now() - started); + if (wait > 0) await new Promise((r) => setTimeout(r, wait)); +} +await save(); +console.log('done'); diff --git a/mobile/demo/history/gulf.json b/mobile/demo/history/gulf.json new file mode 100644 index 000000000..75a52ef11 --- /dev/null +++ b/mobile/demo/history/gulf.json @@ -0,0 +1,1002 @@ +{ + "format": "gev-history/1", + "region": "gulf", + "label": "Gulf of Mexico", + "bbox": { "west": -98.5, "south": 23.5, "east": -81.5, "north": 31.2 }, + "capturedAt": { + "start": "2026-10-23T08:25:37.000Z", + "end": "2026-10-23T09:02:03.000Z" + }, + "source": "adsb.lol (ODbL) · adsb.lol military (ODbL) · God’s Eye dev server (OpenSky / adsb.lol)", + "note": "Real recorded positions (adsb.lol point snapshots around each anchor, OpenSky / adsb.lol via the dev server as a fallback). Timestamps are the true capture times and are never shifted.", + "t0": 1792743937, + "tracks": [ + { + "k": "abb9df", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SWA2487", + "registration": "N8549Z", + "type": "B738", + "squawk": "1026", + "country": "United States" + }, + "p": "656,-932098,298540,1183,103,255,120,3086,-635,0,103,256,132,3370,-707,0,104,253,122,2988,-632,0,104,242,120,2906,-627,-1,104,242,130,3157,-684,0,104,243,121,2924,-643,-1,104,241,120,2889,-644,0,104,243,121,2927,-656,0,104,245,129,3160,-720,-1,105,248,132,3253,-747,0,105,249,120,2964,-611,0,103,248,120,2975,-616,0,103,249" + }, + { + "k": "a78a52", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL1118", + "registration": "N585UW", + "type": "A321", + "squawk": "7232", + "country": "United States" + }, + "p": "656,-929943,298147,1058,104,244,120,2938,-618,-2,104,245,132,3251,-692,0,104,246,120,2940,-634,0,104,244,120,2952,-643,-1,104,246,132,3222,-711,0,104,246,121,2980,-665,0,104,246,120,2941,-663,-2,104,245,121,2932,-670,2,105,245,129,3139,-725,-2,105,244,132,3219,-701,0,103,245,120,2958,-607,0,103,246,120,2930,-609,-1,103,245" + }, + { + "k": "0d0dd3", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VOI703", + "registration": "XA-VSK", + "type": "A21N", + "squawk": "6506", + "country": "Mexico" + }, + "p": "656,-923437,295613,1089,199,261,120,-1040,-2690,1,199,263,132,-1373,-2876,0,204,261,120,-1314,-2556,0,206,260,122,-1432,-2545,0,206,260,130,-1531,-2732,0,206,260,121,-1419,-2546,0,206,262,120,-1425,-2569,0,206,266,120,-1419,-2574,3,206,266,382,-4471,-8196,-57,0,0" + }, + { + "k": "c00e6c", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "FLE2627", + "registration": "C-FFLZ", + "type": "B38M", + "squawk": "3253", + "country": "Canada" + }, + "p": "656,-919948,305338,1245,33,226,120,1553,2041,0,33,227,132,1726,2246,-1,34,226,120,1553,2018,0,34,226" + }, + { + "k": "a14bdd", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "N183AM", + "registration": "N183AM", + "type": "B789", + "squawk": "5206", + "country": "United States" + }, + "p": "656,-919792,286001,1216,235,252,120,-2509,-1573,-1,235,249,132,-2768,-1753,1,233,254,120,-2201,-1929,2,215,258,137,-1887,-2710,0,211,256,132,-1780,-2585,0,212,257,143,-1936,-2827,0,211,258,378,-5033,-7435,-60,0,0" + }, + { + "k": "a5449a", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL1400", + "registration": "N439AN", + "type": "A21N", + "squawk": "3260" + }, + "p": "656,-917833,308618,1120,123,256,120,2675,-1491,-1,123,252,132,2876,-1616,0,123,250,120,2608,-1474,0,123,250,120,2612,-1485,0,123,249,132,2806,-1608,0,123,246,121,2584,-1490,-2,124,248,139,3064,-1587,1,117,248,120,2729,-1228,-1,118,251,131,3062,-1308,1,116,251,132,3059,-1316,-2,116,251,120,2775,-1201,0,116,252,120,2782,-1214,0,116,253" + }, + { + "k": "ad1927", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "N943JT", + "registration": "N943JT", + "type": "A321", + "squawk": "1005", + "country": "United States" + }, + "p": "657,-917438,292867,992,104,245,121,2984,-666,0,104,249,130,3229,-730,-1,105,250,120,2980,-682,0,105,251,120,3005,-697,0,105,252,132,3262,-759,-2,105,251,121,3018,-714,0,105,250,139,3418,-816,-1,105,250,120,2955,-716,1,105,250,131,3207,-784,-2,106,245,126,3023,-746,-1,106,245,188,4528,-1135,-40,0,0" + }, + { + "k": "a4ac26", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "N40VC", + "registration": "N40VC", + "type": "GLF4", + "squawk": "3727", + "ladd": true, + "country": "United States", + "ga": true + }, + "p": "657,-917203,301837,1273,291,229,120,-2547,1129,0,298,229,131,-2740,1263,1,298,229,120,-2541,1163,0,298,231,120,-2560,1164,0,298,232,134,-2876,1299,1,298,234,121,-2605,1168,-1,297,231,139,-2976,1325,0,297,230,120,-2531,1117,0,297,225" + }, + { + "k": "a7b3c2", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ASA708", + "registration": "N596AS", + "type": "B738", + "squawk": "1014", + "country": "United States" + }, + "p": "656,-910711,296969,1183,107,240,120,2855,-785,-1,108,243,132,3165,-879,0,108,246,120,2874,-805,0,108,245,120,2898,-820,-1,108,246,132,3166,-905,0,108,246,121,2926,-844,-1,108,249,139,3371,-983,0,109,250,120,2900,-853,0,109,249,131,3178,-943,0,109,249,132,3206,-962,-1,109,252,120,2915,-883,0,109,253,120,2917,-892,-1,109,252" + }, + { + "k": "adb35c", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "JBU1400", + "registration": "N982JB", + "type": "A321", + "squawk": "7234", + "country": "United States" + }, + "p": "656,-901172,288919,1052,105,252,120,3014,-702,0,105,254,132,3294,-777,0,105,253,121,3009,-719,-1,105,250,138,3407,-822,-2,105,251,276,6873,-1690,-42,0,0,120,3009,-752,42,106,255,136,3358,-848,-1,106,253,132,3257,-887,0,108,254,132,3253,-934,-1,108,254,120,2920,-847,-1,108,254" + }, + { + "k": "ab165c", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "N813V", + "registration": "N813V", + "type": "F2TH", + "squawk": "1072", + "ladd": true, + "country": "United States", + "ga": true + }, + "p": "657,-901027,301972,1303,104,250,139,3515,-780,0,104,252,132,3320,-747,0,105,251,120,3026,-689,-1,105,252,120,3012,-693,0,105,251,131,3276,-763,0,105,250,121,3002,-707,-1,105,249,120,2984,-710,1,105,248,120,2953,-711,-1,106,249,131,3256,-793,-1,106,251,132,3288,-809,-1,106,251,120,2960,-737,-44,106,254,120,3022,-760,-18,106,256" + }, + { + "k": "a82dff", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "N626RA", + "registration": "N626RA", + "type": "GLF5", + "squawk": "1016", + "ladd": true, + "country": "United States", + "ga": true + }, + "p": "656,-899224,291145,1487,111,249,120,2817,-946,-12,111,250,132,3193,-1081,-32,111,261,140,3564,-1219,-16,111,268,120,3058,-1056,0,111,267,132,3334,-1151,0,110,265,120,3069,-894,0,108,265,120,3090,-897,0,108,266,120,3067,-899,0,108,263,131,3332,-987,0,109,265,132,3375,-1009,-1,109,266,120,3067,-925,0,109,266,120,3058,-932,0,109,265" + }, + { + "k": "a1277b", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL2469", + "registration": "N17359", + "type": "B38M", + "country": "United States", + "squawk": "3635" + }, + "p": "611,-888826,287030,1180,107,254,145,3597,-963,-1,107,256,145,3647,-983,0,107,257,126,3154,-860,-1,107,257,121,3008,-830,0,107,255,131,3230,-894,-1,108,254,122,2998,-845,0,108,254,123,3021,-855,0,108,256,136,3379,-968,0,108,257,131,3267,-947,0,109,257,132,3225,-1019,-1,109,256,120,2924,-924,0,110,257,123,3033,-968,0,110,259" + }, + { + "k": "a52a99", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL1802", + "registration": "N432AN", + "type": "A21N", + "squawk": "1330", + "country": "United States" + }, + "p": "656,-873660,282847,1178,111,258,120,2951,-1009,-1,111,258,132,3209,-1104,0,111,259,120,2949,-1023,0,111,260,120,2938,-1029,0,112,259,132,3202,-1130,0,112,259,121,2960,-1053,0,112,260,122,2996,-1074,0,112,262,121,2961,-1071,0,112,263,120,2953,-1077,0,112,262,122,2962,-1087,0,112,260,120,2904,-1076,0,113,258,120,2871,-1068,0,113,258" + }, + { + "k": "a3b8f5", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL1292", + "registration": "N339TP", + "type": "B38M", + "squawk": "3202", + "country": "United States" + }, + "p": "656,-867605,301390,1176,128,254,120,2457,-1694,0,129,253,133,2707,-1885,-1,129,255,122,2551,-1786,-1,129,260,120,2490,-1751,0,129,259,132,2736,-1939,0,129,259,122,2485,-1771,0,129,256,138,2797,-2008,0,129,254,120,2413,-1743,0,129,256,132,2670,-1939,0,130,258,131,2671,-1957,0,130,258,120,2412,-1771,0,130,256,120,2385,-1766,1,130,255" + }, + { + "k": "a35e66", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL563", + "registration": "N316PF", + "type": "B738", + "squawk": "0775", + "country": "United States" + }, + "p": "656,-865865,283586,1046,101,249,120,2983,-536,0,102,249,132,3292,-593,-1,102,252,123,3109,-579,-1,102,255,120,3053,-570,0,102,257,132,3400,-640,0,101,258,122,3162,-326,-1,97,258,138,3588,-374,0,97,258,121,3113,-330,-32,97,254,131,3386,-374,-68,97,259,131,3367,-375,-147,97,246,120,2906,-82,-75,90,237,120,2860,-1,-46,90,233" + }, + { + "k": "a4bf41", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL778", + "registration": "N405AN", + "type": "A21N", + "squawk": "7623", + "country": "United States" + }, + "p": "656,-856631,276308,1046,111,260,120,2950,-1010,0,111,261,136,3335,-1150,1,111,262,139,3425,-1193,-1,111,262,120,2960,-1041,0,112,262,132,3236,-1145,0,112,262,120,2959,-1056,1,112,265,120,2931,-1054,-1,112,261,120,2908,-1054,0,112,261,132,3212,-1174,1,112,261,131,3062,-1128,-62,112,251,120,2765,-1025,-67,113,244,120,2604,-972,-121,112,226" + }, + { + "k": "a0053c", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DLX100", + "registration": "N100FL", + "type": "CL60", + "squawk": "7231" + }, + "p": "658,-981495,307208,1190,100,245,120,2986,-478,0,101,245,132,3309,-538,-1,101,245,120,3004,-497,0,101,246,120,3019,-506,-1,101,246,131,3315,-565,0,101,246,122,3049,-528,0,101,246,139,3467,-609,-1,102,245,120,2985,-532,0,102,244,131,3251,-588,-1,102,245,132,3288,-604,0,102,246,140,3468,-646,0,102,245,120,2977,-563,0,102,245" + }, + { + "k": "a820f8", + "m": { + "kind": "helicopter", + "layer": "flights", + "callsign": "N6227", + "registration": "N6227", + "type": "AS50", + "squawk": "0277", + "helicopter": true, + "country": "United States", + "ga": true + }, + "p": "658,-977043,302901,40,220,35,40,51,-7,0,327,42,40,-13,-39,-1,56,43,40,-34,3,-3,125,39,40,-14,23,0,187,35,71,58,-17,1,44,46,41,-42,-3,0,134,34,40,-8,27,-1,207,33,40,19,19,1,263,36,40,36,-19,2,337,42,40,-12,-31,0,47,45,40,-29,-10,-2,111,40,40,-14,15,0,141,41,72,21,41,1,259,32,40,36,-22,0,350,38,39,-30,-28,1,79,42,41,-26,10,-2,138,37,41,25,125,-3,9,55,39,17,193,-1,17,57,40,148,173,0,48,62,39,201,138,-1,54,63,41,211,134,0,51,60,40,201,135,0,56,63,40,213,135,-2,55,63,40,209,117,-3,70,54,40,103,-28,-8,187,13" + }, + { + "k": "a12ff9", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "FDX1426", + "registration": "N176FE", + "type": "B763", + "squawk": "1666", + "country": "United States" + }, + "p": "658,-976582,302145,21,179,73,39,7,-245,-21,180,48,121,-21,-12,0,357,9,71,-2,71,0,357,12,61,-24,25,0,267,10,40,-47,-1,0,270,12,40,-51,-1,0,270,10,40,-13,16,0,0,8,40,-1,36,0,0,12,40,-4,42,0,346,12" + }, + { + "k": "a2c0ff", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "FDX1188", + "registration": "N277FE", + "type": "B763", + "squawk": "2272" + }, + "p": "658,-975623,307470,775,197,241,120,-874,-2467,-17,197,230,132,-886,-2522,-156,197,213,40,-255,-721,-47,197,208,40,-252,-716,-50,197,206,40,-242,-696,-41,197,200,40,-242,-691,-42,197,196,40,-331,-611,-17,223,182,40,-641,-312,-48,249,182,92,-1469,-483,-47,250,148,40,-575,-151,-26,255,146,39,-565,-128,-17,256,139,41,-583,-127,-19,256,145,41,-588,-128,-18,256,142,38,-548,-124,-17,255,141,41,-569,-128,-25,255,140,39,-545,-123,-22,256,135,360,-74,-1910,-142,132,73,44,160,-124,-24,132,21,59,56,-22,0,39,11,41,34,34,0,39,13" + }, + { + "k": "aaa752", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BVN8280", + "registration": "N786FE", + "type": "C208", + "squawk": "2244" + }, + "p": "658,-974552,310854,249,192,84,40,-73,-296,0,192,85,40,-68,-303,0,191,85,40,-70,-296,0,192,85,40,-74,-301,1,192,86,71,-140,-561,-20,192,88,41,-78,-314,-10,192,86,40,-77,-299,-11,193,84,40,-81,-294,-11,194,83,40,-80,-292,-10,193,82,40,-78,-286,-2,193,81,40,-46,-292,-5,186,84,40,-32,-303,-9,186,85,72,-69,-548,-16,186,86,40,-34,-308,-8,186,85,39,-32,-300,-9,185,84,41,-30,-301,-8,185,83,41,-33,-305,-11,186,82,39,-76,-278,-10,197,81,40,-145,-261,-11,212,81,39,-177,-242,-11,213,80,41,-178,-247,-10,212,79,40,-165,-235,-3,204,74,40,-74,-252,0,190,72,40,-56,-253,0,193,71,40,-69,-249,0,193,71,51,-93,-313,-9,196,70,40,-94,-228,-13,199,62,71,-23,-379,-28,179,58,40,4,-211,-11,179,54,40,5,-106,-1,164,13,40,37,-12,-13,87,13,40,17,26,0,0,13,41,-1,48,0,357,12,60,-19,63,0,346,12,40,11,35,0,11,11" + }, + { + "k": "0d0b14", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VTM392", + "registration": "XA-VAD", + "type": "CRJ2", + "squawk": "2420", + "country": "Mexico" + }, + "p": "658,-973293,295626,1064,43,198,120,1701,1620,-1,43,210,132,1976,1871,-1,43,218,120,1853,1747,0,43,221,120,1864,1747,0,43,220,132,2042,1906,0,43,218,121,1869,1730,-1,43,217,139,2148,1986,0,43,216,120,1856,1701,0,43,217,131,2033,1858,-1,43,217" + }, + { + "k": "a661bf", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DAL547", + "registration": "N510DE", + "type": "A21N", + "squawk": "1363" + }, + "p": "658,-972438,305746,1062,101,245,120,2987,-501,1,101,244,132,3268,-555,-2,101,242,120,2958,-512,1,101,242,120,2973,-521,0,102,243,132,3251,-577,-1,102,242,121,2984,-539,0,102,243,139,3440,-630,0,102,244,120,2976,-553,0,102,244,131,3214,-604,-3,102,243,132,3245,-621,2,103,242,138,3393,-656,-2,103,243,120,2942,-577,0,103,245" + }, + { + "k": "ab7077", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "JUS5221", + "registration": "N836US", + "type": "MD88", + "squawk": "5710", + "country": "United States" + }, + "p": "658,-970971,300713,1155,220,231,140,-2154,-2234,1,220,231,132,-2114,-2013,0,223,230,120,-1928,-1838,1,223,232,120,-1916,-1837,-1,222,228,132,-2081,-2005,0,222,228,120,-1878,-1819,-41,222,228,120,-1905,-1855,-197,222,230" + }, + { + "k": "ac5a73", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SWA3424", + "registration": "N8951S", + "type": "B38M", + "squawk": "2613", + "country": "United States" + }, + "p": "658,-964424,305436,1126,102,250,120,3027,-575,0,103,248,132,3320,-640,-1,103,248,120,3004,-587,0,103,245,140,3461,-688,-1,103,244,132,3274,-659,0,103,247,120,3003,-611,-1,103,249,120,3015,-622,0,103,249,120,3007,-629,-1,104,249,129,3238,-685,0,104,249,132,3317,-710,-1,104,253,120,3052,-663,0,104,256,120,3064,-675,0,104,255" + }, + { + "k": "0d0963", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VIV187", + "registration": "XA-VAP", + "type": "A320", + "squawk": "1354", + "country": "Mexico" + }, + "p": "658,-962300,279013,1159,200,248,120,-1031,-2505,0,200,248,131,-1133,-2763,2,200,251,121,-1047,-2571,0,200,250,120,-1028,-2536,0,200,248,132,-1106,-2746,0,200,244,121,-1000,-2487,0,200,243,139,-913,-2943,0,193,245,120,-644,-2588,2,193,247" + }, + { + "k": "a12c42", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "FDX1155", + "registration": "N175FE", + "type": "B763", + "squawk": "0514" + }, + "p": "658,-958739,303822,314,156,141,40,230,-452,-24,156,138,40,233,-457,-23,156,135,40,229,-451,-23,156,140,40,233,-459,-23,156,139,71,412,-811,-42,156,137,41,226,-448,-22,156,132,40,210,-416,-17,156,124,40,352,-255,-20,98,111,40,438,-8,-10,90,99,40,392,2,-7,90,94,40,389,2,-10,89,94,40,388,1,-18,90,93,72,631,1,-32,90,79,40,330,1,-18,90,80,39,322,0,-16,90,79" + }, + { + "k": "a353c6", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UPS772", + "registration": "N313UP", + "type": "B763", + "squawk": "6607", + "country": "United States" + }, + "p": "658,-956052,300914,122,256,114,40,-221,-310,1,183,105,40,198,-281,-13,134,93,40,281,-232,-19,120,95,40,391,-21,0,91,94,71,669,0,-30,90,88,41,352,1,-18,90,79,40,323,1,-18,90,78,39,321,-1,-15,90,78" + }, + { + "k": "a5b4b7", + "m": { + "kind": "helicopter", + "layer": "flights", + "callsign": "LIFE7", + "registration": "N467MH", + "type": "EC45", + "squawk": "0121", + "helicopter": true + }, + "p": "658,-953558,300578,22,94,69,40,279,-19,0,94,69,40,290,-20,0,95,69,40,243,-19,0,98,57,40,193,-30,-1,92,39,52,13,41,-14,189,10" + }, + { + "k": "a6833b", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DAL477", + "registration": "N519DT", + "type": "A21N", + "squawk": "2444", + "country": "United States" + }, + "p": "658,-945872,301075,1125,102,244,140,3457,-659,-1,103,245,132,3251,-628,-1,103,246,120,2978,-586,-7,103,245,120,3009,-598,-48,103,247,129,3227,-647,-9,103,249,121,3015,-615,-1,103,249,120,3034,-625,0,103,252,120,3008,-630,0,104,251,131,3312,-700,-1,104,250,132,3310,-709,0,104,252,120,3008,-653,1,104,252,120,3003,-658,-3,104,251" + }, + { + "k": "a1211d", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "FDX1425", + "registration": "N172FE", + "type": "B763", + "squawk": "1576" + }, + "p": "658,-942898,307078,751,227,253,120,-2247,-1784,-170,230,236,40,-751,-522,-61,232,229,71,-1300,-886,-97,230,217,41,-675,-519,-51,228,211,40,-634,-489,-30,229,197,39,-588,-429,-10,231,177,41,-549,-390,-11,231,161,40,-489,-352,-14,230,149,40,-480,-343,-30,233,149,40,-572,-166,-18,258,145,72,-1053,-169,-25,260,143,40,-592,-90,-13,262,144,39,-593,-16,-12,270,144,41,-599,2,-17,270,140,41,-584,2,-44,270,137,39,-553,-1,-25,270,133,40,-532,0,1,270,129,39,-531,-8,-1,261,128,41,-305,-327,0,180,122,40,290,-320,-24,123,117,40,421,-200,-8,98,117,40,482,-1,0,90,112,40,458,1,-22,90,107,51,503,0,-27,90,84,41,328,0,-17,90,77,54,439,0,-22,90,75" + }, + { + "k": "ac7d27", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SWA2334", + "registration": "N9033W", + "squawk": "1333" + }, + "p": "658,-940516,309916,1186,102,250,120,3061,-588,-1,103,252,132,3381,-659,-1,103,252,120,3076,-607,-1,103,253,120,3119,-628,0,103,257,130,3300,-664,0,103,244,121,2968,-612,0,104,240,120,2876,-599,0,104,237,121,2870,-604,0,104,235,129,3057,-652,-1,104,234,132,3134,-677,-1,104,237,120,2888,-629,0,104,239,121,2894,-640,0,104,240" + }, + { + "k": "a6e8ae", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "N544VL", + "registration": "N544VL", + "type": "A20N", + "squawk": "2452", + "country": "United States" + }, + "p": "660,-850976,282038,1143,190,246,120,-527,-2611,-1,190,246,132,-620,-2889,2,196,248,137,-1318,-2802,1,204,247,122,-1221,-2510,0,203,247,129,-1260,-2606,-1,203,245,129,-1266,-2627,1,203,245,350,-3615,-6983,-47,0,0" + }, + { + "k": "a7fe27", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "FFT1086", + "registration": "N614FR", + "type": "A21N", + "squawk": "2614", + "country": "United States" + }, + "p": "659,-849963,280871,1047,103,260,121,3113,-535,1,96,259,132,3445,-362,-2,97,260,139,3649,-388,1,97,259,120,3114,-339,-23,97,255,132,3372,-374,-174,97,246,120,2903,-64,-88,90,233,120,2823,0,-74,90,227,120,2706,-29,-68,91,218,40,852,39,-26,73,204,61,1112,451,-50,66,198,31,566,223,-24,66,194,40,701,280,-29,66,185,40,670,266,-28,66,176,31,499,199,-21,66,170,40,613,246,-26,66,162,40,589,235,-24,65,156,40,574,244,-25,62,157,40,561,262,-23,64,156,40,612,1,-25,100,154,40,622,-78,-24,97,153,40,611,-72,-24,98,150" + }, + { + "k": "a12aa0", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL1459", + "registration": "N17413", + "type": "B39M", + "squawk": "7273", + "country": "United States" + }, + "p": "660,-849002,275504,1135,291,227,120,-2579,862,7,291,226,128,-2730,909,0,290,224,120,-2528,834,0,290,222,120,-2554,836,1,290,223,132,-2803,911,0,290,224,121,-2589,838,0,290,223,122,-2607,833,1,290,224,121,-2580,823,0,290,226,120,-2603,821,1,290,227,122,-2649,831,0,289,225,121,-2607,810,0,289,225,135,-2919,900,0,289,224" + }, + { + "k": "a66346", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL2654", + "registration": "N510UW", + "type": "A321", + "squawk": "2627", + "country": "United States" + }, + "p": "660,-848715,273814,1046,112,258,120,2893,-1034,0,112,259,132,3194,-1151,0,112,259,139,3370,-1222,-2,112,260,120,2909,-1064,3,112,260,132,3155,-1163,-1,112,256,120,2858,-1063,0,113,258,120,2884,-1079,0,113,259,120,2858,-1076,-30,113,254,132,3038,-1152,-157,113,241,131,2862,-1094,-169,113,228,120,2296,-953,-93,116,202,40,716,-311,-41,116,200" + }, + { + "k": "a3088f", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "FDX1444", + "registration": "N295FE", + "type": "B763", + "squawk": "5661" + }, + "p": "660,-842720,302115,1170,148,255,120,1667,-2332,2,148,253,132,1803,-2540,0,148,251,139,1896,-2684,-1,148,251,120,1622,-2311,2,148,253,132,1803,-2584,1,148,256,120,1638,-2359,-1,149,256,120,1632,-2363,1,149,255,120,1612,-2349,0,149,254,132,1774,-2541,0,144,252,131,1943,-2425,0,145,251,120,1740,-2228,0,145,252,120,1741,-2232,1,145,252" + }, + { + "k": "a5012d", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL3260", + "registration": "N421UW", + "type": "A21N", + "squawk": "0764", + "country": "United States" + }, + "p": "660,-842496,281889,605,97,237,40,942,-114,-51,98,228,40,895,-106,-51,98,220,40,875,-103,-57,98,214,39,846,-102,-56,98,210,61,1250,-186,-73,106,199,32,578,-138,-5,105,180,39,641,-153,0,105,157,40,609,-146,0,105,152,40,603,-144,-1,105,153,40,605,-145,0,105,152,41,613,-148,0,105,152,39,581,-140,0,105,153,92,1380,-336,-2,105,153,40,597,-145,-9,105,151,41,597,-145,-11,105,153,39,595,-145,-11,105,151,42,602,-148,-26,106,145,38,550,-135,-30,105,146,40,567,-140,-30,105,145,40,562,-138,-3,106,141,40,523,-129,-26,105,132,40,479,-119,-9,106,112,41,428,-106,-33,106,104,39,378,-93,-25,105,94,41,361,-92,-18,106,89,40,310,65,-9,31,86,31,67,227,-13,7,78,40,15,253,-16,2,67,40,8,238,-13,2,64,31,6,180,-12,2,64,40,8,233,-13,1,67,37,6,180,-2,2,25" + }, + { + "k": "a6bb97", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "JIA5078", + "registration": "N533AE", + "type": "CRJ7", + "squawk": "1200" + }, + "p": "660,-840516,309870,365,216,167,40,-394,-475,-36,216,161,40,-387,-465,-34,216,155,40,-376,-452,-34,216,151,39,-355,-427,-31,216,149,61,-537,-651,-47,215,141,32,-265,-322,-24,215,134,39,-305,-370,-26,215,123,40,-286,-349,-26,215,117,40,-180,-357,-16,186,100,40,-6,-354,-1,179,97,41,4,-349,-18,179,87,39,3,-284,-18,179,77,92,7,-585,-34,180,65,35,2,-199,-12,180,65" + }, + { + "k": "a85f20", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL799", + "registration": "N63890", + "type": "B739", + "squawk": "3233", + "country": "United States" + }, + "p": "660,-839757,304165,984,126,236,120,2342,-1494,-63,126,233,132,2630,-1686,-66,126,242,139,2781,-1796,-7,127,240,120,2397,-1560,0,127,241,132,2622,-1712,0,127,240,120,2360,-1556,0,127,240,120,2325,-1538,-82,127,229,120,2182,-1453,-143,128,215,40,703,-467,-46,127,212,61,918,-776,-73,137,201,31,432,-375,-5,130,182,40,574,-385,-8,127,172,40,560,-378,-30,128,168,31,418,-284,-24,128,165,40,531,-361,-29,128,162,40,507,-364,-29,137,160,40,338,-489,-31,152,157" + }, + { + "k": "aa7864", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "FDX1409", + "registration": "N774FD", + "type": "B752", + "squawk": "1560", + "country": "United States" + }, + "p": "660,-837739,302991,911,127,239,120,2425,-1567,-63,127,241,132,2667,-1737,0,127,244,139,2817,-1846,0,127,244,120,2392,-1577,0,127,241,132,2602,-1726,0,127,240,120,2342,-1564,-94,127,232,120,2159,-1450,-134,127,214,40,686,-461,-43,128,209,40,649,-474,-47,133,205,40,581,-525,-38,137,198,40,578,-463,-23,129,186,61,901,-609,-56,127,180,31,448,-300,-28,127,178,40,570,-385,-31,128,171,40,504,-389,-10,141,155,31,245,-365,-21,152,152" + }, + { + "k": "a1f1de", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SWA1672", + "registration": "N224WN", + "type": "B737", + "squawk": "1454" + }, + "p": "660,-833693,303544,884,135,255,120,2279,-1972,-35,135,257,132,2476,-2165,0,135,257,139,2605,-2291,0,135,258,120,2255,-1984,0,135,258,132,2417,-2146,-83,136,242,120,1974,-1767,-168,136,219,41,631,-566,-62,136,216,39,596,-556,-36,137,209,40,606,-490,0,128,195,40,623,-421,-37,127,188,40,603,-405,-41,127,182,40,583,-392,-38,128,177,40,538,-378,-13,135,160,61,493,-725,-41,152,152" + }, + { + "k": "a411d3", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UPS1340", + "registration": "N361UP", + "type": "B763", + "squawk": "4564" + }, + "p": "660,-825275,279723,0,186,9,39,-1,-40,0,183,13,80,-12,16,0,2,59,40,-21,275,55,353,84,61,-527,277,82,249,141,32,-291,-299,76,196,145,39,100,-500,87,157,149,40,248,-504,61,156,157,40,265,-540,27,157,173,40,289,-600,91,156,185,41,305,-639,98,157,193,131,1173,-2221,83,145,230,120,1640,-1976,0,144,226,120,1613,-1969,1,144,226,120,1611,-1974,0,144,226,120,1611,-1982,0,144,226,152,2035,-2517,0,144,226" + }, + { + "k": "a6a30e", + "m": { + "kind": "helicopter", + "layer": "flights", + "callsign": "N527BF", + "registration": "N527BF", + "type": "EC35", + "squawk": "0216", + "helicopter": true + }, + "p": "660,-824255,279124,26,150,68,40,139,-216,0,151,68,40,136,-216,0,151,68,40,135,-215,0,151,69,39,133,-215,0,151,69,61,217,-322,-5,139,61,32,68,-128,-3,202,44,39,-44,28,-10,21,16,31,12,26,-6,23,4,1004,-8,16,5,330,20,40,-67,111,11,331,46,40,-114,159,3,328,55,40,-118,162,6,326,57,40,-129,179,0,328,59,40,-128,179,-1,328,59" + }, + { + "k": "a696d5", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SCX3046", + "registration": "N5233A", + "type": "B738", + "squawk": "5732", + "country": "United States" + }, + "p": "660,-820846,279891,30,88,71,40,290,1,-16,89,71" + }, + { + "k": "a56ddc", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UPS1352", + "registration": "N449UP", + "type": "B752", + "squawk": "1630" + }, + "p": "660,-820651,304724,1264,193,245,120,-573,-2602,1,186,246,132,-274,-2924,1,184,246,139,-276,-3028,-144,185,244,120,-245,-2668,-219,185,250,132,-269,-2939,-242,185,236,40,-77,-825,-63,185,229,41,-76,-826,-68,185,224,39,-72,-789,-64,185,219,40,-55,-774,-54,182,214,41,2,-771,-7,179,212,39,14,-761,0,179,213,40,-19,-758,-45,186,206,40,-180,-711,-19,195,203,40,-224,-698,-18,196,191,40,-196,-596,-11,196,155,61,-246,-783,-44,195,146,31,-120,-391,-37,195,147,40,-158,-512,-42,195,146,40,-159,-508,-33,195,145,31,-121,-390,-4,196,142,40,-146,-467,-13,193,129,41,-40,-445,-16,181,118,39,-8,-420,-26,181,117,40,-152,-382,-20,216,112,40,-273,-335,1,216,115,40,-344,-250,-1,265,112,40,-342,152,1,343,97" + }, + { + "k": "a4e714", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DAL146", + "registration": "N415DX", + "type": "A339", + "squawk": "3017", + "country": "United States" + }, + "p": "660,-818741,274552,1208,349,245,120,-552,2585,-1,349,242,132,-609,2828,0,349,244,139,-651,3014,-1,349,244,120,-564,2596,0,349,246,132,-626,2865,0,349,244,120,-567,2582,-1,349,244,120,-571,2585,0,349,246,120,-574,2586,-1,349,240,132,-623,2792,0,349,242,131,-629,2807,-1,349,241,120,-578,2559,0,349,244,120,-588,2590,-1,349,244" + }, + { + "k": "a73e63", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AJT400", + "registration": "N566NC", + "type": "B763", + "squawk": "4044" + }, + "p": "660,-817701,306311,1167,157,247,120,1189,-2464,0,157,247,132,1298,-2706,0,157,248" + }, + { + "k": "ac9b01", + "m": { + "kind": "helicopter", + "layer": "flights", + "callsign": "N911GJ", + "registration": "N911GJ", + "type": "H500", + "squawk": "0225", + "helicopter": true, + "country": "United States", + "ga": true + }, + "p": "660,-816410,282171,41,278,37,39,-69,68,2,343,25,40,60,54,0,97,29,41,86,-91,1,171,39,39,-79,-103,-1,279,38,61,-15,122,-2,30,24,32,69,12,1,127,30,39,14,-127,1,212,38,40,-105,23,-1,343,28,40,24,77,1,32,23,40,79,1,0,149,34,41,-23,-116,0,248,38,39,-72,65,0,356,25,92,44,-16,1,261,41,40,-48,81,-1,26,25,39,85,9,0,141,32,41,-64,-87,0,283,34,42,-28,84,-2,37,25,38,90,-12,0,147,33,40,-77,-55,-1,311,30,40,8,79,0,56,24,40,80,-64,3,184,41,40,-42,-110,15,201,31,41,15,-131,5,159,46,39,41,-184,-4,177,54,41,10,-193,0,177,53,40,15,-189,0,176,52,31,10,-145,0,177,53,39,13,-187,0,177,52,40,12,-188,0,177,52,32,-57,-134,0,229,54,40,-162,-139,-1,227,55,39,-158,-135,-3,226,56,40,-155,-132,-4,226,49,41,-143,-122,0,226,48,40,-132,-113,1,226,45,40,-140,-120,-9,226,48,40,-138,-117,-9,226,47" + }, + { + "k": "ac8609", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "MTN8385", + "registration": "N906FX", + "type": "AT43", + "squawk": "1611" + }, + "p": "700,-852207,311832,485,136,150,40,490,-340,-22,125,150,40,504,-319,-20,127,150,39,497,-325,-21,127,151,61,758,-500,-32,127,150,32,393,-259,-17,127,150,39,495,-323,-21,127,149,41,497,-323,-20,127,147,39,480,-319,-23,128,144,40,458,-307,-22,127,134,41,444,-292,-24,127,130,39,418,-277,-22,127,128,92,949,-640,-54,128,124,40,413,-272,-23,127,127,40,419,-278,-23,128,129,40,430,-287,-23,128,128,42,436,-295,-23,128,127,38,377,-268,-4,140,117,40,139,-386,-6,182,112,40,10,-395,-22,181,102,41,-1,-328,-4,179,75,39,6,-236,-22,178,59,41,-3,-202,-8,179,55,39,4,-204,-8,180,61,41,2,-211,-13,179,57" + }, + { + "k": "a4b065", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL1471", + "registration": "N401AN", + "type": "A21N", + "squawk": "3540" + }, + "p": "699,-830811,311992,1106,144,255,120,1895,-2218,-1,144,257,133,2092,-2467,1,144,256,139,2180,-2583,-32,144,254,152,2348,-2809,-53,144,253,120,1845,-2218,-11,144,255,120,1861,-2249,0,144,257,120,1850,-2249,0,144,257" + }, + { + "k": "a500a3", + "m": { + "kind": "helicopter", + "layer": "flights", + "callsign": "N421PH", + "registration": "N421PH", + "type": "B407", + "helicopter": true, + "squawk": "1200" + }, + "p": "817,-973420,311779,72,200,59,72,-160,-364,0,200,60,41,-87,-205,0,200,60,40,-90,-201,0,201,59,40,-86,-199,0,200,59,40,-83,-200,0,201,59,39,-98,-189,0,204,59,41,-105,-200,0,200,59,39,-77,-198,0,200,59,73,-152,-361,0,198,59,40,-77,-199,0,199,59,39,-79,-201,0,199,59,41,-82,-203,0,200,59,41,-91,-205,0,203,59,39,-95,-190,0,201,59,40,-85,-200,0,200,59,39,-87,-196,0,201,59,41,-90,-201,0,201,59,40,-86,-199,0,201,58,40,-87,-196,0,201,58,40,-89,-195,0,201,58,40,-83,-199,0,199,58,51,-110,-250,0,201,58,40,-88,-196,0,201,58,71,-152,-352,0,202,59,41,-88,-198,0,200,59,39,-84,-195,0,201,58,41,-87,-199,0,200,58,39,-84,-191,0,200,58,41,-82,-200,0,200,57,40,-88,-192,0,201,58,39,-83,-195,0,201,58" + }, + { + "k": "a9678b", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "N705EF", + "registration": "N705EF", + "type": "C182", + "squawk": "7014" + }, + "p": "946,-815019,303525,33,28,43,105,5,350,37,302,53,40,-161,129,13,339,51,40,70,147,3,54,48" + }, + { + "k": "a8c329", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "LRC661", + "registration": "N664AV", + "type": "A320", + "squawk": "7105" + }, + "p": "1032,-815200,306909,1071,212,235,139,-1819,-2499,0,212,234,132,-2158,-2027,0,223,232,120,-1999,-1846,1,223,237,120,-2012,-1871,0,223,237,120,-2005,-1873,1,223,238,132,-2206,-2072,0,223,240,131,-2201,-2081,1,223,240,120,-1999,-1900,0,223,240,120,-1992,-1905,0,223,240" + }, + { + "k": "a35e5b", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VELUX41", + "registration": "N316NV", + "type": "A319", + "squawk": "2477" + }, + "p": "1070,-977482,262616,92,287,121,38,-485,132,57,287,139,134,-1945,522,211,287,172,40,-679,181,55,286,181,39,-704,187,48,286,188,121,-1799,1118,100,324,195,120,-1430,1742,134,323,204" + }, + { + "k": "a2b134", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL438", + "registration": "N27267", + "type": "B38M", + "squawk": "6074" + }, + "p": "1131,-815026,263579,1145,295,228,132,-2734,1149,0,292,229,121,-2573,929,0,292,230,139,-2970,1068,0,292,230,121,-2589,923,0,292,230,120,-2578,913,-1,291,229,122,-2604,917,0,291,226,120,-2547,888,0,291,224,120,-2532,880,0,291,226" + }, + { + "k": "a47e89", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UPS782", + "registration": "N389UP", + "type": "B763", + "squawk": "6765" + }, + "p": "1150,-964686,311697,1158,224,248,132,-2367,-2128,-1,224,247,121,-2152,-1946,-6,224,247,139,-2467,-2244,-211,223,247,120,-2042,-1874,-151,223,232,131,-2106,-1937,-166,223,219,40,-623,-579,-56,223,217,51,-777,-719,-64,223,213,41,-602,-559,-50,223,209,40,-590,-539,-40,228,203,40,-697,-355,-33,249,188,39,-679,-228,-40,249,174,41,-658,-218,-19,249,162,40,-593,-172,-18,254,146,40,-598,-141,-36,256,150" + }, + { + "k": "34758d", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "GES041Z", + "registration": "EC-OBZ", + "type": "GLF6", + "ladd": true, + "squawk": "2472" + }, + "p": "1171,-856181,253547,1369,71,270,152,3805,1266,0,66,269,140,3409,1406,-1,66,269,120,2934,1201,0,66,268,120,2935,1193,0,66,269,132,3227,1302,-1,66,271,131,3246,1300,0,66,270,120,2969,1179,0,66,270" + }, + { + "k": "a9b6d0", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "N725HB", + "registration": "N725HB", + "type": "BE58", + "squawk": "1200" + }, + "p": "1243,-834482,311407,15,49,63,60,124,321,44,354,68,40,-25,245,28,357,67" + }, + { + "k": "a8dff1", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "FDX1465", + "registration": "N671FE", + "type": "A306", + "squawk": "5617" + }, + "p": "1405,-859622,311934,1110,143,264,138,2277,-2587,0,143,259,120,1954,-2230,0,143,260,132,2141,-2460,0,143,262,131,2147,-2484,0,143,260,120,1923,-2239,0,143,260,120,1941,-2277,0,143,262" + }, + { + "k": "a271b0", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "MXY353", + "registration": "N257BZ", + "type": "BCS3", + "squawk": "7201" + }, + "p": "1462,-984993,310896,1126,100,237,120,2919,-451,0,100,236,120,2921,-459,-1,100,237,131,3211,-513,0,101,239,132,3231,-524,0,101,239,120,2945,-485,0,101,241" + }, + { + "k": "a13767", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "FDX1410", + "registration": "N178FE", + "type": "B763", + "squawk": "1674" + }, + "p": "1463,-853551,311962,1110,133,264,120,2404,-1960,-1,134,264,120,2397,-1966,0,134,264,132,2411,-2345,0,139,265,131,2355,-2370,-1,139,264,120,2148,-2169,-30,139,260" + }, + { + "k": "a2cb14", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL63", + "registration": "N27959", + "type": "B789", + "squawk": "6067" + }, + "p": "1483,-815034,262937,1210,293,240,120,-2665,998,0,293,240,121,-2678,995,-1,292,240,151,-3362,1240,1,292,241,131,-2911,1064,-1,292,238,120,-2655,963,0,292,239" + }, + { + "k": "ab6ea5", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL962", + "registration": "N836AA", + "type": "B789", + "squawk": "6036" + }, + "p": "1543,-815145,268863,1270,297,239,121,-2582,1164,0,297,240,131,-2821,1263,0,297,239,131,-2838,1262,0,296,239,120,-2585,1142,0,296,237,120,-2578,1131,0,296,238" + }, + { + "k": "a10d7f", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UPS1346", + "registration": "N167UP", + "type": "A306", + "squawk": "6745" + }, + "p": "1564,-835079,311787,1106,165,254,139,988,-3108,0,165,256,132,932,-2948,0,165,261,131,925,-2954,1,165,258,120,832,-2666,1,165,254" + }, + { + "k": "ad36c8", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL2777", + "registration": "N950XV", + "type": "A21N", + "squawk": "1030" + }, + "p": "1622,-984567,307696,1128,100,245,151,3763,-660,-1,102,244,132,3271,-620,-1,102,244,120,2975,-573,0,103,245,120,2993,-582,0,103,246" + }, + { + "k": "a7f684", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DAL2069", + "registration": "N612DN", + "type": "A21N", + "squawk": "6051" + }, + "p": "1703,-855072,311952,1108,123,252,132,2917,-1654,-30,124,254,131,2879,-1647,-34,124,250,120,2628,-1510,-2,124,253" + }, + { + "k": "adc532", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL2263", + "registration": "N987AN", + "type": "B738", + "squawk": "0734" + }, + "p": "1722,-984711,306249,1126,101,244,162,4054,-712,0,102,244,121,2989,-535,0,102,243,120,2965,-536,-1,102,242" + }, + { + "k": "aa7e9b", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL1702", + "registration": "N77544", + "type": "B39M", + "squawk": "1442" + }, + "p": "1724,-852672,311974,979,139,248,151,2583,-2550,-2,139,249,131,2223,-2210,0,139,248,120,1997,-1997,0,139,242" + }, + { + "k": "aabff4", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "FDX1481", + "registration": "N792FD", + "type": "B752", + "squawk": "1506" + }, + "p": "1724,-852101,311870,509,128,214,40,712,-478,-54,128,213,31,530,-356,-41,128,207,40,677,-455,-50,128,204,40,666,-447,-30,128,189,31,461,-311,-9,128,173,40,538,-363,-9,128,157,40,492,-331,-18,128,147,40,479,-323,-27,128,145,40,472,-322,-26,128,141,40,457,-310,-24,128,138,40,449,-304,-24,128,134,40,434,-295,-22,128,132" + }, + { + "k": "0d0e29", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AMX689", + "registration": "XA-DAO", + "type": "B38M", + "squawk": "6534" + }, + "p": "1772,-949567,311089,1155,207,250,133,-1559,-2646,0,207,249,120,-1407,-2406,1,207,249,120,-1399,-2396,0,207,249" + }, + { + "k": "a870e2", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "FDX52", + "registration": "N643FE", + "type": "MD11", + "squawk": "1412" + }, + "p": "1774,-815013,301214,1206,309,239,132,-2537,1781,-1,309,238,120,-2309,1612,-2,309,238,120,-2325,1616,1,309,239" + }, + { + "k": "a4bcca", + "m": { + "kind": "helicopter", + "layer": "flights", + "callsign": "N404PH", + "registration": "N404PH", + "type": "B407", + "squawk": "0267", + "helicopter": true + }, + "p": "1833,-977268,302904,20,198,5,51,75,-106,23,123,47,41,201,-105,0,120,59,40,206,-113,1,123,59,40,205,-115,0,123,58,39,199,-113,0,123,58,41,204,-112,0,122,58,40,205,-110,0,123,57,40,203,-111,0,123,57" + }, + { + "k": "ad763b", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "LRC655", + "registration": "N976AV", + "type": "A20N", + "squawk": "5641" + }, + "p": "1835,-826146,311608,1069,194,244,131,-782,-2793,2,194,242,120,-1030,-2416,0,209,240" + }, + { + "k": "a54852", + "m": { + "kind": "helicopter", + "layer": "flights", + "callsign": "N44AP", + "registration": "N44AP", + "type": "B407", + "squawk": "5325", + "helicopter": true, + "ladd": true + }, + "p": "1884,-948148,300600,19,263,47,41,-201,-11,8,265,54,40,-233,-10,0,270,56,40,-232,2,1,269,56,39,-231,-5,-1,269,56,41,-236,-4,0,270,56,40,-235,-1,0,269,57,40,-234,-5,0,269,57" + }, + { + "k": "a3b066", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "CXK370", + "registration": "N337G", + "type": "P28A", + "squawk": "1406", + "ladd": true + }, + "p": "1966,-818586,265895,10,52,34,40,7,103,16,338,31,40,-37,124,4,349,41,40,-26,149,-1,353,42,41,-8,158,-2,359,44,39,-10,150,3,359,40" + }, + { + "k": "a37efc", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UPS1338", + "registration": "N324UP", + "type": "B763", + "squawk": "6653" + }, + "p": "1986,-843957,311762,1103,180,262,120,-3,-2822,-1,180,261" + } + ] +} diff --git a/mobile/demo/history/index.json b/mobile/demo/history/index.json new file mode 100644 index 000000000..10300116b --- /dev/null +++ b/mobile/demo/history/index.json @@ -0,0 +1,30 @@ +{ + "format": "gev-history-index/1", + "capturedAt": { + "start": "2026-10-23T08:25:37.000Z", + "end": "2026-10-23T09:02:03.000Z" + }, + "regions": [ + { + "id": "nyc", + "label": "New York area", + "bbox": { "west": -76.5, "south": 39.4, "east": -71.2, "north": 42.2 }, + "file": "nyc.json", + "tracks": 47 + }, + { + "id": "london", + "label": "London and the North Sea approaches", + "bbox": { "west": -2.6, "south": 50.2, "east": 5.6, "north": 53.6 }, + "file": "london.json", + "tracks": 500 + }, + { + "id": "gulf", + "label": "Gulf of Mexico", + "bbox": { "west": -98.5, "south": 23.5, "east": -81.5, "north": 31.2 }, + "file": "gulf.json", + "tracks": 78 + } + ] +} diff --git a/mobile/demo/history/london.json b/mobile/demo/history/london.json new file mode 100644 index 000000000..802e8a25a --- /dev/null +++ b/mobile/demo/history/london.json @@ -0,0 +1,6007 @@ +{ + "format": "gev-history/1", + "region": "london", + "label": "London and the North Sea approaches", + "bbox": { "west": -2.6, "south": 50.2, "east": 5.6, "north": 53.6 }, + "capturedAt": { + "start": "2026-10-23T08:25:37.000Z", + "end": "2026-10-23T09:02:03.000Z" + }, + "source": "adsb.lol (ODbL) · adsb.lol military (ODbL) · God’s Eye dev server (OpenSky / adsb.lol)", + "note": "Real recorded positions (adsb.lol point snapshots around each anchor, OpenSky / adsb.lol via the dev server as a fallback). Timestamps are the true capture times and are never shifted.", + "t0": 1792743937, + "tracks": [ + { + "k": "ab8fcb", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL54", + "registration": "N844MC", + "type": "B789", + "squawk": "5145" + }, + "p": "653,-25944,514157,741,96,242,120,4029,-268,-121,96,228,40,1274,-92,-39,97,222,40,1256,-93,-39,97,217,31,945,-68,-32,96,213,40,1223,-87,-42,97,210,41,1193,-88,-42,97,206,40,1146,-86,-27,97,196,40,1099,-83,-18,97,191,40,1027,-80,-1,97,172,40,927,-68,-26,95,152,40,816,-117,-13,108,142,71,1350,-288,-21,107,139,40,781,-22,0,82,136,40,761,58,0,83,135,40,772,59,-1,83,136,40,779,59,-10,83,136,40,759,57,-19,83,133,41,771,60,-1,83,133,39,762,36,0,92,136,40,765,-22,-10,92,132,40,662,-176,-18,146,134,40,-47,-452,-3,220,134,40,-687,-104,-15,292,128,41,-472,344,-15,328,127,50,-478,486,0,336,126,41,-39,438,0,3,123,40,-259,385,0,301,126,31,-547,-9,0,241,131,40,-627,-280,0,234,130,40,-626,-242,1,259,129,40,-721,75,-6,284,128,40,-704,110,-16,284,121,41,-619,93,-16,283,104,39,-567,86,-15,284,101,40,-495,150,-6,333,95" + }, + { + "k": "40808c", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VIR74W", + "registration": "G-VNVR", + "type": "A35K", + "squawk": "5162" + }, + "p": "653,-24526,532636,78,52,98,40,427,205,-21,52,87,40,365,175,-17,51,71,40,327,159,-14,51,70,40,320,154,-14,51,67,40,211,103,-12,51,17,30,31,32,0,51,11,62,53,31,0,51,11,40,59,28,0,51,11,60,-8,31,0,321,8" + }, + { + "k": "43c8eb", + "m": { + "kind": "military", + "layer": "military", + "callsign": "SYS150", + "registration": "ZM517", + "type": "EC35", + "squawk": "7421", + "helicopter": true, + "military": true, + "country": "United Kingdom" + }, + "p": "610,-23722,528062,26,349,45,361,-462,64,-2,226,33,41,-141,-97,0,272,41,318,147,95,11,0,0,39,-139,-71,-10,202,36,35,-83,42,-4,344,36,268,90,-51,4,238,36,254,-40,81,-1,279,46,161,163,-41,-1,249,33,34,-179,-16,1,324,45" + }, + { + "k": "4cad7f", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EIN156", + "registration": "EI-NSF", + "type": "A20N", + "squawk": "1425" + }, + "p": "653,-23626,530345,986,125,231,120,2556,-1930,-18,148,225,132,2280,-2196,-107,148,214,121,1909,-1864,-107,148,194,120,1889,-1582,-96,137,177,90,1546,-1024,-84,138,169,40,646,-450,-43,139,167,40,535,-486,-36,149,164,40,488,-499,-35,149,161,41,484,-501,-36,149,161,39,528,-448,-12,139,147,41,534,-390,-16,140,138,39,506,-366,-13,138,138,40,692,-254,-1,117,138,40,710,-220,-12,117,137,40,707,-217,-18,116,134,40,692,-214,-14,116,133,41,692,-214,-17,116,133,50,854,-285,-1,132,134,41,106,-452,0,209,138,40,-687,-141,0,289,134,31,-535,163,0,296,132,40,-682,229,-17,313,131,40,-102,426,-12,27,129,40,637,168,-1,103,130,40,680,-198,-12,116,129,40,631,-234,-19,142,129,40,102,-454,0,182,131,40,-23,-476,0,182,132" + }, + { + "k": "4075ff", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SHT2P", + "registration": "G-NEOR", + "type": "A21N", + "squawk": "6464", + "country": "United Kingdom" + }, + "p": "653,-23510,533125,31,51,78,40,354,171,-16,51,75,40,275,133,-15,51,33,40,47,46,0,51,11,40,49,23,0,51,11,40,62,30,0,51,10,31,-10,20,0,321,9,100,-50,58,0,318,9" + }, + { + "k": "406a63", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EXS050B", + "registration": "G-GDFW", + "type": "B738", + "squawk": "0272" + }, + "p": "652,-22859,533444,0,51,19,41,41,38,0,51,11,39,46,22,0,51,10,40,50,25,0,42,10,176,-78,89,0,318,9" + }, + { + "k": "4bb28e", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "THY2CT", + "registration": "TC-LTN", + "type": "A21N", + "squawk": "6616" + }, + "p": "653,-22732,533523,0,51,10,60,-5,28,0,321,8" + }, + { + "k": "406ec7", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW2X", + "registration": "G-XLEL", + "type": "A388", + "squawk": "7022" + }, + "p": "653,-21466,528285,941,157,225,120,1556,-2164,-124,155,210,132,2260,-1919,-103,138,185,121,2103,-1434,-85,138,173,59,970,-667,-37,138,167,40,638,-454,-33,140,167,40,627,-452,-26,140,164,71,1106,-797,-52,139,162,41,615,-442,-27,140,159,39,596,-434,-27,140,159,40,594,-430,-25,140,156,40,584,-426,-23,140,153,40,700,-294,-12,115,142,41,720,-217,-12,117,135,39,681,-211,-20,116,132,41,687,-211,-15,116,131,39,673,-207,-17,116,130,40,667,-206,-14,117,125,40,577,-250,0,152,127,41,-151,-427,0,232,133,50,-873,53,0,297,129,41,-685,207,0,296,129,40,-359,353,-13,7,123,31,294,267,-15,62,121,40,680,-47,-2,118,123,40,638,-199,-1,115,126,40,430,-341,-6,176,129,40,1,-464,-21,180,130,40,8,-468,-3,180,130,40,-397,-350,0,255,128,40,-728,-36,-15,267,126" + }, + { + "k": "a8f77c", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL146", + "registration": "N677UA", + "type": "B763", + "squawk": "5141" + }, + "p": "653,-21264,526296,894,135,223,120,2674,-1659,-127,135,209,132,2635,-1650,-100,136,177,80,1395,-897,-73,138,167,39,633,-447,-34,139,168,41,641,-461,-27,140,166,40,634,-457,-28,139,163,40,609,-438,-26,140,162,39,598,-432,-26,140,160,53,782,-569,-22,139,158,39,589,-427,-42,140,155,40,641,-381,-32,121,154,40,756,-241,-16,116,139,40,710,-214,-29,116,134,40,695,-212,-23,116,133,41,697,-215,-20,117,131,39,660,-205,-11,117,126,40,610,-235,1,144,128,40,-33,-434,0,220,134,40,-713,-84,0,296,133,40,-266,388,0,16,126,41,569,232,1,87,126,50,792,-193,-1,157,128,41,-213,-431,-9,231,134,40,-638,-262,-20,235,132,31,-477,-208,-7,236,128,40,-689,-180,-10,252,128,40,-718,-90,-10,260,125,40,-653,-118,-9,245,113,40,-559,-164,-5,245,104,40,-470,-213,-8,199,104,40,-17,-377,-13,179,105,40,353,-252,-11,98,102" + }, + { + "k": "43c5dc", + "m": { + "kind": "military", + "layer": "military", + "callsign": "CONTR70", + "registration": "ZM402", + "type": "A400", + "squawk": "2603", + "military": true, + "country": "United Kingdom" + }, + "p": "653,-20277,510457,80,90,111,40,622,21,0,77,103,40,446,158,0,54,88,40,357,173,-2,52,75,40,311,174,-17,47,71,40,310,180,-14,47,72,31,241,130,-13,51,72,36,289,140,-13,50,68" + }, + { + "k": "484f80", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM80X", + "registration": "PH-EZX", + "type": "E190", + "squawk": "6343" + }, + "p": "652,-20066,514900,688,98,209,121,3646,-330,121,98,215,132,4071,499,113,72,221,121,3525,1121,64,62,232,120,3776,907,60,77,237,130,4392,645,3,77,239,121,4051,581,0,77,240,121,4119,574,0,77,237,120,4043,549,-20,78,236,129,4295,565,-112,78,232,132,4242,543,-118,78,221,121,3673,456,-109,79,205,122,3081,1003,-76,52,194,37,843,401,-32,53,193" + }, + { + "k": "4ca302", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR5ZV", + "registration": "EI-DLW", + "type": "B738", + "squawk": "6207", + "country": "Ireland" + }, + "p": "653,-19469,533261,953,329,230,120,-2725,1774,-1,294,228" + }, + { + "k": "4b028d", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SWR3AV", + "registration": "HB-AZD", + "type": "E290", + "squawk": "2034", + "country": "Switzerland" + }, + "p": "653,-19402,527913,662,146,204,120,2078,-1875,112,146,215,132,2369,-2164,95,146,226,121,2222,-2052,96,146,228,120,2417,-1932,89,125,230,130,3876,-1278,58,118,242,120,3751,-1235,1,118,244,120,3684,-1232,0,118,243,120,3693,-1252,0,119,243,131,3978,-1371,1,119,242,132,4312,-945,0,100,247,121,4189,-487,1,101,247,121,3960,-918,1,119,243" + }, + { + "k": "4ca8e7", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR44BM", + "registration": "EI-ENV", + "type": "B738", + "squawk": "4420", + "country": "Ireland" + }, + "p": "653,-18261,517478,1144,296,222,120,-3415,1055,-1,298,220,132,-3728,1207,-17,297,220" + }, + { + "k": "48548e", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM48F", + "registration": "PH-EXL", + "type": "E75L", + "squawk": "6341", + "country": "Kingdom of the Netherlands" + }, + "p": "653,-17845,534626,339,98,175,40,1059,-92,51,98,179,40,1069,-94,51,98,182,40,1104,-97,45,98,186,40,1110,-100,43,99,190,40,1125,-151,39,105,194,31,896,-139,20,105,202,121,3567,-580,124,105,203,120,3588,-573,82,105,211,131,4140,-690,52,106,224,120,3979,-620,45,105,232,120,4027,-635,49,105,234,121,4060,-655,46,105,235,120,4078,-674,30,105,241,142,4859,-824,-31,106,235,120,3794,-659,-148,106,205,120,3362,-454,-147,102,186" + }, + { + "k": "48c2a0", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR4VA", + "registration": "SP-RZA", + "type": "B38M", + "squawk": "3474" + }, + "p": "653,-17613,533082,1110,99,245,120,4318,-442,0,100,244,132,4736,-496,0,100,242,122,4318,-475,1,101,242,137,4903,-556,0,101,242,132,4682,-550,0,101,243,120,4253,-522,1,102,243,120,4224,-535,0,103,241,120,4165,-623,0,104,242,132,4578,-687,1,104,244,132,4633,-725,0,105,246,121,4258,-683,0,105,245,120,4196,-687,1,105,244" + }, + { + "k": "407f7b", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EXS78E", + "registration": "G-JZDA", + "type": "B738", + "squawk": "2201", + "country": "United Kingdom" + }, + "p": "653,-17512,505632,1050,213,223,120,-2059,-2007,1,213,222" + }, + { + "k": "4ca61e", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR63XL", + "registration": "EI-DWR", + "type": "B738", + "squawk": "5430" + }, + "p": "653,-17371,532270,530,325,195,120,-2791,1103,136,286,208,132,-4172,728,117,286,227" + }, + { + "k": "40665e", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "TOM988P", + "registration": "G-TAWC", + "type": "B738", + "squawk": "6026" + }, + "p": "653,-17037,525261,188,95,121,40,676,-131,16,119,130,40,461,-409,38,151,141,40,419,-451,30,150,147,40,441,-463,31,150,148,40,445,-464,18,149,152,31,354,-361,0,149,151,40,463,-470,0,149,151,41,461,-476,-2,149,152,40,448,-466,-29,150,150,39,430,-455,-29,149,147,41,434,-457,-1,150,146,40,421,-449,-26,150,145,40,431,-443,-20,146,143,71,850,-741,-26,145,136,40,428,-373,1,144,125,40,419,-361,-1,144,118,40,418,-277,1,112,104,40,569,-55,-1,85,100,40,575,35,-6,77,102,41,573,122,-23,70,103,39,553,96,-25,77,101,41,561,95,-21,73,98,39,519,93,-20,75,89,40,468,80,-18,74,78,40,391,69,-15,75,64,40,337,58,-13,74,60,51,438,75,-16,74,64,40,350,61,-10,74,51" + }, + { + "k": "405ee1", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SHT4A", + "registration": "G-EUYD", + "type": "A320", + "squawk": "6220", + "country": "United Kingdom" + }, + "p": "653,-16508,532841,956,329,234,120,-2153,2167,-1,329,234" + }, + { + "k": "4080b6", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW18A", + "registration": "G-ZBLI", + "type": "B78X", + "squawk": "6311" + }, + "p": "653,-15367,513412,412,97,153,40,857,-66,-22,97,150,40,859,-64,-17,97,149,40,833,-65,-15,97,146,40,821,-64,-17,96,141,40,801,-27,-16,90,139,31,621,-5,-11,91,138,41,799,-7,-16,91,137,40,788,-8,-9,91,136,40,771,-9,1,91,135,39,769,-9,0,91,136,41,787,-9,-2,91,136,40,775,-11,1,91,132,40,775,-7,0,91,134,71,1382,-43,0,94,133,40,724,-97,0,128,135,40,165,-443,-1,205,139,40,-660,-197,-12,283,134,41,-516,320,-17,327,128,39,-389,385,-1,327,128,41,-187,439,0,1,128,39,-21,451,-10,342,127,40,-587,222,-15,263,130,40,-639,-233,-4,234,130,40,-604,-276,0,234,131,40,-683,-119,0,282,127,41,-711,112,-19,284,125,50,-828,128,-15,284,108,41,-575,87,-11,284,98,40,-490,149,-9,310,95,31,-164,237,-7,1,96,40,141,327,-6,50,98,40,508,163,-8,64,100,40,550,82,-11,88,100,40,559,4,-11,89,92,40,524,3,-21,89,88,40,493,3,-19,90,85,40,482,3,-17,90,83" + }, + { + "k": "400fa4", + "m": { + "kind": "helicopter", + "layer": "flights", + "callsign": "SSP22", + "registration": "G-LCPX", + "type": "EC55", + "squawk": "7000", + "helicopter": true + }, + "p": "651,-15361,510831,93,42,34,40,334,172,0,50,37,40,316,176,-6,49,38,40,313,172,-6,49,38,39,297,168,0,48,37,41,317,174,0,49,37,31,246,137,0,49,38,40,306,169,0,48,37,40,310,172,0,48,37,42,323,177,-6,49,38,38,302,166,-9,49,38,41,303,170,0,48,36,39,309,166,0,50,37,42,321,177,1,50,37,70,530,293,0,49,37,42,328,181,0,49,37,39,326,144,0,56,36,41,348,142,0,55,37,39,205,218,0,27,38,39,211,208,0,28,37,42,245,216,0,36,36,39,243,194,0,38,36,40,227,206,0,35,36,38,231,204,0,35,37,40,237,202,0,35,37,36,207,180,0,35,34,47,265,242,0,35,34,45,269,226,0,0,0,46,493,-395,0,0,0,39,155,710,0,0,0,35,360,2,-12,0,0,30,321,8,-3,0,0,30,314,6,1,0,0,36,286,-130,0,0,0,52,220,-271,-11,0,0" + }, + { + "k": "4cae90", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR10BF", + "registration": "EI-IKA", + "type": "B38M", + "squawk": "1440", + "country": "Ireland" + }, + "p": "653,-14856,515896,544,287,207,40,-1147,212,35,286,210,120,-3363,941,99,300,219,132,-3680,1297,111,300,221" + }, + { + "k": "4cade2", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR2BW", + "registration": "EI-IGW", + "type": "B38M", + "squawk": "0501", + "country": "Ireland" + }, + "p": "653,-14767,509172,639,211,217,120,-1926,-2067,80,210,227,132,-2191,-2377,86,210,234,140,-2698,-2295,93,221,233" + }, + { + "k": "486494", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM1042", + "registration": "PH-NXK", + "type": "E295", + "squawk": "6326" + }, + "p": "653,-14735,525085,339,99,142,40,833,-80,30,99,145,40,852,-81,13,99,148,40,877,-84,38,99,150,40,877,-86,54,99,155,40,926,-91,48,99,162,31,721,-71,28,99,162,40,969,-96,47,99,167,120,3086,-313,108,100,187,121,3388,-353,95,100,202,131,4034,-82,95,92,215,120,3805,-43,81,91,220,120,3975,-74,55,92,230,120,4086,-54,16,91,236,132,4612,190,-75,83,236,131,4436,343,-160,83,223,120,3809,279,-140,83,209,60,1824,129,-72,83,203,40,1152,81,-38,84,193,40,1108,75,-48,84,188" + }, + { + "k": "4caada", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EAI7S", + "registration": "EI-FAV", + "type": "AT76", + "squawk": "7751", + "country": "Ireland" + }, + "p": "652,-14121,510493,228,197,143,41,-242,-496,0,197,142,40,-240,-485,-6,197,141,40,-226,-480,-21,196,140,40,-226,-492,-23,196,140,40,-209,-483,-27,193,139,31,-5,-388,-21,175,141,40,506,-331,-27,94,125,40,433,216,-21,10,92,41,-39,311,0,353,82,39,43,270,1,19,75,41,139,253,-12,20,72,39,122,217,-14,19,58,41,101,190,-10,19,53,71,182,323,-19,20,56,40,104,185,-13,19,57,41,108,197,-15,20,46,57,14,25,0,200,9" + }, + { + "k": "440141", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EJU68MR", + "registration": "OE-IJX", + "type": "A320", + "squawk": "0534", + "country": "Austria" + }, + "p": "653,-13780,521560,1018,145,224,120,2212,-1989,-1,146,225,132,2414,-2203,2,146,225,121,2222,-2044,0,146,227,120,2160,-2016,1,146,225,130,2340,-2206,0,146,227,120,2135,-2034,1,147,225,120,2199,-1989,-58,141,224,120,2341,-1853,-90,143,220,131,2328,-2118,-128,144,228" + }, + { + "k": "4ca763", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR5WL", + "registration": "EI-EFH", + "type": "B738", + "squawk": "2032" + }, + "p": "653,-13061,528314,28,88,85,40,507,-22,51,96,88,40,446,-148,44,133,94,40,434,-285,34,155,118,40,-52,-470,35,198,144,40,-513,-421,40,220,146,31,-430,-319,44,219,148,40,-489,-470,39,210,164,41,-513,-558,34,209,181,40,-519,-577,52,208,187,39,-515,-599,50,208,192,41,-526,-615,49,208,194,40,-544,-620,37,209,196,40,-531,-628,20,199,198,131,938,-2343,111,162,213,120,1163,-2241,102,162,223,120,1129,-2300,93,175,225,120,-880,-2321,77,199,226,132,-1386,-2593,65,199,235,131,-1387,-2603,79,198,231,120,-1216,-2347,30,197,231,120,-1150,-2376,1,197,232" + }, + { + "k": "44061d", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EJU93ZG", + "registration": "OE-LQQ", + "type": "A319", + "squawk": "2001", + "country": "Austria" + }, + "p": "653,-13059,517516,816,159,205,120,1341,-2146,76,159,219,132,1542,-2497,74,159,231,121,1426,-2345,83,159,231,120,1536,-2327,60,155,235,130,1759,-2488,58,156,233,120,1463,-2312,13,162,230" + }, + { + "k": "406a99", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "OXF14", + "registration": "G-OXFB", + "type": "PA34", + "squawk": "4531", + "country": "United Kingdom" + }, + "p": "653,-12946,516841,59,286,56,40,-324,54,1,287,58,40,-179,150,-1,335,56,40,-63,187,1,3,54,40,47,195,-1,7,53,40,39,186,-6,11,52,31,41,140,-9,12,50,40,50,182,-9,8,49,41,47,161,-7,7,41,40,46,144,6,7,41,39,35,149,6,5,44,41,-23,159,3,328,50,40,-239,113,7,307,56,40,-237,148,19,318,63,71,-521,255,36,304,65,40,-302,141,16,309,67,40,-320,154,7,308,72,40,-327,159,-1,308,72,40,-336,163,0,308,74,40,-339,162,0,308,73,41,-289,191,1,337,72,39,-282,170,-1,268,78,40,-432,-98,0,249,80,40,-432,-101,1,249,77,40,-409,-97,0,249,75,40,-402,-98,0,249,73,41,-400,-96,0,249,73,50,-498,-120,0,249,73,41,-397,-94,0,248,72,40,-389,-98,1,248,72,31,-301,-74,0,249,72,40,-387,-97,-1,248,71,40,-357,-93,1,247,63,40,-339,-88,0,247,63,40,-334,-86,0,248,63,40,-337,-90,1,245,63,40,-354,2,-1,272,63,40,-369,7,1,278,62" + }, + { + "k": "4078a4", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UKP154", + "registration": "G-POLW", + "type": "P68", + "squawk": "0051", + "country": "United Kingdom" + }, + "p": "653,-12839,529473,43,182,45,40,-122,-120,-1,127,47,40,212,93,4,18,52,40,133,166,1,39,50,40,160,152,3,22,51,40,193,142,-1,23,55,31,-40,152,2,333,57,40,-163,164,1,274,51,41,53,-91,-1,53,46,40,-10,171,2,344,51,39,-82,177,-1,348,54,41,-118,175,1,306,54,40,-41,-9,0,3,52,40,-173,155,0,326,55,71,-400,302,-10,342,71,40,-68,-36,-3,117,56,40,36,191,0,2,60,40,1,212,0,7,60,40,31,224,-5,1,64,40,40,228,-3,14,64,40,81,214,-1,347,61,34,-134,166,-1,352,59,46,61,219,3,41,53,40,174,161,0,16,56,41,41,174,1,270,52,39,-154,-157,0,213,53,41,64,-79,-3,33,56,50,138,233,3,15,52,40,86,190,-2,25,55,40,-12,149,1,244,51,32,64,-1,-2,356,49,40,-146,155,3,349,49,40,93,166,1,16,52,41,100,181,1,7,53,39,-135,-43,1,175,52,40,82,-70,1,21,50,40,-71,70,-1,157,49,40,144,113,-1,13,51" + }, + { + "k": "4405b6", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EJU69BZ", + "registration": "OE-LQP", + "type": "A319", + "squawk": "2152" + }, + "p": "652,-12550,510222,164,118,140,41,665,-337,43,121,153,40,751,-284,32,121,154,40,758,-293,62,121,164,40,847,-326,40,121,176,40,822,-317,87,121,166,31,549,-320,40,140,176,40,684,-511,36,140,192,40,691,-510,89,139,177,121,1805,-1621,141,146,191,151,2398,-2250,127,146,215" + }, + { + "k": "abafe4", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL729", + "registration": "N852ML", + "type": "B789", + "squawk": "6215", + "country": "United States" + }, + "p": "653,-12419,528543,895,333,234,120,-1992,2292,57,332,246,132,-2309,2611,61,332,254,121,-2184,2454,62,331,253" + }, + { + "k": "43c5e9", + "m": { + "kind": "military", + "layer": "military", + "callsign": "RRR4228", + "registration": "ZM415", + "type": "A400", + "squawk": "7570", + "military": true, + "country": "United Kingdom" + }, + "p": "653,-12366,513389,665,118,167,120,2578,-875,80,119,174,132,2990,-1011,81,118,185,120,2408,-1307,56,139,191,120,2089,-1623,44,146,199,131,2108,-2022,1,147,205,121,1873,-1866,0,148,209,121,1904,-1926,0,148,208" + }, + { + "k": "485a82", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "TFL9LE", + "registration": "PH-TFO", + "type": "B38M", + "squawk": "2106", + "country": "Kingdom of the Netherlands" + }, + "p": "653,-12140,507677,1050,222,223,120,-2536,-1784,1,222,223,132,-2711,-2000,0,214,225" + }, + { + "k": "a31a50", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL923", + "registration": "N29971", + "type": "B789", + "squawk": "5171", + "country": "United States" + }, + "p": "653,-10793,518543,402,111,141,40,763,-183,-29,111,140,40,745,-179,-22,111,138,40,745,-179,0,112,137,40,742,-180,0,111,135,40,713,-173,-1,111,132,31,557,-136,1,112,133,40,719,-176,-12,111,132,41,618,-270,-19,158,134,40,-186,-438,-1,231,138,39,-722,-9,-11,297,133,41,-696,229,-19,309,132,40,-143,425,0,25,128,40,617,181,-15,101,127,71,835,-514,-15,190,132,40,-225,-460,-1,198,133,40,-245,-452,0,203,134,40,-588,-289,1,249,134,41,-754,-115,-17,258,131,39,-738,-58,-19,265,130,41,-734,-80,-16,255,127,40,-633,-143,-17,228,110,39,-82,-356,-14,153,105,40,480,-219,-12,105,103,40,591,-13,-22,89,104,40,563,5,-21,89,90,41,503,3,-20,90,84,50,604,3,-22,90,81,41,467,2,-17,90,79,40,444,2,-17,90,77,31,329,2,-12,90,72,40,414,1,-15,90,74,38,400,2,-10,90,59,42,226,0,-8,87,19" + }, + { + "k": "4951d1", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "TAP34A", + "registration": "CS-TNQ", + "type": "A320", + "squawk": "7477" + }, + "p": "653,-10736,504618,529,73,196,40,1065,211,-50,73,196,40,1041,207,-42,73,190,40,866,309,-19,49,167,40,715,383,-17,51,162,40,666,365,-22,39,152,31,217,385,-33,13,146,40,167,509,-34,11,139,41,153,484,-30,12,134,40,164,454,-26,13,126,39,161,435,-22,13,126,41,148,438,-21,12,123,40,138,425,-22,11,119,40,126,411,-19,11,115,71,192,713,-41,8,106,40,77,367,-17,13,101,41,307,294,-13,38,96,39,428,167,-13,74,90,40,465,71,-13,77,78,40,426,55,-18,73,76,41,394,56,-15,79,68,39,369,50,-15,77,66,40,379,52,-15,78,70,40,273,38,-12,78,22" + }, + { + "k": "407d45", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "LOG8DB", + "registration": "G-LMTD", + "type": "AT76", + "squawk": "7747", + "country": "United Kingdom" + }, + "p": "653,-10199,518952,563,8,121,40,102,434,11,8,122,40,90,423,17,7,118,40,77,426,3,7,123,40,82,447,0,6,128,39,88,463,0,6,133,31,65,365,0,7,135,41,90,496,0,5,136,41,-242,472,0,338,138,40,-304,459,0,338,138,39,-341,441,0,333,138,41,-364,453,0,334,139,40,-359,450,0,334,139,40,-352,445,0,335,139,71,-596,820,0,336,140,40,-333,462,0,336,140,40,-335,460,0,336,140,40,-334,458,0,336,141,41,-341,468,0,336,142,40,-339,463,0,336,141,40,-341,466,0,336,141,39,-337,458,0,336,142,40,-347,470,0,336,143,40,-343,466,0,336,143,40,-349,470,0,336,142,40,-345,466,0,336,142,41,-347,467,0,336,142,50,-436,586,0,336,141,41,-351,470,0,336,141,40,-346,463,0,336,140,31,-267,355,0,336,141,40,-350,465,0,336,141,40,-352,466,0,336,142,40,-352,465,0,336,142,40,-349,461,0,336,141,40,-352,462,0,336,142,40,-356,468,0,336,143" + }, + { + "k": "45d064", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VKG108", + "registration": "OY-TCD", + "type": "A321", + "squawk": "3523", + "country": "Denmark" + }, + "p": "653,-10057,510710,1048,242,220,120,-2872,-1492,-1,216,223,132,-2423,-2164,2,215,225,121,-2212,-1996,0,215,225,139,-2484,-2276,-1,215,222" + }, + { + "k": "4843f2", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM195", + "registration": "PH-BQO", + "type": "B772", + "squawk": "2110", + "country": "Kingdom of the Netherlands" + }, + "p": "653,-9786,514806,1019,258,243,120,-4093,-576,0,250,245,132,-4315,-1020,0,248,242,122,-3923,-975,1,248,242" + }, + { + "k": "4cafd2", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR11LH", + "registration": "EI-GXM", + "type": "B738", + "squawk": "2221", + "country": "Ireland" + }, + "p": "653,-9758,513544,786,208,214,120,-1746,-2078,94,207,222,132,-2208,-2247,88,213,228,122,-2171,-2090,76,213,230,120,-1967,-2093,69,206,226,129,-1846,-2359,1,207,227" + }, + { + "k": "490d11", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "NJE7MQ", + "registration": "CS-CHQ", + "type": "CL35", + "squawk": "6264", + "country": "Portugal" + }, + "p": "653,-9499,512804,161,125,144,40,637,-274,-12,124,128,40,445,-328,-21,165,123,40,150,-452,-20,170,130,40,-131,-418,-13,234,120,40,-509,82,1,329,97,31,-202,228,-1,331,93,40,-241,301,1,349,90,41,189,284,-9,29,83,40,341,180,-27,62,76,39,329,108,-16,62,60,41,312,105,-15,62,62,40,317,105,-15,62,64" + }, + { + "k": "3472cc", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "IBE07KB", + "registration": "EC-NTQ", + "type": "A20N", + "squawk": "5223", + "country": "Spain" + }, + "p": "653,-9450,510258,536,216,204,40,-678,-594,55,216,204,120,-2025,-1783,149,215,205,132,-2225,-1978,125,215,207,120,-2088,-1879,58,215,220" + }, + { + "k": "408389", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY706N", + "squawk": "7731", + "country": "United Kingdom" + }, + "p": "653,-9433,527748,894,331,205,120,-1746,1914,-2,331,202,132,-1933,2092,1,333,203,121,-1736,1958,1,332,206,120,-1780,1971,1,332,209" + }, + { + "k": "c04fbb", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ACA864", + "registration": "C-GEFA", + "type": "A333", + "squawk": "5155", + "country": "Canada" + }, + "p": "653,-9382,515295,170,219,106,40,113,-325,-17,126,104,40,506,-184,-10,114,99,39,555,-25,-8,90,97,41,524,1,-21,90,86,40,482,2,-18,89,82,31,364,3,-13,90,80,41,461,2,-18,90,78,40,446,2,-16,90,76,40,408,1,-15,90,65,39,371,2,-14,89,68,41,407,2,-12,89,66" + }, + { + "k": "407238", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "GPCTW", + "registration": "G-PCTW", + "type": "PC12", + "squawk": "7010" + }, + "p": "653,-9372,515126,78,147,85,40,269,-259,-1,147,86,40,266,-256,-3,147,83,40,243,-236,-5,147,75,40,231,-222,-4,148,69,40,165,-231,0,157,72,31,127,-188,0,157,74,40,214,-224,0,150,71,41,216,-185,-5,96,55,40,78,170,-9,344,64,39,-197,146,8,253,67,41,25,-194,-2,122,66,40,316,-99,-5,112,54,40,297,-63,1,105,59,71,592,-61,-3,95,56,40,289,19,-5,59,46,40,194,72,-12,59,35,40,185,66,-9,62,41,38,189,66,-13,56,40,94,101,53,-11,236,9" + }, + { + "k": "40820f", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EXS96YK", + "registration": "G-SUNR", + "type": "A21N", + "squawk": "5254", + "country": "United Kingdom" + }, + "p": "653,-8777,515551,584,164,183,120,1098,-1891,89,159,190,132,1331,-2144,40,159,200,121,1123,-2069,53,172,201,120,463,-2201,81,172,212,130,548,-2528,84,169,224,121,1238,-2329,56,162,236" + }, + { + "k": "aba765", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL728", + "registration": "N850AN", + "type": "B789", + "squawk": "5157", + "country": "United States" + }, + "p": "653,-8557,514598,144,61,97,40,507,152,-14,77,98,40,554,14,-24,90,90,40,483,2,-18,89,80,40,458,2,-16,90,79,40,444,2,-16,90,77,30,340,1,-13,90,76,41,439,2,-16,90,77,41,468,2,-17,90,82" + }, + { + "k": "4cad29", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR7TR", + "registration": "EI-HET", + "type": "B38M", + "squawk": "1170", + "country": "Ireland" + }, + "p": "653,-8016,512981,1105,148,242,120,2325,-2155,9,142,244,132,2800,-2289,0,142,244,121,2549,-2116,1,143,244,120,2490,-2088,0,143,244,130,2680,-2278,1,143,245" + }, + { + "k": "4d2213", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR45YU", + "registration": "9H-QCY", + "type": "B738", + "squawk": "7476" + }, + "p": "653,-7888,507254,610,14,183,40,251,633,-38,14,181,40,338,610,-9,22,178,40,377,585,-1,22,177,40,379,589,0,22,178,40,385,595,0,22,179,31,302,465,0,22,180,40,395,608,0,22,181,41,396,605,0,22,181,40,398,608,0,22,182,39,393,599,-3,22,184,41,404,617,-21,22,183,40,394,597,-20,23,178,40,441,578,-31,26,175,72,772,1003,-59,26,172,39,424,551,-35,26,169,40,418,543,-34,26,167,41,401,523,-9,24,153,39,343,497,-15,23,151,40,348,498,-20,24,150,41,365,485,-22,25,143,39,331,449,-23,24,137,40,320,445,-27,24,134,40,482,304,-20,85,119,40,430,-269,-28,180,123,40,-366,-380,-20,218,125,41,-429,-351,-25,214,118,50,-490,-441,-46,214,118,41,-193,-364,-8,196,96,40,47,-309,-9,138,90,31,290,-159,-10,110,86,40,489,5,-11,86,82,40,362,185,-1,43,86,40,331,220,-17,43,78,40,295,197,-15,43,74,40,294,196,-16,43,75" + }, + { + "k": "346186", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "IBE0713", + "registration": "EC-NFH", + "type": "A20N", + "squawk": "7467", + "country": "Spain" + }, + "p": "652,-7523,514763,108,90,85,41,476,2,-18,89,80,40,455,3,-17,89,79,40,440,2,-16,90,76,40,413,1,-16,90,65,40,358,2,-12,90,64,31,294,1,-11,90,67,40,387,2,-10,91,58,240,-82,-27,-8,270,8" + }, + { + "k": "4780c8", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SAS53D", + "registration": "LN-SAF", + "type": "A20N", + "squawk": "6244", + "country": "Norway" + }, + "p": "653,-7492,515600,200,264,104,40,-594,-43,-9,263,103,40,-581,-45,-8,258,102,40,-311,-283,-8,181,104,40,159,-342,-8,128,101,40,490,-122,-15,92,88,31,385,-4,-19,90,85,40,489,2,-26,90,82,41,478,3,-20,90,81,39,453,2,-16,90,78,40,438,2,-16,90,76,41,401,2,-15,90,62,40,363,2,-14,90,64,40,383,1,-14,90,68" + }, + { + "k": "3c9cce", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ELG55G", + "registration": "D-BGFN", + "type": "E550", + "squawk": "6756", + "ladd": true, + "country": "Germany" + }, + "p": "653,-7292,518646,152,192,113,40,250,-303,-23,110,95,40,543,-66,-28,89,95,40,495,72,-5,77,82,40,463,72,-7,75,83,40,449,81,-19,74,79,31,320,56,-14,75,64,40,331,58,-12,74,60,40,337,58,-12,75,62,40,343,59,-11,74,62" + }, + { + "k": "486492", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM83R", + "registration": "PH-NXI", + "type": "E295", + "squawk": "6272", + "country": "Kingdom of the Netherlands" + }, + "p": "653,-7242,535182,396,293,188,40,-1041,262,-44,293,185,40,-1009,253,-40,293,179,40,-954,239,-32,293,158" + }, + { + "k": "407b8f", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW53PZ", + "registration": "G-TTNP", + "type": "A20N", + "squawk": "5732", + "country": "United Kingdom" + }, + "p": "653,-6661,513572,207,280,124,40,-695,66,-15,278,121,40,-642,52,-11,278,106,40,-555,106,-7,298,98,40,-493,164,-7,299,97,40,-178,309,-8,0,97,31,203,224,-7,58,98,40,500,168,-8,62,98,41,547,100,-17,87,97,40,527,2,-23,90,86,39,476,3,-17,90,82,41,460,3,-17,90,78,40,450,1,-16,90,77,40,413,2,-16,90,64,71,648,3,-23,90,66,40,345,1,-15,90,37,80,7,-24,0,270,10,40,-65,-3,0,270,13,40,-83,0,0,270,16" + }, + { + "k": "aad213", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL194", + "registration": "N797AN", + "type": "B772", + "squawk": "6002", + "country": "United States" + }, + "p": "653,-6555,517367,290,55,125,40,692,-1,0,119,126,40,378,-365,1,178,130,40,-44,-468,-15,184,127,40,-191,-435,-18,207,129,40,-580,-238,1,256,122,31,-529,-87,-1,255,120,40,-663,-114,-24,255,116,41,-645,-104,-26,255,114,40,-610,-110,-28,244,109,39,-217,-332,-25,179,106,41,353,-280,-13,123,97,40,496,-73,-12,90,88,40,506,3,-19,89,87,71,856,4,-31,89,79,40,458,2,-17,90,78,40,446,2,-17,90,75,40,403,2,-15,90,69,41,407,1,-14,90,74,35,366,2,-9,89,50" + }, + { + "k": "40624e", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SHT17Q", + "registration": "G-EUYG", + "type": "A320", + "squawk": "7660", + "country": "United Kingdom" + }, + "p": "653,-6473,516740,328,297,136,40,-691,220,-6,306,136,40,-211,431,0,19,132,40,602,231,0,93,131,40,696,-184,0,116,133,40,678,-222,-10,129,133,31,204,-332,-16,188,135,40,-579,-294,-5,271,138,41,-536,297,-16,350,129,40,325,374,-14,68,127,39,643,-123,0,143,129,41,-61,-445,-1,221,136,40,-625,-293,-8,234,135,40,-613,-285,-26,232,131,71,-1202,-345,-43,248,126,40,-643,-164,-9,247,115,40,-339,-294,-12,181,106,40,200,-334,-19,125,102,41,500,-181,-16,116,99,39,553,-31,-17,91,96,41,542,-1,-20,90,88,39,470,3,-19,89,82,40,458,2,-15,90,78,40,416,2,-16,90,66,40,372,2,-14,90,65,40,373,1,-14,90,66,37,298,1,-12,90,27,75,6,-24,0,270,8,60,-70,-3,0,270,9,31,-48,0,0,270,12,40,-71,0,0,270,13" + }, + { + "k": "400b84", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW785", + "registration": "G-DBCF", + "type": "A319", + "squawk": "6243", + "country": "United Kingdom" + }, + "p": "653,-6421,514769,68,90,74,40,411,1,-16,90,69,40,363,2,-14,90,62,40,359,2,-13,90,63,40,372,1,-14,90,65,40,286,1,-11,87,19" + }, + { + "k": "4d227c", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR4AZ", + "registration": "9H-QAV", + "type": "B738", + "squawk": "2265", + "country": "Malta" + }, + "p": "653,-6402,508086,1113,157,236,120,1541,-2352,1,158,237,132,1475,-2637,1,162,237" + }, + { + "k": "40643a", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY47UP", + "registration": "G-EZTZ", + "type": "A320", + "squawk": "6224", + "country": "United Kingdom" + }, + "p": "653,-6188,520648,321,100,161,40,898,-97,-12,100,151,40,821,-89,-7,100,134,40,743,-80,-6,100,127,40,731,-67,-6,89,126,40,715,55,-5,83,124,31,558,44,-5,83,126,40,736,59,-9,82,125,41,727,63,-26,82,125,40,708,58,-20,85,120,39,582,-190,-23,136,118,41,483,-309,-5,140,119,40,-25,-409,-4,214,127,40,-459,-375,-34,217,133,71,-860,-685,-61,219,125,40,-149,-353,-2,153,93,40,286,-267,-13,145,87,41,446,-93,-4,80,91,39,419,159,-7,45,87,40,336,218,-17,43,79,41,283,188,-16,43,67,39,264,176,-12,43,67,38,251,168,-12,43,57,141,195,98,-15,45,10" + }, + { + "k": "a17b16", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DAL287", + "registration": "N195DN", + "type": "B763", + "squawk": "5743", + "country": "United States" + }, + "p": "653,-5751,526291,1016,329,243,120,-2239,2228,-1,328,243,132,-2508,2461,0,328,245,121,-2338,2268,0,328,245,120,-2340,2238,0,328,245" + }, + { + "k": "3c66ae", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DLH8UL", + "registration": "D-AIUN", + "type": "A320", + "squawk": "2541", + "country": "Germany" + }, + "p": "653,-5639,519548,543,329,208,40,-606,618,-32,329,195,40,-585,595,-59,329,196,40,-596,604,-56,329,197,40,-763,495,-42,297,186,40,-1007,216,-39,289,180,31,-762,157,-22,289,174,40,-975,198,-24,288,174,41,-968,196,-31,288,167,40,-912,183,-30,288,161,39,-864,152,-28,283,154,41,-882,118,-31,282,150,40,-838,117,-19,283,136,40,-680,112,-13,299,108,72,-583,487,-50,326,83,39,-250,229,-19,326,75,40,-247,222,-16,326,73,35,-202,183,-13,326,70,39,-181,162,-19,326,29,79,26,7,0,146,10,45,39,-36,0,146,10,48,41,-23,0,118,8" + }, + { + "k": "4075b4", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VIR8Y", + "registration": "G-VPOP", + "type": "A35K", + "squawk": "6001", + "country": "United Kingdom" + }, + "p": "653,-5342,514774,27,90,70,40,416,1,-16,90,74,37,342,1,-11,90,40" + }, + { + "k": "485875", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLC1070", + "registration": "PH-EXY", + "type": "E190", + "squawk": "7636", + "country": "Kingdom of the Netherlands" + }, + "p": "653,-5263,512596,734,43,195,120,2404,1607,117,44,210,132,2806,1835,74,44,218,120,2605,1689,20,44,221,120,3622,858,70,77,231,131,4311,629,33,76,234,120,3958,596,1,77,234,120,3987,537,-71,79,237,121,4027,503,-178,79,228,130,3913,820,-174,66,209,41,1111,308,-54,66,205,40,1085,298,-53,66,200,31,815,224,-38,66,196,40,1050,286,-51,66,191,40,995,271,-28,66,183,41,988,267,-26,66,181,39,960,259,-27,66,178,40,950,255,-21,66,178,40,957,256,-21,66,175,40,907,242,-20,66,163" + }, + { + "k": "4008b5", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SHT3P", + "registration": "G-EUPU", + "type": "A319", + "squawk": "1442", + "country": "United Kingdom" + }, + "p": "653,-5199,516957,259,185,125,40,-287,-420,-1,206,127,40,-308,-415,-22,204,127,40,-546,-262,-7,252,126,40,-699,-125,-3,258,124,40,-693,-90,-20,258,121,31,-514,-71,-10,257,114,41,-602,-122,-12,227,106,40,-101,-362,-21,169,105,40,420,-243,-17,121,102,39,543,-80,-19,91,100,41,566,-3,-23,90,90,40,487,1,-19,89,82,40,471,4,-16,90,81,71,743,3,-29,90,62,40,359,2,-12,90,63,40,363,0,-14,90,65,36,320,2,-14,90,35,84,38,-24,0,270,8,60,-69,-3,0,270,9" + }, + { + "k": "43e96f", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "MYBLS", + "registration": "M-YBLS", + "type": "PC12", + "squawk": "5446", + "ladd": true + }, + "p": "653,-5118,513462,51,156,78,40,243,-269,9,147,99,40,330,-312,1,172,112,40,-296,-334,16,224,112,40,-600,-147,18,255,108,40,-574,-77,24,268,99,31,-439,-4,20,270,99,40,-565,-1,29,270,96,41,-538,-1,37,269,90,40,-500,-7,35,268,85,39,-489,-5,24,288,88,41,-164,263,24,3,90,40,29,353,3,3,106,40,26,392,14,2,104,71,42,625,51,359,92,41,-62,320,29,352,88,39,-61,307,24,353,90,40,-68,346,5,353,106,40,-74,388,17,353,108,40,-68,384,25,354,105,41,-69,365,32,353,100,39,-70,344,30,353,95,40,-60,340,28,354,96,40,-53,348,25,355,98,40,-47,350,23,356,99,131,-151,1284,33,355,127,132,-264,1549,28,353,122,121,-295,1212,61,340,115,121,-831,1319,0,339,137" + }, + { + "k": "4009c5", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW48G", + "registration": "G-EUUH", + "type": "A320", + "squawk": "3446" + }, + "p": "653,-4834,514648,0,90,11,40,327,0,19,90,79,40,452,-25,47,116,89,39,539,-174,27,110,124,41,731,-157,50,105,140,40,785,-107,31,102,142,31,627,-86,14,103,142,40,801,-116,0,104,144,41,809,-125,0,104,141,40,787,-109,0,102,140,39,765,-104,0,102,137,41,773,-102,0,102,133,40,755,-97,44,102,139,40,798,-113,59,104,146,71,1626,-267,70,105,174,40,976,-157,54,104,178,40,1018,-146,45,102,184,40,1056,-140,43,101,191,40,1087,-137,43,101,195,40,1105,-140,44,101,197,121,3441,-448,98,102,212,121,3666,-489,98,105,220,130,4069,-670,75,105,234,132,4302,-724,79,105,239,121,4025,-694,61,105,245,120,4055,-715,70,106,244" + }, + { + "k": "408366", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW98T", + "squawk": "5172", + "country": "United Kingdom" + }, + "p": "648,-4543,514776,0,87,30,85,-8,-16,0,268,8,40,-54,0,0,268,9" + }, + { + "k": "406b6d", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "CFE14K", + "registration": "G-LCYT", + "type": "E190", + "squawk": "6345", + "country": "United Kingdom" + }, + "p": "653,-4308,525214,978,137,231,120,2728,-1818,-156,135,228,132,3486,-1398,-169,121,204,60,1486,-546,-69,121,194,39,958,-354,-46,121,190,40,932,-346,-44,121,185,41,923,-343,-44,121,180,40,887,-331,-39,121,177,40,864,-324,-33,121,172,71,850,-868,-58,177,167,40,53,-575,-30,177,155,40,52,-533,-25,177,144,40,50,-508,-17,176,141,40,50,-508,-16,177,142,40,48,-505,-16,177,141,41,-113,-493,-16,215,143,39,-717,-232,-16,254,147,40,-802,-145,-17,254,142,40,-773,-143,-15,253,140,41,-776,-144,-16,253,138,40,-756,-141,-8,253,137,40,-757,-142,0,253,137,50,-966,-182,0,253,140,41,-785,-148,0,253,140,40,-768,-129,-17,263,141,31,-640,6,-18,273,142,40,-824,26,-23,273,141,40,-762,24,-4,273,122,40,-606,95,0,314,109,40,-186,345,0,5,98,40,330,232,0,75,80,40,428,3,-3,94,66,40,340,-17,-21,95,57" + }, + { + "k": "4d250d", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "TEU7", + "registration": "9H-FLYIN", + "type": "E55P", + "squawk": "6762", + "country": "Malta" + }, + "p": "653,-4291,518159,648,329,179,80,-1069,1098,-60,329,175,40,-518,531,-21,329,172,40,-518,528,-20,329,170,40,-504,514,-20,329,167,31,-396,402,-16,328,168,40,-642,466,-38,319,168,41,-647,460,-36,319,165,40,-624,436,-26,318,158,39,-654,385,-21,293,158,41,-908,96,-30,278,154,40,-883,76,-30,278,151,40,-862,7,-31,245,148,71,-1168,-455,-78,237,125,40,-601,-237,-38,237,119,40,-617,14,-30,294,106,40,-506,166,-19,320,92,40,-277,273,-7,328,87,40,-295,266,-18,325,90,41,-295,268,-20,326,90,39,-287,258,-19,326,81,40,-252,227,-17,326,67,40,-214,193,-13,325,64,41,-206,187,-13,326,61,48,-224,201,-27,323,32" + }, + { + "k": "4075c1", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UBT78T", + "registration": "G-CKWN", + "type": "B789", + "squawk": "1256", + "country": "United Kingdom" + }, + "p": "653,-4028,511186,88,77,88,40,448,62,-18,78,76,40,414,58,-16,77,75,40,393,55,-14,77,69,40,394,54,-16,77,71,40,402,56,-13,77,69,31,170,24,-11,78,18" + }, + { + "k": "a8d3b4", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL957", + "registration": "N668UA", + "type": "B763", + "squawk": "5722", + "country": "United States" + }, + "p": "653,-3965,524414,1018,329,239,120,-2190,2211,-1,329,240,132,-2431,2423,0,329,241,120,-2247,2216,0,328,242,120,-2280,2217,0,328,242,131,-2529,2426,0,328,242" + }, + { + "k": "4cae61", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR81BV", + "registration": "EI-IJL", + "type": "B38M", + "squawk": "5256", + "country": "Ireland" + }, + "p": "653,-3672,508481,904,152,232,120,2185,-2119,65,141,238,132,2797,-2258,61,142,244,121,2575,-2087,52,142,245" + }, + { + "k": "4ba94a", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "THY8LV", + "registration": "TC-JJJ", + "type": "B77W", + "squawk": "3401" + }, + "p": "653,-3479,533552,1046,112,250,120,4194,-997,0,112,250,132,4566,-1107,0,112,249,122,4183,-1037,1,113,250,138,4728,-1194,0,113,250,131,4576,-1079,1,110,253,120,4194,-969,0,111,253,121,4189,-991,1,111,254,121,4221,-1016,0,112,253,130,4463,-1095,1,112,252,131,4525,-1134,1,112,253,120,4082,-1043,0,113,253,120,4051,-1053,1,113,250" + }, + { + "k": "407178", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EXS91KB", + "registration": "G-JZBK", + "type": "B738", + "squawk": "5260", + "country": "United Kingdom" + }, + "p": "653,-3401,504430,1086,147,235,120,2080,-2188,29,157,236" + }, + { + "k": "407636", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "GCLAP", + "registration": "G-CLAP", + "type": "C152", + "squawk": "7000", + "country": "United Kingdom", + "ga": true + }, + "p": "653,-2701,523105,55,304,42,40,-211,8,-12,207,37,40,111,-44,0,86,27,40,143,-57,12,138,32,40,133,-78,9,144,32,40,70,-112,9,165,38,31,87,-87,0,137,36,40,147,-87,3,132,34,41,149,-81,0,129,34,40,166,-71,-3,122,35,39,169,-71,0,126,34,41,158,-78,3,130,35,40,161,-84,-3,132,37,40,168,-83,0,126,37,71,294,-155,0,154,37,40,76,-128,-3,157,38,40,100,-124,0,149,38,40,118,-111,0,149,37,40,94,-124,3,157,40,40,85,-132,0,161,41,41,71,-145,0,170,42,39,53,-149,-6,163,44,40,87,-152,-9,159,43,40,92,-144,-9,156,43,41,109,-138,-6,147,42,39,162,-87,3,88,39,41,193,50,-6,44,33,50,174,85,-9,61,30" + }, + { + "k": "4008b2", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW7YT", + "registration": "G-EUPR", + "type": "A319", + "squawk": "5262" + }, + "p": "653,-2667,510889,364,180,186,40,9,-664,58,179,188,40,26,-680,38,178,189,40,34,-691,35,178,195,40,41,-698,50,178,199,40,45,-724,45,178,203,132,799,-2480,110,165,225,120,1006,-2369,97,165,230" + }, + { + "k": "896354", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ETD9XU", + "registration": "A6-ETQ", + "type": "B77W", + "squawk": "7306", + "country": "United Arab Emirates" + }, + "p": "653,-2557,532228,849,106,236,120,4216,-756,86,106,248,132,4732,-670,52,102,247,121,4380,-593,0,103,248,120,4306,-617,1,104,249,130,4672,-689,0,103,249,120,4372,-520,0,101,250,120,4327,-564,13,106,248,120,4306,-778,51,107,258,131,4827,-755,0,102,259,132,4936,-634,0,102,260,121,4495,-593,1,102,259,121,4480,-611,1,103,256" + }, + { + "k": "49130e", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "NJE908N", + "registration": "CS-DXN", + "type": "C56X", + "squawk": "5673" + }, + "p": "653,-2510,518946,127,74,97,40,464,-95,26,155,94,39,244,-333,4,157,116,41,282,-394,21,156,119,40,320,-376,47,134,117,40,605,-52,63,71,114,31,494,101,50,71,116,40,643,137,66,71,115,40,680,143,35,71,136,41,799,169,32,71,152,39,854,178,31,71,163,41,941,197,38,71,172,40,973,202,41,72,180,131,3444,710,135,72,202,120,3426,706,124,72,208,120,3362,705,143,70,197,120,3125,693,114,70,188,121,3250,697,47,72,203,142,3967,955,49,54,211,120,3109,1316,33,55,216,120,3184,1330,14,56,225" + }, + { + "k": "ab7ae4", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DAL33", + "registration": "N839MH", + "type": "B764", + "squawk": "1446", + "country": "United States" + }, + "p": "653,-2203,516609,189,333,146,40,-387,467,17,332,147,40,-389,475,52,333,149,40,-409,483,45,333,155,40,-439,531,23,333,175,40,-473,588,23,334,193,31,-400,502,18,334,205,40,-548,694,30,334,218,41,-634,708,43,330,224,40,-663,693,42,330,228,39,-672,705,44,330,230,41,-698,720,37,329,234,40,-691,734,33,330,238,131,-2354,2499,97,330,250,120,-2169,2340,100,330,250,120,-2223,2328,89,329,246,121,-1873,2410,12,334,248,120,-2013,2409,0,333,251" + }, + { + "k": "44056b", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EJU58MP", + "registration": "OE-LKD", + "type": "A319", + "squawk": "2231" + }, + "p": "653,-2116,512129,168,250,145,40,-772,-177,76,250,145,40,-806,-180,59,251,153,40,-831,-185,64,250,156,40,-840,-187,61,250,158,40,-864,-195,52,250,165,31,-716,-161,27,250,177,40,-999,-227,23,250,189,41,-1051,-250,6,243,195,40,-766,-509,54,215,195,120,-1945,-1730,97,215,200,131,-2217,-1981,132,215,206,120,-2041,-1843,92,215,213,120,-2071,-1887,80,215,218" + }, + { + "k": "405b64", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY53JV", + "registration": "G-EZDK", + "type": "A319", + "squawk": "1434" + }, + "p": "651,-2086,511456,0,76,30,42,397,55,35,76,79,40,474,63,42,78,94,40,565,-16,49,129,111,40,239,-413,46,168,133,40,200,-484,57,163,144,31,180,-396,43,164,153,40,253,-542,64,163,155,41,180,-557,51,181,166,40,-50,-633,33,183,183,39,29,-637,71,167,178,41,244,-635,50,166,183,40,256,-656,43,166,190,131,1258,-2213,116,147,215,120,2014,-1995,99,148,227" + }, + { + "k": "8963f4", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAE7CN", + "registration": "A6-EOW", + "type": "A388", + "squawk": "7310" + }, + "p": "653,-2000,514183,140,102,139,40,789,-108,20,102,141,40,788,-112,15,103,142,40,787,-111,13,103,139,40,785,-113,0,103,140,40,773,-110,4,103,137,31,592,-85,16,103,137,40,776,-108,21,102,139,41,794,-111,19,103,140,40,799,-117,36,104,146,39,844,-138,24,105,163,41,966,-165,16,105,182,40,1001,-171,49,105,181,40,1026,-165,41,104,186,71,1900,-225,73,97,190,40,1072,-89,41,97,191,40,1091,-91,38,98,194,121,3372,-284,80,98,210,121,3824,-341,60,98,228,120,3878,-481,72,102,235,130,4212,-568,101,102,233,131,4243,-588,91,103,235,120,4035,-576,38,103,252,120,4288,-629,41,103,265" + }, + { + "k": "345643", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VLG75ED", + "registration": "EC-MVE", + "type": "A320", + "squawk": "5330", + "country": "Spain" + }, + "p": "652,-1322,510136,238,263,135,41,-744,-57,-15,263,128,40,-724,-52,-24,263,127,40,-709,7,-20,275,124,40,-671,34,-12,282,112,40,-326,288,-12,349,98,31,-80,270,-20,348,100,40,146,316,-23,43,94,41,366,221,-16,60,82,40,438,80,-24,78,77,39,415,56,-16,78,74,41,412,58,-16,78,71,40,393,55,-15,78,72,39,407,56,-14,77,75" + }, + { + "k": "4869c3", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM81E", + "registration": "PH-AXT", + "type": "A21N", + "squawk": "6261", + "country": "Kingdom of the Netherlands" + }, + "p": "653,-1244,516201,236,261,132,40,-747,-77,-8,261,130,40,-736,-76,0,260,129,40,-737,-79,0,260,129,40,-729,-77,0,261,128,40,-660,-70,1,260,107,31,-466,-57,-1,259,106,40,-608,-60,0,268,106,41,-617,-13,-10,268,104,40,-597,-7,-27,269,102,39,-578,-52,-2,258,105,41,-600,-77,-13,258,103,40,-486,-173,-21,201,103,40,-8,-369,-19,163,102,71,825,-251,-12,91,87,40,486,0,-16,90,84,40,479,2,-19,90,81,40,464,3,-17,89,79,40,446,2,-16,89,78,40,427,2,-16,90,72,41,424,2,-16,90,73,39,431,1,-16,90,78,36,260,1,-8,90,22,84,70,-25,0,90,9,60,45,-19,0,180,8,59,1,-54,0,180,8,224,-50,-40,0,222,12,61,-27,-42,0,183,9" + }, + { + "k": "43c8d4", + "m": { + "kind": "military", + "layer": "military", + "callsign": "CWL39", + "registration": "ZM333", + "type": "E50P", + "squawk": "3620", + "military": true, + "country": "United Kingdom" + }, + "p": "653,-908,533742,261,28,91,40,282,337,1,10,111,40,-413,223,1,254,109,40,-235,-314,1,186,101,40,-50,-351,-1,185,91,40,-51,-286,-2,188,75,31,-143,-183,0,248,85,40,-289,210,0,359,85,41,3,248,-5,3,68,40,44,291,5,7,102,39,32,394,0,1,114,41,0,411,1,359,113,40,-11,406,-1,359,112,40,-17,402,0,358,111,68,-515,429,1,241,106,43,-184,-371,-1,185,103,40,-57,-374,0,185,103,40,-50,-357,-5,184,99,40,-46,-358,-14,184,99,40,-39,-347,-11,184,96,41,-42,-350,0,184,96,39,-43,-346,0,184,99,40,-44,-356,0,184,101,40,-48,-363,0,185,103,40,-53,-373,0,185,104,40,-54,-370,0,185,101,41,-55,-355,0,185,97,47,230,-331,0,92,100,44,289,327,0,358,112,40,-21,394,0,358,108,31,-18,299,0,358,109,40,-20,394,0,358,109,40,-18,396,0,358,111,41,-20,400,0,358,111,39,-17,390,0,358,107,40,-19,372,0,359,103,40,-14,375,0,359,105,40,53,365,0,36,101" + }, + { + "k": "40643b", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY61VT", + "registration": "G-EZTY", + "type": "A320", + "squawk": "2062" + }, + "p": "653,-835,508130,428,194,162,40,-226,-579,45,193,166,40,-212,-587,45,193,170,40,-225,-625,20,191,188,40,139,-693,14,166,205,40,289,-748,20,166,218,132,960,-2536,121,166,224" + }, + { + "k": "40697c", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EFW34BY", + "registration": "G-EUYR", + "type": "A320", + "squawk": "3475" + }, + "p": "652,-751,511638,100,78,121,41,720,43,58,92,130,40,774,-14,59,92,139,40,825,-14,60,92,147,40,847,2,60,89,148,40,884,3,40,90,166,31,751,0,35,90,175,40,1027,0,52,90,181,41,1061,-1,49,90,186,40,1092,-2,42,90,193,120,3433,-24,121,94,209,131,4057,-156,115,94,223,120,3886,-161,90,94,234,120,4058,-213,75,100,240,120,4041,-686,56,106,251,121,4041,-727,89,106,246,142,4751,-877,18,106,246,120,4029,-761,0,107,245,120,3955,-763,0,107,243" + }, + { + "k": "4b19fc", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SWR1MY", + "registration": "HB-JVW", + "type": "E195", + "squawk": "0554", + "country": "Switzerland" + }, + "p": "653,-376,509044,1010,141,231,120,2436,-1939,39,142,238,132,2786,-2244,0,142,240,121,2532,-2066,1,142,243" + }, + { + "k": "344158", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VLG4XL", + "registration": "EC-LOP", + "type": "A320", + "squawk": "2732" + }, + "p": "653,-343,510929,168,166,134,40,219,-475,36,163,142,40,241,-499,22,163,148,40,241,-512,0,163,148,40,150,-523,13,191,154,40,-237,-543,59,196,158,31,-201,-444,21,196,177,40,-288,-644,45,195,187,41,-273,-658,57,194,191,40,-97,-689,48,176,197,39,87,-714,40,176,203,40,85,-756,27,176,215,41,92,-775,48,176,215" + }, + { + "k": "4d2038", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KMM100A", + "registration": "9H-NEG", + "type": "A20N", + "squawk": "2751", + "country": "Malta" + }, + "p": "653,-151,513402,227,271,129,40,-736,0,0,270,128,40,-725,0,0,270,127,40,-738,1,0,270,127,40,-734,-2,0,270,129,40,-742,-7,0,269,129,31,-564,-6,0,269,126,40,-732,-17,0,267,125,41,-724,-18,-10,268,126,40,-701,36,-19,285,121,39,-666,106,-20,283,121,41,-669,98,-13,283,112,40,-579,89,-8,291,98,40,-491,157,-9,298,95,71,-123,529,-11,48,97,40,489,174,-5,61,97,40,490,167,-9,65,96,40,536,54,-12,89,93,40,511,2,-20,89,83,40,471,3,-18,90,80,41,455,2,-17,90,76,39,422,2,-16,90,67,40,351,1,-13,90,60,40,362,2,-13,90,65,40,341,1,-14,91,33,131,120,-25,0,90,10,81,106,-1,0,90,9,60,15,-27,0,180,9,30,0,-29,0,180,11,161,-10,-58,0,211,9" + }, + { + "k": "c01a7d", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ACA833", + "registration": "C-FKAU", + "type": "B77W", + "squawk": "4406", + "country": "Canada" + }, + "p": "653,644,520225,914,324,250,120,-2590,2198,42,327,259,132,-2603,2607,0,329,256,121,-2374,2384,0,329,256,120,-2391,2373,0,328,259,130,-2633,2575,-1,328,259,120,-2464,2375,0,328,258" + }, + { + "k": "48c2a7", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR29HK", + "registration": "SP-RZH", + "type": "B38M", + "squawk": "0550", + "country": "Poland" + }, + "p": "653,699,506876,1115,140,244,120,2659,-2013,1,140,244,132,2898,-2215,0,140,244" + }, + { + "k": "4080e0", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW639", + "registration": "G-TTNW", + "type": "A20N", + "squawk": "2754", + "country": "United Kingdom" + }, + "p": "653,983,513913,277,117,125,40,606,-236,-18,122,123,40,410,-334,-20,175,124,40,-361,-362,-12,247,131,40,-704,104,0,303,133,40,-643,252,0,302,130,31,-543,72,0,270,128,40,-743,-6,0,270,128,41,-735,-4,0,270,128,40,-731,-3,0,270,127,39,-729,-4,0,269,129,41,-751,-12,1,269,128,40,-727,-12,0,267,127,40,-721,-32,0,266,126,71,-1258,132,-9,284,123,40,-685,104,-12,283,119,40,-632,87,-15,282,107,41,-545,126,-16,293,100,39,-230,281,-14,1,96,40,148,317,-13,54,98,41,506,169,-15,62,98,40,481,170,-22,62,94,39,504,45,-20,90,83,40,471,1,-17,90,80,40,454,2,-17,90,78,40,435,1,-15,90,69,41,368,2,-15,90,62,51,475,2,-17,90,67,39,270,1,-11,90,14,94,-26,-24,0,270,8,58,-65,-3,0,330,8,40,-62,0,0,270,11,40,-51,0,0,270,8" + }, + { + "k": "4bb199", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "THY30S", + "registration": "TC-LLY", + "type": "B789", + "squawk": "6611", + "country": "Turkey" + }, + "p": "653,1185,516357,258,225,136,40,-76,-439,0,149,132,40,659,-138,0,71,130,40,396,367,0,357,135,40,-520,318,0,277,138,40,-793,-77,0,259,138,31,-602,-68,0,260,138,40,-796,-92,-5,260,139,41,-785,-90,-14,260,136,40,-767,-88,-12,260,134,39,-749,-82,1,263,133,41,-780,-49,0,264,132,40,-763,-46,0,265,133,40,-755,-48,1,264,127,71,-1208,-99,-2,262,117,40,-669,-56,-13,263,113,40,-615,-48,-10,263,104,40,-585,-52,-9,262,101,40,-577,-71,-7,245,103,40,-491,-204,-6,217,104,41,-20,-368,-3,151,105,39,507,-170,-15,92,104,40,604,1,-31,89,107,40,591,4,-22,89,96,40,501,3,-19,90,83,40,476,3,-17,90,80,41,461,2,-17,90,78,50,555,2,-21,90,74,41,425,2,-16,90,74,38,420,2,-13,90,77,47,292,0,-8,90,23" + }, + { + "k": "4d2127", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VJT418", + "registration": "9H-VCL", + "type": "CL35", + "squawk": "0671", + "country": "Malta" + }, + "p": "653,1475,512578,326,316,152,40,-617,374,-7,300,150,40,-830,185,-13,288,152,40,-795,165,-28,288,137,40,-722,152,-17,289,133,40,-715,147,-6,288,129,31,-549,110,-17,288,127,40,-679,135,-11,288,120,41,-674,138,0,288,120,40,-663,135,1,288,122,39,-643,129,-15,288,121,41,-548,224,-32,344,115,40,-33,400,-19,358,108,40,-19,371,-19,358,97,71,-57,594,-36,356,92,40,-43,328,-10,355,90,40,-370,180,0,263,98,40,-455,-163,0,213,96,40,-290,-292,0,211,95,40,-73,-296,0,134,86,41,444,-121,-6,105,83,39,408,-44,-22,95,65,40,357,-22,-3,95,63,40,350,-21,0,96,58,40,347,-21,-14,96,61,40,341,-17,-16,83,58,41,331,57,-9,70,57,49,392,92,-16,70,61" + }, + { + "k": "3ce18f", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "PTN22D", + "registration": "D-CMSL", + "type": "PC24", + "squawk": "5725", + "country": "Germany" + }, + "p": "653,1566,514312,66,273,101,40,-499,-72,-6,223,81,40,-218,-250,-1,207,79,40,-184,-237,-13,205,67,40,-156,-204,-13,206,62,40,-153,-199,-12,206,55" + }, + { + "k": "4ca4f4", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR98KJ", + "registration": "EI-DPP", + "type": "B738", + "squawk": "3506", + "country": "Ireland" + }, + "p": "653,3022,519299,44,223,83,39,-326,-217,-17,223,84,80,-410,-292,-27,223,9,80,45,-3,0,45,10,30,33,22,0,42,12,42,52,34,0,42,13" + }, + { + "k": "47a3b0", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "NOZ17T", + "registration": "LN-ENN", + "type": "B738", + "squawk": "3447" + }, + "p": "653,3427,511661,303,90,148,40,834,101,41,53,161,40,425,546,22,19,181,40,340,628,14,19,184,40,360,631,43,20,188,40,375,643,45,20,197,31,308,528,32,20,205,41,426,716,46,21,211,40,701,626,44,43,215,121,2682,1733,128,44,225,150,4178,1712,116,64,239,120,3820,1131,90,64,245,121,3895,1159,88,64,244,121,3617,1415,63,30,250,120,1826,2444,37,25,249,130,1985,2620,0,25,249,131,2021,2664,0,25,248,120,1865,2427,0,25,248" + }, + { + "k": "48e9f6", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR924", + "registration": "SP-RNR", + "type": "B738", + "squawk": "4627", + "country": "Poland" + }, + "p": "653,3546,530390,1110,100,240,120,4208,-446,0,100,239,132,4629,-511,1,101,239,122,4236,-479,0,101,239,138,4838,-571,1,101,242,131,4711,-258,1,94,243,120,4314,-217,0,95,244,120,4314,-229,0,95,243,120,4268,-244,0,96,241,132,4672,-285,1,96,241,131,4646,-298,1,96,241,120,4294,-63,0,89,244" + }, + { + "k": "4b1a27", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZS68GC", + "registration": "HB-JXN", + "type": "A320", + "squawk": "6362", + "country": "Switzerland" + }, + "p": "653,3548,504512,758,139,192,120,2578,-1351,89,108,212,132,3788,-708,22,105,214" + }, + { + "k": "4075a2", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "CFE23DB", + "registration": "G-LCYZ", + "type": "E190", + "squawk": "0516" + }, + "p": "653,3609,515706,204,83,140,40,802,63,20,83,139,40,796,61,5,85,140,40,607,-265,31,164,141,40,-25,-508,19,185,144,40,-72,-528,15,185,155,30,-53,-434,24,184,160,41,-78,-600,36,185,164,41,-81,-604,48,184,169,40,-63,-603,62,183,169,39,-55,-596,57,184,169,41,-63,-622,48,183,173,151,-377,-2483,147,202,193,120,-1293,-1952,101,203,203,121,-1380,-2110,52,203,225,121,-1240,-2318,89,179,223" + }, + { + "k": "43e73d", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "MRLIV", + "registration": "M-RLIV", + "type": "CL60", + "squawk": "5742", + "ladd": true, + "country": "United Kingdom" + }, + "p": "653,3782,522377,344,277,157,40,-916,65,-20,277,160,40,-929,66,-3,276,160,40,-919,64,-6,277,157,40,-880,60,-22,276,143,40,-807,57,-20,270,137,31,-481,-192,-16,214,130,40,-405,-400,-21,211,129,41,-385,-399,-13,210,129,40,-388,-400,-21,211,127,39,-372,-374,-19,211,125,41,-378,-385,-21,211,122,40,-364,-377,-3,210,123,40,-393,-374,0,230,125,71,-1110,-405,0,240,123,40,-618,-225,0,240,123,40,-607,-221,-1,239,115,40,-426,-243,-9,209,100,40,-81,-329,-25,143,97,40,525,-38,-12,77,96,40,502,92,-21,74,84,40,451,64,-16,78,77,40,397,71,-16,73,65,40,341,58,-13,76,59,41,333,58,-12,75,60,35,296,51,-12,74,61,40,209,36,-22,74,16" + }, + { + "k": "4caf26", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR66GR", + "registration": "EI-ILL", + "type": "B38M", + "squawk": "7470", + "country": "Ireland" + }, + "p": "653,3832,520408,114,114,103,40,250,-266,-18,200,94,40,-225,-283,-11,217,86,40,-335,-229,-15,223,88,40,-354,-234,-17,224,88,40,-331,-221,-19,222,82,30,-250,-166,-12,223,84,34,-246,-163,-22,222,46,106,-5,-56,0,42,11,31,38,25,0,42,13,100,130,87,0,42,10,32,31,20,0,45,10" + }, + { + "k": "4081bf", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW891", + "registration": "G-TTSF", + "type": "A20N", + "squawk": "3245", + "country": "United Kingdom" + }, + "p": "653,3935,516641,296,263,136,40,-776,-57,-7,263,137,40,-792,-59,0,263,137,40,-782,-60,0,262,137,39,-555,-289,0,192,132,41,303,-391,0,117,126,31,557,-19,0,83,126,40,641,176,-16,36,127,41,-69,440,-15,320,133,40,-715,91,0,263,134,39,-769,-69,0,260,136,41,-780,-83,0,260,137,40,-778,-85,0,260,136,39,-756,-82,-19,260,133,72,-1352,-146,-11,260,132,40,-751,-83,0,260,131,40,-743,-82,0,260,131,40,-737,-78,0,260,131,40,-747,-90,0,259,131,40,-745,-54,0,268,131,41,-771,-15,-1,268,131,39,-742,-14,-21,268,128,40,-699,-51,-15,254,118,40,-593,-118,-10,247,102,41,-221,-320,-25,179,105,39,327,-282,-10,121,103,41,531,-60,-3,92,88,50,629,-1,-18,89,87,41,502,3,-19,89,84,39,476,3,-19,90,82,32,364,2,-14,90,80,41,465,2,-17,90,79,39,419,1,-15,90,67,40,359,2,-13,90,62,40,368,2,-13,90,65,38,332,1,-15,90,39,82,21,-24,0,270,9" + }, + { + "k": "aad3c9", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL56", + "registration": "N797UA", + "type": "B772", + "squawk": "6373", + "country": "United States" + }, + "p": "653,4561,516463,1019,322,247,120,-2632,2105,-1,322,247,132,-2521,2485,0,330,248,121,-2265,2325,-1,329,249,120,-2285,2299,0,329,250,130,-2502,2496,0,329,250,120,-2341,2304,0,328,252,120,-2373,2306,0,328,253,121,-2408,2311,-1,328,253" + }, + { + "k": "407131", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VIR479F", + "registration": "G-VBOW", + "type": "B789", + "squawk": "4012" + }, + "p": "653,4801,510421,524,314,191,40,-741,466,-16,316,178,40,-684,452,-15,316,166,40,-635,416,-12,316,156,40,-609,396,-17,316,152,40,-595,387,-17,316,147,31,-448,291,-13,316,144,40,-577,375,-15,316,142,40,-398,423,-13,360,139,41,443,376,-11,72,137,39,689,-135,-12,143,136,41,-17,-467,-23,219,139,40,-729,-119,-25,281,140,40,-806,26,-22,271,140,71,-1312,313,-37,295,136,40,-706,207,-21,295,136,40,-729,-29,-11,246,131,40,-678,-194,-11,245,131,40,-679,-196,-6,245,130,40,-689,-173,1,266,128,41,-717,85,0,285,127,40,-690,115,-1,285,125,39,-689,115,-10,285,125,40,-690,110,-10,284,123,40,-668,102,-10,284,114,40,-600,92,-10,287,102,41,-249,281,-11,3,96,50,291,363,-14,63,101,41,531,160,-14,64,98,39,511,101,-20,87,92,32,403,3,-15,90,86,41,494,2,-18,89,84,39,471,2,-18,90,81,40,462,3,-17,90,78,40,444,2,-17,90,75,40,406,1,-14,90,69,40,411,1,-15,90,75,39,366,2,-14,87,39" + }, + { + "k": "4401e9", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EJU93RY", + "registration": "OE-IUB", + "type": "A21N", + "squawk": "4643" + }, + "p": "653,4828,513508,431,23,161,40,367,540,30,23,167,40,378,563,28,23,170,40,392,573,47,23,179,40,415,600,52,23,183,132,3091,1147,89,65,199,120,3215,903,87,66,210,121,3469,961,101,66,220,130,3953,992,69,79,234,120,4005,485,67,79,238,120,4171,504,40,79,248,120,4243,422,56,82,246,132,4699,428,19,82,251,131,4772,414,1,82,252,120,4391,365,2,82,251,120,4348,342,-3,83,249" + }, + { + "k": "3cc253", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AWH84B", + "registration": "D-CAWX", + "type": "C680", + "squawk": "2036", + "country": "Germany" + }, + "p": "653,4879,523989,993,93,208,120,3552,-125,118,93,204,132,4022,-153,75,94,213,121,3881,-158,43,92,224,120,4027,423,9,79,241,130,4539,536,0,79,245,120,4266,488,0,79,245,120,4270,470,0,80,247,120,4288,457,0,80,246,131,4680,479,1,81,246,132,4355,1138,0,58,248,121,3706,1467,1,44,249,121,2881,2091,0,40,249" + }, + { + "k": "4d2493", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "WMT932", + "registration": "9H-WDM", + "type": "A21N", + "squawk": "4611" + }, + "p": "653,6061,519304,560,80,181,40,1056,111,33,80,187,120,3346,347,97,80,199,132,3883,391,92,81,209,120,3686,358,71,81,220,122,3928,369,62,81,228,129,4266,56,70,96,230,120,4088,-249,45,96,238,120,4164,-269,23,96,241,120,4147,-285,0,96,240,132,4555,-330,1,97,240,131,4555,-348,1,97,240,120,4116,-333,0,98,239" + }, + { + "k": "502d5b", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BTI1761", + "registration": "YL-ABJ", + "type": "BCS3", + "squawk": "1161", + "country": "Latvia" + }, + "p": "653,6394,518795,1049,229,221,120,-2915,-1556,0,229,222,132,-3214,-1737,0,229,220,121,-2891,-1592,0,225,224,120,-2635,-1742,0,223,222,131,-2841,-1904,0,223,223,121,-2614,-1774,1,223,222,120,-2587,-1774,0,223,225,120,-2345,-1879,1,207,225,129,-1788,-2334,0,206,226" + }, + { + "k": "aaac4a", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL46", + "registration": "N787UA", + "type": "B772", + "squawk": "2223", + "country": "United States" + }, + "p": "653,7618,530589,1111,111,252,120,4173,-979,0,108,251,132,4756,-813,1,105,252,121,4316,-847,0,113,253,120,4087,-1109,1,114,252,130,4376,-1218,0,115,252,120,4035,-1143,0,115,252,121,4007,-1152,1,115,251,121,4031,-1181,1,116,251,129,4268,-1280,1,117,252,132,4175,-1465,0,121,249,121,3721,-1369,-58,121,247" + }, + { + "k": "40658a", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "CFE78X", + "registration": "G-LCYP", + "type": "E190", + "squawk": "4441", + "country": "United Kingdom" + }, + "p": "652,7848,513215,186,290,150,41,-817,187,-21,290,150,40,-807,183,-19,290,147,40,-780,177,-18,290,144,40,-780,176,0,290,144,40,-779,175,-10,290,146,31,-617,137,-21,289,147,40,-825,74,1,273,144,41,-847,28,-9,273,145,40,-822,26,-22,273,143,39,-770,25,-1,273,125,41,-674,21,0,273,110,40,-447,229,0,345,102,40,41,333,0,43,90,71,703,101,-4,95,62,40,332,-17,-23,94,58,40,340,-10,-23,92,61,40,305,-9,-11,93,28,80,-2,-9,-5,273,8,39,-54,2,0,273,10" + }, + { + "k": "706059", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KAC103", + "registration": "9K-AOF", + "type": "B77W", + "squawk": "3107", + "country": "Kuwait" + }, + "p": "653,7943,516931,443,264,173,40,-972,-69,-18,263,163,40,-896,-65,-18,264,150,40,-838,-60,-31,263,145,40,-828,-61,-25,263,144,40,-820,-61,-17,263,142,30,-626,-46,-14,264,145,41,-840,-63,0,263,141,41,-823,-86,-3,249,146,40,-329,-415,-16,173,135,39,507,-314,-12,103,134,41,698,135,-2,41,134,40,-141,433,-15,308,140,40,-743,184,-13,279,140,71,-1411,-75,0,264,138,40,-786,-50,-13,264,137,40,-780,-49,-16,264,134,40,-714,-44,-1,264,114,40,-630,-41,-1,264,109,40,-629,-43,0,264,110,41,-640,-43,1,264,110,39,-623,-43,0,264,110,40,-624,-51,0,260,110,40,-618,-88,-1,257,109,41,-622,-89,-18,257,108,39,-599,-81,-19,257,106,41,-599,-84,-15,257,105,50,-743,-105,-17,257,105,41,-508,-187,-8,203,108,40,-10,-385,-15,173,106,31,306,-198,-8,113,104,40,534,-29,0,91,89,40,518,3,-5,90,90,41,500,2,-19,89,85,39,482,3,-19,90,83,40,459,3,-17,90,80,40,459,1,-17,90,79,40,430,2,-16,90,73" + }, + { + "k": "3cc243", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AWH67G", + "registration": "D-CAWH", + "type": "C56X", + "squawk": "1342", + "country": "Germany" + }, + "p": "653,8170,522052,417,277,193,40,-1117,85,-12,277,193,40,-1091,81,-13,277,181,40,-977,71,-16,277,156,40,-852,60,-19,277,141,40,-824,60,-21,277,140,31,-630,45,-14,277,141,41,-839,59,-3,276,142,40,-828,56,-20,276,141,40,-816,34,-21,258,137,39,-557,-304,-19,221,131,41,-495,-360,-21,220,129,40,-478,-355,-19,220,128,40,-474,-356,-21,219,128,71,-829,-617,-35,220,123,40,-456,-335,-4,219,123,40,-451,-348,-1,218,124,40,-463,-347,0,228,125,40,-638,-181,-1,248,113,40,-571,-141,1,248,103,41,-558,-137,0,248,101,39,-537,-135,0,248,101,40,-541,-141,0,247,101,40,-501,-172,1,214,99,40,-19,-353,-13,176,98,40,376,-178,-21,79,96,41,529,121,-22,69,95,50,601,110,-5,76,81,41,460,72,-16,75,79,40,429,76,-16,74,75,31,293,51,-12,74,61,40,341,60,-13,74,61,39,323,54,-13,73,60,59,389,69,-28,74,24" + }, + { + "k": "4ca9c3", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR9ED", + "registration": "EI-EVC", + "type": "B738", + "squawk": "4636" + }, + "p": "653,8348,518295,436,111,184,40,678,-478,52,165,186,40,209,-659,51,169,190,40,227,-678,54,168,191,132,2905,-1525,93,125,208,121,2880,-1333,0,128,205,120,3270,-870,0,109,208,130,3649,-815,1,110,208,120,3335,-757,0,110,208,120,3428,-670,1,106,211,121,3481,-641,0,106,211,130,3751,-706,1,107,209,132,3719,-713,1,107,207,121,3408,-666,0,107,209,121,3619,-291,0,96,212" + }, + { + "k": "3c5eee", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EWG32ME", + "registration": "D-AGWN", + "type": "A319", + "squawk": "5672", + "country": "Germany" + }, + "p": "653,8541,512684,606,101,195,120,3430,-377,119,98,213,132,4049,-364,109,98,215,121,3700,-437,64,104,222,121,3705,-569,111,104,221,129,3902,-613,97,104,218,120,3796,-612,9,104,239,120,3895,-641,1,105,236,120,3880,-655,0,105,234,131,4177,-721,2,106,231,132,4131,-728,-2,106,230,121,3806,-689,3,106,235,121,3865,-712,1,106,234" + }, + { + "k": "c078ba", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "TSC251", + "registration": "C-GTSR", + "type": "A332", + "squawk": "0667" + }, + "p": "653,8802,511464,1014,324,242,120,-2508,2074,64,322,239,132,-2808,2231,4,322,240,121,-2594,2038,-1,321,238,120,-2599,2017,0,321,240,130,-2849,2183,0,321,241,120,-2663,2015,0,321,241,120,-2690,2012,0,321,242,120,-2721,2011,-1,320,242,131,-3005,2191,0,320,242,132,-3026,2231,0,326,244,121,-3330,1626,-1,303,241" + }, + { + "k": "4d2384", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR3417", + "registration": "9H-VUW", + "type": "B38M", + "squawk": "0506" + }, + "p": "653,8819,532572,1175,120,239,120,3685,-1292,0,121,238,132,3750,-1627,0,134,236,122,3076,-1812,1,134,239,138,3496,-2082,1,134,240,131,3291,-1985,0,135,239,120,2961,-1815,1,135,237,120,2919,-1806,0,135,236,120,2873,-1803,1,136,235,132,3036,-2008,1,144,233,131,2618,-2226,0,144,234,120,2375,-2042,1,144,235,120,2367,-2053,1,144,233" + }, + { + "k": "486073", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM741", + "registration": "PH-BKR", + "type": "B78X", + "squawk": "2120", + "country": "Kingdom of the Netherlands" + }, + "p": "653,9833,516904,956,262,244,120,-4189,-396,1,261,245,132,-4603,-454,1,261,246,121,-4231,-435,-2,261,245,120,-4200,-449,0,260,246,130,-4504,-496,0,260,247,120,-4153,-496,0,256,246,121,-4013,-766,0,253,243,140,-4653,-924,0,252,242" + }, + { + "k": "4d23fd", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR41VQ", + "registration": "9H-QEU", + "type": "B738", + "squawk": "2762" + }, + "p": "653,10802,510360,1081,316,228,120,-2719,1770,-1,316,228,132,-3029,1934,0,315,229,120,-2758,1753,-1,315,229,120,-2801,1744,0,315,228,131,-2944,1998,-1,322,232,120,-2497,1970,-96,322,229,120,-2492,1929,-131,321,230,121,-2575,1977,-148,321,230,100,-2451,1298,-120,306,215,30,-769,341,-38,306,211,41,-1015,450,-55,306,205,40,-980,401,-58,299,197,31,-779,265,-52,299,193,40,-995,334,-43,299,179,40,-875,290,-19,299,160,40,-802,266,-25,299,152,40,-783,262,-25,298,152,40,-780,251,-18,299,144,40,-719,263,-25,314,141,40,-556,371,-27,318,139" + }, + { + "k": "06a139", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "QTR69N", + "registration": "A7-BAW", + "type": "B77W", + "squawk": "4614", + "country": "Qatar" + }, + "p": "653,10820,512244,988,92,267,120,4506,-403,0,101,266,132,4939,-603,0,101,266,121,4497,-575,1,102,266,120,4434,-583,1,102,264,131,4776,-649,1,102,264,121,4451,-623,0,103,264,120,4393,-635,1,103,265,120,4350,-646,1,103,263,129,4638,-708,1,104,259" + }, + { + "k": "407777", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "CFE2GH", + "registration": "G-LCAB", + "type": "E190", + "squawk": "1406", + "country": "United Kingdom" + }, + "p": "653,11539,518034,259,204,138,40,-325,-455,-40,204,141,40,-331,-461,-21,205,139,40,-563,-345,-7,241,140,40,-714,-238,-2,242,141,40,-733,-245,1,242,143,31,-553,-185,0,241,142,40,-728,-245,-14,242,141,41,-725,-245,-21,242,138,40,-693,-235,-20,242,137,39,-678,-230,-7,241,136,41,-704,-240,-1,241,136,40,-685,-234,1,241,138,40,-696,-238,-18,241,137,71,-1410,-100,-13,273,143,40,-828,27,-10,273,141,40,-782,25,-20,273,132,40,-705,22,0,273,121,40,-638,88,-1,309,109,40,-221,329,0,0,97,41,256,241,0,58,78,39,407,24,0,93,66,40,339,-18,-17,95,54,40,310,-12,-22,93,55,40,325,-9,-21,93,59" + }, + { + "k": "ab72dc", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "FDX5184", + "registration": "N837FD", + "squawk": "5236", + "country": "United States" + }, + "p": "653,13088,513008,862,95,234,120,3819,-270,-110,98,217,132,3910,-464,-97,110,207,121,3367,-777,-19,110,204,39,1033,-243,-37,111,200,40,1078,-250,-31,108,197,40,1079,-180,-3,103,198,39,1090,-157,0,103,200,52,1440,-209,1,103,199,40,1105,-162,0,103,199,40,1108,-164,0,103,199,40,1093,-162,0,103,200,40,1114,-167,1,103,201,40,1130,-137,0,98,203,41,1162,-87,1,96,202,39,1126,-64,0,95,201,40,1138,-63,0,95,201,40,1129,-63,-41,95,200,40,1121,-65,-38,95,197,41,1113,-64,-35,95,194,40,1112,-66,-7,95,196,50,1391,-82,1,95,194,41,1114,-68,-1,96,191,40,1061,-66,-47,96,187,31,806,-50,-34,96,182,41,1039,-67,-49,96,178,39,907,-58,-17,96,151,40,846,-57,-29,96,146,40,814,-53,-36,96,144,40,822,-55,-36,96,143,40,790,-53,-17,96,139,40,758,-50,-10,96,129" + }, + { + "k": "4d24c2", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "WZZ2050", + "registration": "9H-WZW", + "type": "A320", + "squawk": "3470", + "country": "Malta" + }, + "p": "653,13997,521508,780,65,222,120,3633,977,75,75,232,132,4373,794,77,73,240,121,4014,724,85,74,235,120,4039,694,49,74,239,130,4409,611,47,80,238,120,4198,477,3,80,242,120,4214,464,0,80,241,120,4225,453,0,80,243,131,4663,313,0,84,244" + }, + { + "k": "4ca740", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR86GG", + "registration": "EI-EBY", + "type": "B738", + "squawk": "4634", + "country": "Ireland" + }, + "p": "653,14043,519971,658,67,212,120,3608,697,117,78,221,132,4309,573,87,78,237,120,4109,556,90,78,238,120,4041,343,78,83,236,131,4564,351,57,83,240,121,4098,-92,27,111,238,121,3988,-949,1,111,242,120,3940,-938,1,111,242,129,4189,-1019,0,112,240,132,4268,-1061,1,112,240" + }, + { + "k": "5004c3", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "T7EZZ", + "registration": "T7-EZZ", + "type": "GA6C", + "squawk": "7542", + "country": "San Marino" + }, + "p": "653,14106,521418,470,307,199,40,-1039,258,-16,278,193,40,-1119,87,-16,277,191,40,-1101,86,-15,277,189,40,-1097,85,-15,277,184,40,-1018,78,-12,277,167,31,-720,54,-10,277,158,40,-939,70,-5,277,158,41,-912,68,0,277,152,40,-888,65,-6,277,153,39,-862,62,-26,277,150,41,-880,63,-26,277,151,40,-878,63,-3,277,146,40,-825,58,-8,277,140,71,-1450,74,-48,254,139,40,-574,-320,-25,219,131,40,-465,-367,-10,218,128,41,-457,-364,-19,217,128,39,-448,-355,-20,218,125,40,-446,-351,-14,218,125,41,-458,-356,-18,228,125,39,-634,-219,-1,242,126,40,-640,-216,0,241,124,40,-634,-215,0,241,124,40,-628,-215,0,241,124,40,-607,-210,0,241,112,41,-534,-182,0,241,101,51,-625,-239,0,216,100,40,2,-348,-15,170,99,40,238,-317,-32,113,104,31,445,19,-12,77,96,41,494,80,-9,74,82,39,445,79,-17,74,80,41,383,66,-15,74,60,39,329,58,-12,75,60,40,348,59,-13,75,62,60,445,78,-32,74,24" + }, + { + "k": "4ca303", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR57SC", + "registration": "EI-DLX", + "type": "B738", + "squawk": "0553" + }, + "p": "653,14235,530722,1110,122,235,120,3590,-1340,0,122,237,132,3949,-1503,1,122,240,121,3449,-1525,1,127,238,120,3337,-1541,0,127,237,130,3619,-1631,1,122,236,121,3520,-1347,0,123,236,121,3526,-1392,1,123,236,120,3465,-1377,1,123,236,129,3672,-1482,1,123,236,132,3769,-1541,0,123,237,121,3416,-1422,0,124,238" + }, + { + "k": "7380c3", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ELY008", + "registration": "4X-EDD", + "type": "B789", + "squawk": "5221", + "country": "Israel" + }, + "p": "653,14638,512888,1115,106,267,120,4439,-772,0,106,269,132,4859,-864,1,106,267,121,4424,-809,1,106,266,120,4350,-815,1,107,266,131,4701,-903,-1,107,264,121,4345,-853,2,107,263,120,4238,-853,0,108,265,120,4243,-870,1,108,264,129,4535,-952,0,108,262" + }, + { + "k": "4010ed", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY42DJ", + "registration": "G-EZBY", + "type": "A319", + "squawk": "3404", + "country": "United Kingdom" + }, + "p": "653,14802,518568,811,73,222,120,3831,598,94,78,228,132,4304,452,102,83,226,121,4021,318,42,83,232,120,4027,321,2,83,234,130,4406,347,0,82,234,120,4045,331,0,87,233,120,3786,-707,1,109,227,120,3745,-801,0,109,227,131,4079,-888,0,110,228,132,4117,-919,2,110,229" + }, + { + "k": "484555", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM1137", + "registration": "PH-BXW", + "type": "B738", + "squawk": "7345", + "country": "Kingdom of the Netherlands" + }, + "p": "653,15719,531017,864,282,205,120,-3596,432,-20,281,207,132,-3911,742,-10,290,208,121,-3543,762,-1,289,208,120,-3553,721,0,289,211,130,-3945,788,0,289,215,120,-3683,757,0,290,214,120,-3789,312,-1,274,213,120,-3849,132,0,273,211,131,-4097,122,-1,273,208,132,-4142,109,0,272,209" + }, + { + "k": "4082b5", + "m": { + "kind": "helicopter", + "layer": "flights", + "callsign": "GPMMC", + "registration": "G-PMMC", + "type": "A139", + "squawk": "7432", + "helicopter": true + }, + "p": "652,16100,527842,72,57,75,33,302,122,0,56,75,43,401,160,0,57,75,44,406,164,0,57,74,35,327,130,0,56,75,40,376,150,0,56,76,55,518,207,0,57,76,64,608,242,0,57,77" + }, + { + "k": "4ca8d4", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR77CN", + "registration": "EI-ENI", + "type": "B738", + "squawk": "1355", + "country": "Ireland" + }, + "p": "653,16208,519110,470,280,177,40,-1011,108,-27,280,176,40,-1000,106,-38,280,173,40,-978,104,-38,279,171,40,-983,97,-36,279,170,40,-969,102,-34,280,169,31,-725,78,-10,280,159,40,-910,98,-26,280,157,41,-907,91,-2,273,153,40,-842,-9,0,269,139,39,-795,-10,0,269,138,41,-816,-12,-21,269,139,39,-794,-12,-10,268,137,41,-792,-22,-9,267,135,71,-1390,-51,-17,266,134,40,-768,-29,-9,267,131,40,-681,-139,-5,222,125,40,-446,-349,-27,218,121,40,-444,-341,-34,219,123,40,-451,-336,-22,220,117,41,-295,-324,-7,172,93,39,323,-234,-10,116,87,41,492,27,-9,79,83,39,389,176,-20,44,88,40,331,221,-17,43,77,40,292,193,-15,43,74,54,352,235,-27,43,32" + }, + { + "k": "aae6d5", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DAL83", + "registration": "N801NW", + "type": "A333", + "squawk": "7565" + }, + "p": "653,16548,504692,643,330,235,120,-2251,2100,55,324,237,132,-2697,2262,56,322,241,121,-2558,2075,51,322,242,120,-2581,2078,42,322,246,130,-2827,2251,56,322,243,120,-2435,2105,44,334,242,120,-1907,2346,19,333,249,120,-1959,2385,22,333,250,131,-2358,2530,29,330,249,132,-2420,2542,0,330,248,121,-2243,2324,0,330,249,121,-2293,2346,0,329,250" + }, + { + "k": "44cc48", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BEL2AH", + "registration": "OO-SBH", + "type": "A20N", + "squawk": "4416", + "country": "Belgium" + }, + "p": "653,16573,516450,711,278,180,120,-3048,260,-98,278,177,40,-1006,82,-33,278,172,40,-965,79,-39,277,171,31,-754,62,-17,278,163,40,-898,73,-16,277,150,41,-858,-1,-27,263,145,40,-820,-56,-27,264,142,39,-803,-56,-30,264,143,41,-838,-59,-29,263,142,40,-807,-58,-27,263,141,40,-809,-59,-27,263,139,71,-1416,-105,-47,263,136,40,-775,-57,-24,263,134,41,-770,-57,-12,263,134,39,-731,-141,0,241,134,40,-667,-234,0,240,134,40,-668,-234,0,241,131,41,-728,-23,-22,292,129,39,-690,148,-8,271,130,41,-749,-35,0,265,129,39,-739,-41,0,265,129,40,-731,-43,0,265,128,40,-732,-42,0,265,128,41,-743,-44,-5,264,128,50,-922,-63,-11,264,126,41,-705,-50,-8,263,113,40,-606,-44,-7,263,102,31,-450,-35,-4,262,101,40,-587,-46,-6,263,102,40,-582,-45,-4,263,102,40,-420,-209,-5,189,105,40,101,-359,-6,136,105,40,504,-189,-10,101,99,40,549,-10,-27,90,92,40,513,2,-17,90,88" + }, + { + "k": "48c2a6", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR9GA", + "registration": "SP-RZG", + "type": "B38M", + "squawk": "3410", + "country": "Poland" + }, + "p": "652,16622,520255,633,73,224,121,3903,493,94,84,233,132,4540,295,95,84,240,121,4234,263,83,83,241,120,4255,333,71,83,242,130,4513,324,74,84,243,120,4240,307,60,83,242,120,4235,27,6,93,243,120,4262,-167,1,94,244,131,4672,-186,1,94,244" + }, + { + "k": "4bb248", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "THY6DL", + "squawk": "3554", + "country": "Turkey" + }, + "p": "653,17241,514761,584,280,196,40,-1121,103,-64,267,197,40,-1030,-210,-55,249,186,40,-982,-232,-47,250,178,40,-727,-392,-7,215,166,40,-537,-456,0,217,156,31,-417,-349,-19,217,155,40,-537,-456,-22,216,156,41,-537,-458,-20,217,154,40,-522,-444,-22,216,154,39,-504,-431,-16,217,149,41,-496,-424,-12,216,143,40,-499,-417,-13,224,147,40,-747,-243,-12,246,148,71,-1419,-299,-19,267,150,40,-856,-36,-2,266,151,40,-850,-40,-12,265,148,40,-831,-42,-9,266,146,40,-835,28,-8,276,146,40,-833,47,0,275,147,41,-838,44,0,274,145,39,-813,37,0,274,144,40,-810,31,1,273,145,40,-833,29,0,273,144,40,-815,25,-2,273,144,40,-809,28,-24,273,138,41,-749,29,-22,274,125,50,-899,41,-39,274,125,41,-695,26,-12,273,115,40,-587,37,-5,299,99,31,-197,229,-3,350,94,40,266,276,-5,46,92,40,374,231,-10,46,92,40,486,124,-19,76,91,40,468,63,-18,78,77,40,418,59,-16,77,76,40,380,53,-15,77,66,40,380,53,-15,78,69" + }, + { + "k": "4cae11", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ITY221", + "registration": "EI-HLA", + "type": "BCS1", + "squawk": "2213", + "country": "Ireland" + }, + "p": "653,17345,511375,616,106,220,120,3310,-1023,101,118,218,132,3706,-1242,71,118,227,121,3501,-1190,83,118,233,121,3453,-1190,105,119,227,129,3734,-1306,58,119,235,120,3436,-1218,66,119,233,120,3491,-1256,20,119,245" + }, + { + "k": "3009b5", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DLA4AJ", + "registration": "I-JENG", + "type": "E190", + "squawk": "2202", + "country": "Italy" + }, + "p": "653,18225,512964,777,101,195,120,3328,-467,86,106,205,132,3866,-697,85,106,220,121,3699,-677,77,106,224,120,3676,-688,27,107,224,130,3950,-754,1,107,221,120,3625,-705,1,107,223,120,3623,-720,1,108,223,120,3582,-723,0,108,223,131,3775,-987,0,114,220,132,3748,-1074,2,115,222" + }, + { + "k": "406a93", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY65XP", + "registration": "G-EZWS", + "type": "A320", + "squawk": "6277", + "country": "United Kingdom" + }, + "p": "653,18243,517610,899,264,201,120,-3457,-217,-1,264,199,132,-3792,-250,0,264,201,121,-3508,103,1,281,203,120,-3428,398,-1,280,200,131,-3696,434,0,281,200,121,-3128,1093,-1,315,224,120,-2810,1711,-1,315,227,120,-2805,1714,-31,314,222,129,-2357,2127,-114,328,218,132,-2413,1967,-140,315,200,40,-835,503,-42,315,197,40,-814,496,-39,315,194,40,-843,462,-43,309,189,40,-861,403,-39,304,183,40,-947,315,-47,298,183,40,-966,304,-43,297,179,40,-949,294,-24,298,178" + }, + { + "k": "aaa6dd", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL49", + "registration": "N786AN", + "type": "B772", + "squawk": "5460" + }, + "p": "653,19324,504187,767,337,245,120,-2148,2261,71,326,248,132,-2645,2426,60,325,249,121,-2474,2210,0,324,248,120,-2493,2195,0,324,252,130,-2752,2387,-1,324,252,121,-2541,2195,0,327,250,121,-2405,2301,0,327,252,120,-2391,2277,-1,327,251,129,-2583,2432,-1,327,250,132,-2671,2484,0,327,252,121,-2490,2287,0,327,255,121,-2563,2323,-1,326,256" + }, + { + "k": "3c65c4", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DLH7HH", + "registration": "D-AIND", + "type": "A20N", + "squawk": "2014", + "country": "Germany" + }, + "p": "653,19756,511085,837,103,232,120,3967,-583,80,103,239,132,4364,-657,80,104,243,121,4114,-637,69,104,243,120,4007,-637,58,104,243,130,4348,-708,52,105,241,120,3957,-660,5,105,243,120,3926,-669,-1,105,238,121,3900,-681,3,105,240" + }, + { + "k": "4aca8f", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "NSZ51M", + "registration": "SE-RTO", + "type": "B38M", + "squawk": "6201", + "country": "Sweden" + }, + "p": "653,19888,520096,710,214,194,120,-1830,-1696,-81,214,184,40,-587,-549,-29,214,182,40,-577,-538,-31,214,179,31,-442,-414,-23,214,177,40,-565,-533,-32,213,175,41,-560,-524,-32,214,171,40,-545,-516,-30,213,171,39,-528,-502,-25,213,171,41,-563,-500,-12,217,162,39,-539,-438,-13,218,152,41,-546,-428,-19,219,152,71,-957,-757,-23,218,150,40,-525,-426,-10,218,150,40,-521,-429,0,217,148,40,-510,-413,-19,218,145,40,-651,-330,-21,239,149,40,-739,-271,-21,249,151,41,-843,-131,-21,256,150,39,-812,-128,-19,256,149,40,-824,-129,-10,256,148,40,-819,-126,-10,256,147,40,-763,-124,-4,256,131,40,-724,-23,1,284,130,41,-727,117,0,284,129,50,-889,146,0,285,128,41,-720,111,0,276,127,40,-628,-206,0,229,131,31,-439,-236,0,239,130,40,-720,-93,0,262,127,40,-720,-49,-3,267,126,40,-713,-23,-22,267,125,40,-705,-19,-20,268,122,40,-699,-1,-22,277,122,40,-680,61,-15,278,122,40,-676,65,-9,288,119" + }, + { + "k": "43eaad", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "MATTI", + "registration": "M-ATTI", + "type": "TBM9", + "squawk": "4147", + "country": "United Kingdom" + }, + "p": "653,20596,516723,559,285,156,40,-862,148,-48,285,154,40,-845,143,-51,285,150,40,-835,140,-52,285,145,40,-781,128,-52,279,138,40,-767,-51,-45,262,128,31,-568,-50,-31,256,131,40,-689,-178,-30,247,126,41,-671,-180,-21,247,121,40,-638,-170,-6,246,122,40,-657,-180,-18,246,126,40,-658,-185,-17,245,121,40,-631,-180,0,245,123,40,-668,-179,0,250,130,71,-1281,-293,0,250,131,40,-701,-161,0,250,131,40,-710,-165,0,250,131,40,-704,-159,-9,250,126,40,-689,-105,-21,261,124,40,-720,-74,-19,260,129,41,-737,-79,-12,260,124,39,-676,-69,0,261,115,40,-623,-61,0,261,109,40,-652,-65,-10,261,118,40,-628,-59,-20,262,109,41,-624,-58,-1,261,114,40,-643,-68,-5,260,104,50,-676,-82,-5,251,96,41,-285,-265,-13,202,91,40,-195,-262,-18,205,67,31,-126,-163,-9,205,62,40,-147,-192,-14,205,58,40,-134,-174,-11,206,47" + }, + { + "k": "44c06a", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "PGC62E", + "registration": "OO-PCJ", + "type": "PC12", + "squawk": "1000" + }, + "p": "653,21616,507997,315,132,82,40,354,-199,32,132,82,40,343,-194,29,132,83,40,354,-202,29,132,83,40,355,-202,29,132,85,40,363,-207,26,132,88,31,288,-164,21,132,89,40,377,-216,28,132,90,41,370,-222,31,142,85,40,278,-255,22,145,88,39,283,-264,25,146,91,121,841,-827,68,162,90,131,570,-1093,34,162,108,121,627,-1199,0,162,124" + }, + { + "k": "3c55c7", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EWG92N", + "registration": "D-AENG", + "type": "A20N", + "squawk": "0545", + "country": "Germany" + }, + "p": "653,22434,522296,1068,73,244,120,4110,745,54,74,245,132,4561,806,48,74,245,121,4226,731,7,74,246,120,4182,704,3,75,246,130,4543,747,-2,75,244,120,4166,666,0,75,243,120,4174,654,1,75,244" + }, + { + "k": "471d6a", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "WZZ6MG", + "registration": "HA-LDQ", + "type": "A21N", + "squawk": "3434", + "country": "Hungary" + }, + "p": "653,24188,511527,976,122,233,120,3471,-1321,44,112,242,132,4465,-651,32,102,243,121,4002,-720,3,107,244,120,3933,-772,-1,107,242,130,4328,-695,1,102,242,120,3996,-547,-1,102,240,120,3984,-562,2,103,242" + }, + { + "k": "471f65", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "WZZ55", + "registration": "HA-LXD", + "type": "A321", + "squawk": "3402", + "country": "Hungary" + }, + "p": "653,24560,510634,896,84,231,120,3956,255,60,84,235,132,4435,-317,14,98,242,122,4162,-409,57,103,241,138,4645,-712,28,104,245,131,4417,-701,0,104,244,120,4037,-624,1,102,244,120,4075,-556,0,102,246" + }, + { + "k": "44cdd1", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BEL5UB", + "registration": "OO-SNQ", + "type": "A320", + "squawk": "4414", + "country": "Belgium" + }, + "p": "653,25341,513489,880,283,226,120,-3879,531,63,282,231,132,-4214,547,79,282,228,121,-3922,493,-1,281,230,120,-3875,524,1,291,232,130,-3719,1426,-2,302,232,120,-3423,1339,0,302,233,120,-3469,1285,-1,296,232,120,-3627,1112,-15,296,230,131,-3195,1786,-100,329,223,132,-2235,2195,-155,327,212,121,-2287,1671,-122,311,195,39,-845,457,-42,312,191,40,-907,388,-43,302,186,40,-923,347,-43,302,183,40,-916,333,-38,300,178" + }, + { + "k": "4ca761", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR59QZ", + "registration": "EI-EFF", + "type": "B738", + "squawk": "4632", + "country": "Ireland" + }, + "p": "653,26793,528535,1080,97,245,120,4288,-337,32,97,243,132,4715,-385,0,98,243,121,4279,-369,1,98,240,120,4209,-370,0,96,240,130,4648,313,0,80,246,120,4342,418,1,81,248" + }, + { + "k": "484186", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "TRA38B", + "registration": "PH-HZL", + "type": "B738", + "squawk": "1000" + }, + "p": "653,27005,502376,969,31,249,120,2133,2266,-59,31,250,132,2349,2474,-34,31,235,121,2051,2127,-123,31,220,120,1942,1998,-63,32,215,130,1764,2193,-83,24,207,40,473,667,-38,24,203,40,472,664,-39,24,198,40,457,642,-37,24,194,40,444,625,-35,24,189,41,445,621,-34,24,184,39,422,585,-32,24,180,40,418,577,-33,24,175,40,414,572,-33,24,172,40,317,586,-33,18,171,40,293,571,-21,18,164,41,290,558,-26,18,160,51,363,690,-37,18,159,40,294,546,-32,19,158,40,293,536,-29,18,157,31,224,417,-21,18,156,40,290,533,-29,18,156,40,274,537,-27,17,154,40,249,510,-6,21,145,40,443,426,-1,33,139,40,461,420,1,34,142,40,594,321,0,56,134,40,692,115,-1,84,115" + }, + { + "k": "3c654e", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "LHX942", + "registration": "D-AIJN", + "type": "A20N", + "squawk": "2507", + "country": "Germany" + }, + "p": "653,27164,513954,1149,280,226,122,-3843,413,-1,280,223,130,-4127,428,-3,279,223,121,-3847,387,2,279,225,120,-3828,372,-1,279,224,131,-4147,387,-1,278,223,121,-3826,447,0,296,227,120,-3100,1549,-1,310,229,120,-3058,1564,-11,309,229,129,-3260,1649,-106,309,218,132,-2922,1682,-116,328,201,121,-1901,1864,-149,328,203,121,-2050,1685,-96,313,177" + }, + { + "k": "3c65a3", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DLH415", + "registration": "D-AIMC", + "type": "A388", + "squawk": "3472", + "country": "Germany" + }, + "p": "652,28511,510473,1178,105,256,121,4238,-708,1,105,256,132,4636,-795,1,105,255,121,4235,-743,0,106,255,120,4181,-753,0,106,257,130,4516,-832,2,106,256,120,4174,-787,1,107,257" + }, + { + "k": "4d23f9", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR28TV", + "registration": "9H-QEQ", + "type": "B738", + "squawk": "0540", + "country": "Malta" + }, + "p": "653,30427,524098,1177,122,237,120,3508,-1368,0,123,237,132,3839,-1513,0,123,236,121,3489,-1400,1,123,234,120,3392,-1379,1,124,234,130,3681,-1514,0,124,235,121,3387,-1417,1,124,236,121,3409,-1441,1,124,236" + }, + { + "k": "3c65d7", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DLH7MA", + "registration": "D-AINW", + "type": "A20N", + "squawk": "6666", + "country": "Germany" + }, + "p": "653,30684,514460,1148,289,220,120,-3610,769,0,289,221,132,-3922,819,-118,288,214,122,-3411,699,-107,288,194,138,-3633,700,-155,278,180,131,-3258,-182,-183,264,165,41,-965,-66,-44,264,166,39,-934,-62,-37,264,162,40,-937,-65,-39,264,164,40,-940,-63,-28,264,162,40,-931,-65,-21,264,162,40,-924,-64,-30,264,159,40,-888,-64,-25,263,153,41,-874,-63,-20,263,146,39,-797,-58,-21,263,140,40,-788,-58,-20,263,136,41,-788,-58,-20,263,135,30,-589,-45,-16,263,134,41,-781,-58,-6,263,134,40,-636,-222,0,205,133,31,71,-340,0,147,129,40,667,-121,0,82,126,40,722,51,0,84,126,40,647,160,0,39,128,40,-53,436,0,319,133,40,-717,82,0,262,132,40,-764,-54,0,264,134,40,-599,-257,0,199,133" + }, + { + "k": "44f684", + "m": { + "kind": "military", + "layer": "military", + "callsign": "BAF641", + "registration": "CT-04", + "type": "A400", + "squawk": "5170", + "military": true + }, + "p": "649,31496,502956,671,0,0,122,2408,1797,-1,40,112,60,1168,875,-74,40,109,49,932,703,-63,40,109,42,773,583,-55,40,103,42,727,567,-31,39,95,40,627,490,-39,40,88,38,600,466,-38,40,90,41,634,483,-44,40,86,30,418,334,-26,38,85,30,487,333,-36,48,86,39,714,336,-41,55,80,50,876,436,-55,52,84,43,797,361,-26,61,75,41,737,131,-18,74,66,38,598,144,-18,69,57,40,616,132,-2,71,58,41,590,35,0,93,50,40,384,-199,0,162,50,40,87,-257,0,194,42,39,-111,-259,-6,198,40,40,-94,-236,-14,194,30,40,-91,-222,-14,194,33,42,-104,-249,-14,195,36,39,-87,-205,-14,196,29,46,-100,-258,-17,193,33" + }, + { + "k": "345691", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "IBE07WM", + "registration": "EC-MXU", + "type": "A20N", + "squawk": "3370" + }, + "p": "653,31597,506970,900,44,229,120,2726,1784,0,44,231,132,3024,1955,0,44,230,121,2807,1793,0,45,230,120,2631,1852,0,36,233,130,2518,2171,0,35,228,120,2416,1929,1,48,228,120,2922,1634,0,48,224,121,2924,1615,1,48,223" + }, + { + "k": "400879", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW926C", + "registration": "G-EUPJ", + "type": "A319", + "squawk": "4766", + "country": "United Kingdom" + }, + "p": "653,32008,510239,1110,106,245,120,3955,-701,5,106,242,132,4361,-786,1,106,242,121,3982,-737,-2,106,241,121,3904,-735,3,107,238,129,4178,-807,-1,107,238" + }, + { + "k": "c058dd", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ACA808", + "registration": "C-GHQY", + "type": "B788", + "squawk": "6252", + "country": "Canada" + }, + "p": "653,33166,524106,453,74,196,40,1096,197,-60,74,191,40,1024,184,-46,74,176,40,972,172,-35,74,163,40,847,149,-11,74,145,40,840,145,-15,74,149,31,654,114,-19,74,148,40,850,147,-26,77,147,41,779,-96,-9,111,130,40,707,-170,-3,112,129,39,695,-170,-16,112,127,41,704,-173,-27,112,129,40,744,-112,-25,80,135,40,584,339,-34,30,148,71,772,823,-42,29,141,40,528,336,-15,76,121,40,674,27,-5,88,114,40,667,16,0,88,113,41,569,-88,1,143,89,39,232,-279,-1,155,88,41,170,-293,0,177,85,40,-22,-302,1,183,82,39,-27,-275,-1,183,74,40,-23,-260,-4,184,69,41,-22,-240,-14,183,65,39,-20,-222,-13,183,63,41,-22,-238,-14,183,67,49,-26,-300,-15,183,69,41,-14,-150,-5,180,26,41,10,-55,0,132,10,111,71,-39,0,132,10,80,79,-29,0,138,10,40,43,-30,0,138,12,40,38,-27,0,138,10,40,5,-39,0,183,12" + }, + { + "k": "34324e", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "IBE07AP", + "registration": "EC-KUB", + "type": "A319", + "squawk": "1000" + }, + "p": "653,33984,509865,732,33,228,120,1910,2067,-109,25,229,40,553,749,-36,25,226,40,545,729,-38,25,224,31,420,563,-26,25,219,40,532,713,-23,25,218,41,542,718,-21,25,217,40,524,699,-35,25,213,39,506,670,-36,25,207,41,514,673,-37,26,202,40,501,654,-39,25,198,39,470,612,-22,25,182,72,806,965,-36,10,165,40,158,578,-25,10,162,41,165,578,-18,10,162,39,166,564,-18,10,160,40,166,566,-18,10,157,40,263,535,-18,24,157,41,371,520,-19,24,154,39,353,499,-18,24,154,40,366,509,-18,24,155,40,359,516,-18,23,155,40,353,515,-17,22,154,40,465,423,-10,48,135,41,626,273,-10,80,119,50,843,40,-3,86,115,41,593,-88,1,144,94,40,222,-279,0,176,83,31,-12,-223,1,183,78,40,-24,-282,0,182,76,40,-26,-241,0,183,65,40,-19,-231,-10,184,63,40,-23,-230,-13,184,64,40,-19,-227,-14,182,64,40,-22,-235,-14,184,65,30,-16,-172,-10,184,65,31,-12,-142,-5,183,34" + }, + { + "k": "4bb154", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "THY6605", + "registration": "TC-LJT", + "type": "B77L", + "squawk": "6255", + "country": "Turkey" + }, + "p": "653,34405,509722,630,104,192,62,1643,-263,-31,104,189,38,984,-158,-18,104,188,40,1028,-167,-20,104,188,40,1023,-168,-20,105,186,51,1311,-214,-25,105,186,40,1027,-171,-6,105,186,41,1011,-168,0,105,181,40,997,-167,-2,105,185,39,1001,-169,-20,105,182,41,1006,-169,-20,105,182,40,978,-167,-19,105,178,40,985,-124,-21,95,177,71,1805,9,-30,89,177,40,1004,14,-15,89,178,40,992,12,-18,89,174,40,985,12,-32,89,172,40,967,11,-24,89,166,40,890,10,-10,89,154,41,880,139,-25,67,160,39,809,209,-26,68,156" + }, + { + "k": "48455d", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM12B", + "registration": "PH-BGF", + "type": "B737", + "squawk": "1000" + }, + "p": "653,34710,507850,719,15,222,120,958,2315,0,15,222,132,896,2558,-28,2,220,80,851,1473,-100,26,215,39,530,673,-42,26,208,41,526,674,-48,26,205,40,523,661,-49,26,203,40,500,632,-38,26,196,39,492,616,-41,27,190,52,614,770,-35,26,176,40,345,573,-19,9,167,40,164,591,-32,10,166,40,164,585,-28,10,163,40,163,569,-22,10,160,40,251,546,-20,24,159,41,386,530,-20,24,159,39,374,512,-20,24,158,40,371,512,-20,24,156,40,373,514,-19,24,154,40,374,508,-19,24,157,40,371,514,-18,23,155,41,359,516,-17,23,154,50,426,639,-20,22,151,41,401,470,1,48,133,40,670,88,0,86,114,31,516,21,0,86,112,40,612,-14,1,118,95,40,270,-267,0,153,88,40,87,-305,-1,181,86,40,-30,-307,1,182,86,40,-27,-287,0,183,76,40,-26,-271,-10,184,72,40,-22,-229,-16,185,58" + }, + { + "k": "4ca97c", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RUK65MT", + "registration": "EI-ESV", + "type": "B738", + "squawk": "0521", + "country": "Ireland" + }, + "p": "653,34791,509841,1117,108,244,120,3970,-814,0,108,244,132,4327,-909,1,109,243,121,3962,-851,1,109,242,120,3861,-841,0,109,241,130,4170,-929,2,110,242" + }, + { + "k": "484416", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM743", + "registration": "PH-BQM", + "type": "B772", + "squawk": "2107", + "country": "Kingdom of the Netherlands" + }, + "p": "653,35342,519555,540,245,196,40,-1043,-305,32,245,198,120,-3355,-618,80,266,210,132,-4038,-269,78,263,216,120,-3810,-283,56,262,225,120,-3914,-328,55,262,231,131,-4402,-383,54,262,236,120,-4074,-370,45,262,238,121,-4084,-440,19,257,239,121,-4083,-613,-1,256,239,130,-4365,-673,0,256,241,131,-4410,-698,0,256,243,120,-4015,-652,0,255,239,120,-3988,-664,0,255,240" + }, + { + "k": "06a2f5", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "QTR64P", + "registration": "A7-BHR", + "type": "B789", + "squawk": "7304", + "country": "Qatar" + }, + "p": "653,35392,522761,1116,114,256,120,4104,-1146,0,115,259,132,4487,-1276,1,115,258,122,3990,-1318,1,120,254,138,4413,-1578,1,120,256" + }, + { + "k": "471d70", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "WZZ298", + "squawk": "3471", + "country": "Hungary" + }, + "p": "653,35413,520337,988,110,227,120,3728,-843,2,110,227,132,4091,-949,1,111,229,121,3746,-884,0,111,227,120,3656,-876,0,111,225,130,3925,-957,0,112,225" + }, + { + "k": "3c65d2", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DLH8YH", + "registration": "D-AINR", + "type": "A20N", + "squawk": "0613", + "country": "Germany" + }, + "p": "653,36172,516665,1148,282,226,120,-3881,87,-1,270,225,132,-4326,9,1,270,227,121,-3975,-8,0,270,225,120,-3873,-20,-3,269,224,130,-4238,-34,1,269,228,120,-3972,-43,1,272,230,120,-3679,912,-2,296,229,121,-3569,1074,-1,296,228,130,-3892,1152,1,296,228,132,-3863,1239,-39,311,230,121,-2906,1758,-83,315,232,121,-2960,1779,-90,314,234" + }, + { + "k": "484cc3", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM9935", + "registration": "PH-EZS", + "type": "E190", + "squawk": "1164", + "country": "Kingdom of the Netherlands" + }, + "p": "653,36973,524821,366,75,167,40,935,151,-47,75,162,39,870,140,-26,75,149,41,857,114,-29,90,143,40,763,-147,-26,112,137,40,743,-182,-21,112,135,31,622,27,-15,62,150,40,766,285,-21,58,147,41,734,281,-29,58,146,40,740,273,-30,59,146,39,784,126,-30,86,139,41,800,45,-21,85,132,40,771,43,-5,85,128,40,544,-128,-1,148,95,71,384,-554,0,188,90,40,-44,-326,0,183,91,40,-31,-295,0,184,72,40,-19,-232,-10,183,63,40,-20,-239,-12,184,64,40,-18,-203,-15,183,56,41,-19,-214,-11,185,61,39,-21,-213,-12,183,61,39,-14,-163,0,183,37,41,21,-78,-5,165,18,39,67,-44,0,165,17,41,82,-33,0,141,17,41,66,-46,0,140,16,51,5,-73,0,183,16,39,-5,-57,0,183,17,40,-6,-61,0,183,16,31,33,-27,0,87,16,40,56,41,0,62,12,38,65,-29,0,132,17,43,88,-4,0,59,16" + }, + { + "k": "480c26", + "m": { + "kind": "military", + "layer": "military", + "callsign": "DIAMO10", + "registration": "L-06", + "type": "PC7", + "squawk": "3710", + "military": true + }, + "p": "652,37234,515893,305,85,61,40,33,-311,2,199,66,39,-639,12,-43,287,68,41,422,496,-48,43,110,40,243,255,-36,31,33,38,-471,-97,-39,238,75,31,75,-85,-33,221,42,42,1041,8,-28,94,76,45,844,-177,-21,105,94,35,6,-108,0,105,94,61,737,3,1,0,0,41,520,1,-1,0,0,37,478,-13,-1,0,0,39,469,-14,1,94,43,46,572,-48,-2,100,44,48,629,-84,8,104,47,33,156,-166,-6,153,37,35,9,-233,-3,189,46,31,308,65,2,110,14,40,719,-56,-2,99,53,40,473,-144,3,116,52,40,380,-115,-3,116,41,40,245,-217,0,151,40,40,-245,-257,0,218,50,41,-679,-77,4,259,68,36,-330,-4,-3,297,40,32,200,209,4,35,62,33,587,47,-5,80,76,44,323,-185,-19,134,54" + }, + { + "k": "ae144c", + "m": { + "kind": "military", + "layer": "military", + "callsign": "RCH471", + "registration": "05-5142", + "type": "C17", + "squawk": "1162", + "military": true + }, + "p": "651,37803,521271,1127,113,237,120,3780,-1024,1,114,235,132,4144,-1143,-25,114,230,120,3741,-1042,-40,114,235,121,3690,-1050,-57,114,227" + }, + { + "k": "aa6ccb", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL705", + "registration": "N771AN", + "type": "B772", + "squawk": "2550", + "country": "United States" + }, + "p": "653,38271,528766,1020,319,255,120,-1847,2451,0,350,259,132,-871,3028,0,351,260" + }, + { + "k": "3c4ad8", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DLH493", + "registration": "D-ABVX", + "type": "B744", + "squawk": "2245", + "country": "Germany" + }, + "p": "653,38285,522645,1176,114,257,120,4099,-1156,1,115,258,132,4501,-1293,0,115,259,121,4129,-1207,1,116,259,120,4094,-1219,-36,116,259" + }, + { + "k": "407600", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW429", + "registration": "G-NEOP", + "type": "A21N", + "squawk": "6275" + }, + "p": "653,39654,520754,567,246,180,120,-2950,-833,136,245,191,132,-3379,-964,16,245,196,121,-3282,-570,-1,264,196,120,-3400,-228,-1,264,199,130,-3705,-259,0,263,199,121,-3453,-214,0,265,200,121,-3496,-216,-27,264,197,118,-3275,-212,-96,264,189,40,-1082,-73,-41,264,185,41,-1074,-72,-41,264,183,50,-1326,-93,-49,264,182,41,-1039,-70,-35,264,179,40,-988,-70,-18,264,165,31,-722,-52,-21,263,161,40,-922,-67,-29,263,156,40,-862,-62,-19,263,146,40,-826,-61,-24,263,142,40,-812,-61,-18,263,142,40,-817,-60,-9,263,142,40,-804,-68,-1,256,140,40,-447,-368,0,181,135" + }, + { + "k": "a6745a", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DAL161", + "registration": "N515DN", + "type": "A359", + "squawk": "2126" + }, + "p": "653,39692,527433,515,318,211,39,-844,571,30,318,217,41,-883,596,26,318,223,120,-2445,1934,95,333,232,132,-1604,2619,93,341,238,121,-1437,2478,68,341,245" + }, + { + "k": "4cac87", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR63PD", + "registration": "EI-IFP", + "type": "B38M", + "squawk": "7307", + "country": "Ireland" + }, + "p": "653,39981,508122,1118,111,244,120,3893,-937,1,107,246,132,4367,-851,0,107,244,120,3926,-794,1,108,244" + }, + { + "k": "8991b4", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "CAL077", + "registration": "B-18306", + "type": "A333", + "squawk": "3116" + }, + "p": "653,40171,511106,1151,287,237,120,-3876,759,-1,287,237,132,-4298,821,-1,287,239,121,-3990,748,-1,287,240,120,-4016,524,0,281,238,130,-4379,434,0,278,238,120,-4075,355,-1,278,239,120,-4081,340,0,277,239,120,-4048,433,-1,280,238,131,-4440,461,0,279,237,132,-4454,446,0,279,237,121,-4063,389,0,279,236,121,-4092,378,0,278,237" + }, + { + "k": "ae0574", + "m": { + "kind": "military", + "layer": "military", + "callsign": "RCH2020", + "registration": "86-0023", + "type": "C5M", + "squawk": "5233", + "military": true + }, + "p": "651,40327,521869,1006,116,226,121,3621,-1071,1,116,228,132,4080,-1036,-1,111,230,122,3891,-692,0,102,230" + }, + { + "k": "480c2a", + "m": { + "kind": "military", + "layer": "military", + "callsign": "STICK18", + "registration": "L-10", + "type": "PC7", + "squawk": "3720", + "military": true + }, + "p": "652,40923,514502,73,134,81,39,256,-99,-13,142,34,40,538,28,3,81,46,40,529,43,-2,76,50,39,480,27,-1,83,45,42,446,44,1,80,37,31,278,65,2,68,32,37,287,94,-12,58,29,34,158,-43,-24,116,16" + }, + { + "k": "3c5b32", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "OCN874", + "registration": "D-AFYR", + "type": "A333", + "squawk": "2006", + "country": "Germany" + }, + "p": "653,41084,508774,1213,101,253,120,4206,-506,-94,101,251,132,4387,-599,-110,110,229,121,3701,-857,-27,110,236" + }, + { + "k": "020145", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "@@@@@@@@", + "registration": "CN-NMO", + "type": "A320", + "squawk": "1000", + "country": "Morocco" + }, + "p": "653,41239,519022,300,27,170,40,601,458,-10,42,165,40,636,441,-10,42,164,40,639,437,-9,42,165,40,522,482,-12,14,167,40,44,593,-17,1,163,31,20,451,-17,1,160,40,32,582,-20,5,161,41,224,562,-27,15,157,40,238,543,-29,15,157,39,247,547,-24,16,159,41,260,548,-21,16,156,40,240,539,-19,15,156,40,234,543,-11,16,155,71,1220,343,-8,88,131,41,548,-203,2,153,101,39,255,-318,-1,154,98,40,65,-343,-1,183,94,40,-26,-298,0,183,79,40,-23,-265,2,183,66,41,-23,-242,-14,183,66,39,-22,-239,-14,184,67,40,-21,-237,-13,183,66,40,-22,-240,-15,183,67,36,-19,-209,-7,183,48,44,-2,-118,-5,183,16,41,15,-44,0,183,12,50,49,-37,0,132,12,40,49,-14,0,93,9,41,44,-23,0,141,12,31,39,-28,0,141,13,41,43,-33,0,155,10,39,-2,-41,0,183,14,40,-4,-52,0,183,14,40,-5,-50,0,183,14,40,-4,-49,0,183,13,39,34,-17,0,87,10" + }, + { + "k": "44cdc2", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BEL8WD", + "registration": "OO-SNB", + "type": "A320", + "squawk": "1000" + }, + "p": "653,42562,506250,434,232,152,39,-716,-349,26,233,169,41,-598,-474,46,212,171,40,-511,-525,41,212,176,40,-531,-542,39,212,181,132,-1871,-1860,123,213,191" + }, + { + "k": "4bce61", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KOC22", + "registration": "TC-SSA", + "type": "FA8X", + "squawk": "3406", + "ladd": true, + "country": "Turkey" + }, + "p": "653,42896,525779,176,77,130,40,728,105,-16,76,125,40,710,47,-15,87,120,40,724,32,-16,85,124,40,719,34,2,86,122,40,722,35,-20,85,123,31,548,5,-14,111,113,40,384,-284,-2,148,100,41,175,-326,0,186,96,40,-41,-343,0,183,89,39,-28,-285,-4,183,75,41,-24,-267,-12,183,74,40,-24,-252,-16,183,67,40,-22,-232,-14,184,62,71,-33,-367,-22,182,56,40,-19,-207,-12,184,60,40,-20,-223,-10,184,59,39,10,-93,-5,183,11,200,78,-17,0,87,11,465,315,-5,0,79,11,39,46,2,0,87,13,40,86,3,0,87,13,57,75,-25,0,132,10" + }, + { + "k": "4ca813", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR7FE", + "registration": "EI-EKT", + "type": "B738", + "squawk": "4422" + }, + "p": "653,42937,509704,251,314,134,40,-671,286,31,290,147,40,-830,200,36,291,166,40,-926,228,44,291,178,40,-954,234,61,291,180,40,-968,237,58,291,185,31,-779,189,35,291,192,40,-1062,257,43,291,202,120,-3338,802,143,291,211,121,-3486,823,103,291,224,131,-4095,753,100,278,228,120,-3854,355,93,279,224,120,-3821,356,67,278,227,120,-3861,342,62,278,225,132,-4245,361,17,278,228,131,-4277,346,0,277,228,120,-3897,301,-1,277,227,120,-3870,290,0,277,225" + }, + { + "k": "407a3a", + "m": { + "kind": "helicopter", + "layer": "flights", + "callsign": "NHZ02B", + "registration": "G-NHVC", + "type": "A139", + "squawk": "4302", + "helicopter": true + }, + "p": "653,42949,530290,82,94,68,39,391,-13,-15,93,66,41,365,-54,-1,110,60,40,352,-57,-1,102,61,40,359,-46,1,101,63,40,361,-45,0,101,62,30,269,-35,0,102,62,41,367,-46,0,103,62,41,370,-47,0,102,62,39,360,-46,0,102,62,41,353,-45,-10,100,61,40,349,-45,-16,102,58,40,346,-45,-4,102,61,40,360,-38,-1,97,62,71,500,-70,-1,163,38,40,21,-136,-10,189,40,40,-95,-128,-8,211,39,40,-116,-109,-8,213,30,34,-56,-51,-3,221,10" + }, + { + "k": "4ca894", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR47HU", + "registration": "EI-ENH", + "type": "B738", + "squawk": "7346" + }, + "p": "653,43237,523798,367,304,192,40,-998,412,32,304,212,40,-1031,425,63,304,213,40,-1055,432,47,304,220,40,-1104,451,47,304,226,132,-3787,1532,135,303,242,120,-3513,1623,105,311,252,120,-3957,1187,86,281,256,131,-4744,473,45,278,241,120,-4239,376,8,282,240,120,-4211,566,21,283,241,120,-4198,554,0,282,239,132,-4595,591,-1,282,239,131,-4629,534,0,276,239,120,-4255,252,-1,276,238,120,-4265,231,-1,275,237" + }, + { + "k": "4ba953", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "THY6", + "registration": "TC-JJS", + "type": "B77W", + "squawk": "4626", + "country": "Turkey" + }, + "p": "652,43362,521754,1052,112,253,121,4124,-1029,1,112,253,132,4475,-1139,1,113,252" + }, + { + "k": "3c00af", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KAY51", + "registration": "D-APGS", + "type": "A319", + "squawk": "3443", + "ladd": true, + "country": "Germany" + }, + "p": "653,43406,507358,1054,105,247,120,4036,-681,0,105,246,132,4436,-767,0,105,247,121,4089,-726,1,106,250" + }, + { + "k": "407eec", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY61LP", + "registration": "G-UZLP", + "type": "A20N", + "squawk": "7303", + "country": "United Kingdom" + }, + "p": "653,43412,507767,1119,108,240,120,3862,-802,1,108,235,132,4201,-892,2,109,238,121,3878,-839,0,109,240" + }, + { + "k": "4cadb7", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR86FK", + "registration": "EI-IFW", + "type": "B38M", + "squawk": "7305", + "country": "Ireland" + }, + "p": "653,43522,520200,1116,120,240,120,3638,-1288,0,120,240,132,3960,-1428,1,120,240,120,3547,-1291,1,120,237" + }, + { + "k": "485a32", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM54D", + "registration": "PH-BCG", + "type": "B738", + "squawk": "1000", + "country": "Kingdom of the Netherlands" + }, + "p": "653,43876,523654,117,16,157,40,244,536,-19,15,154,40,234,542,-16,17,155,40,403,489,-9,27,152,40,411,487,-8,27,153,40,539,398,0,66,138,31,577,-17,1,108,125,40,461,-315,-1,148,117,41,365,-352,0,148,114,39,146,-358,0,194,101,40,-32,-320,0,183,81,41,-29,-275,-7,184,76,40,-22,-246,-15,183,64,40,-19,-225,-14,183,63,68,-38,-412,-24,183,71,43,-17,-186,-5,184,30,39,8,-68,0,183,12,41,63,-34,0,132,15,39,57,-16,0,129,11,41,60,-38,0,348,17,41,52,-38,0,138,11,39,5,-43,0,183,13,40,-5,-48,0,183,14,40,-4,-52,0,183,15,39,-4,-44,0,183,12,39,19,-28,0,93,9,41,50,12,0,39,8,87,51,18,0,132,8,46,60,-32,0,129,13,66,62,0,0,59,10,45,71,27,0,59,15,40,71,28,0,59,14" + }, + { + "k": "02012b", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "MAC113R", + "registration": "CN-NML", + "type": "A320", + "squawk": "1000", + "country": "Morocco" + }, + "p": "653,44375,511656,159,29,145,40,404,456,-14,29,144,40,390,449,-10,30,142,40,571,290,-7,68,119,40,414,-131,-5,169,75,40,19,-265,-6,179,75,31,10,-210,-4,174,76,40,8,-268,-6,190,74,41,-112,-267,-7,195,75,40,-109,-259,-2,195,75,39,-104,-257,0,194,71,41,-93,-224,0,195,61,40,-85,-210,0,194,60,40,-88,-213,-1,194,61,71,-157,-380,-22,195,61,40,-91,-223,-13,195,67,40,-94,-234,-15,194,66,40,-94,-227,-14,194,65,41,-93,-230,-15,195,65,39,-90,-219,-9,194,59,81,-52,-62,-9,14,9" + }, + { + "k": "3e369f", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DGJ567", + "registration": "D-ILWP", + "type": "C25A", + "squawk": "2042", + "country": "Germany" + }, + "p": "653,44393,523204,1179,91,217,120,3819,-64,1,92,217,132,4195,-83,1,92,218" + }, + { + "k": "45ac33", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SAS66A", + "registration": "OY-KAS", + "type": "A320", + "squawk": "7676", + "country": "Denmark" + }, + "p": "653,44521,513675,294,225,111,39,-449,-273,-22,227,108,41,-445,-260,-15,227,105,40,-226,-309,-19,161,102,40,547,-140,-20,72,124,40,582,240,-14,75,113,31,478,42,-13,83,108,40,615,50,-13,83,106,41,459,-108,-10,159,78,40,110,-270,-10,166,77,39,98,-261,-9,174,74,41,-43,-266,-9,192,74,39,-105,-259,-7,195,75,41,-111,-262,-6,195,74,71,-181,-445,-10,194,71,40,-103,-246,-6,195,72,40,-102,-250,-7,194,72,40,-101,-248,-15,195,70,41,-103,-251,-15,194,74,39,-103,-249,-15,195,71,41,-96,-240,-12,195,69,39,-95,-228,-17,194,66,40,-93,-233,-14,194,66,40,-91,-220,-16,194,44,36,-33,-50,0,194,9,105,-8,43,0,17,10,44,14,34,0,14,9" + }, + { + "k": "4ca9d2", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR8NZ", + "registration": "EI-EVJ", + "type": "B738", + "squawk": "1356" + }, + "p": "653,44690,526787,959,287,228,120,-3876,724,0,287,229,132,-4321,776,-1,287,231,121,-4023,687,-1,283,236,120,-4041,669,0,292,233,130,-4206,1011,-1,292,234,120,-3884,934,0,292,234,120,-3906,945,0,292,235,120,-3985,829,0,283,234,131,-4471,598,-1,283,232,132,-4507,590,0,282,233,120,-4136,364,-1,277,232,120,-4136,287,0,277,231" + }, + { + "k": "44cdcf", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BEL2NM", + "registration": "OO-SNO", + "type": "A320", + "squawk": "1000" + }, + "p": "653,44940,508766,61,151,65,40,203,-188,48,147,66,39,242,-233,26,145,92,41,366,-326,28,144,124,40,448,-360,34,132,143,40,766,-295,50,119,163,31,626,-225,50,120,166,40,850,-308,57,120,173,41,874,-318,58,120,177,40,878,-321,45,120,185,39,995,-244,49,102,197,41,1100,-143,52,102,198" + }, + { + "k": "02019a", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AOM334M", + "registration": "CN-TMV", + "type": "LJ45", + "squawk": "2104", + "country": "Morocco" + }, + "p": "653,45045,515853,878,206,204,120,-1555,-2036,107,206,211,132,-1649,-2247,109,205,206,121,-1413,-2027,75,204,202,120,-1316,-1995,62,203,198,131,-1497,-2095,50,209,196,120,-1551,-1872,28,208,198" + }, + { + "k": "4868bc", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM66A", + "registration": "PH-AXN", + "type": "A21N", + "squawk": "1000", + "country": "Kingdom of the Netherlands" + }, + "p": "653,45054,525834,99,58,149,40,789,75,-29,88,130,40,750,21,-5,87,118,40,505,-174,1,149,100,40,184,-317,0,181,87,40,-22,-280,0,183,76,31,-19,-210,0,184,75,40,-23,-249,0,183,65,41,-23,-231,-10,183,60,40,-18,-222,-12,184,64,39,-20,-216,-13,183,61,41,-20,-222,-13,183,62,36,-20,-206,-11,183,65,44,-16,-182,-7,183,29,71,21,-95,0,166,9,39,43,-25,0,132,13,41,53,-17,0,90,9,38,40,-20,0,141,11,42,53,-38,0,138,13,40,36,-34,0,183,12,41,-5,-47,0,183,14,39,-4,-51,0,183,14,39,-5,-49,0,183,14,40,-3,-48,0,166,10,38,51,-2,0,65,12,43,32,33,0,25,9,41,35,-5,0,132,9,50,63,-34,0,132,13,58,57,-1,0,59,10,54,81,31,0,59,13,39,67,25,0,59,14,41,43,28,0,3,10" + }, + { + "k": "4ca911", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR9KG", + "registration": "EI-EPC", + "type": "B738", + "squawk": "1000", + "country": "Ireland" + }, + "p": "653,45083,509283,20,194,70,40,-104,-254,-12,195,65,39,-42,-88,-8,194,11,80,-8,30,0,14,10,41,15,39,0,14,11,112,-19,39,0,335,8,57,-38,18,0,245,9,43,-63,-19,0,245,10" + }, + { + "k": "39856e", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AFR61VJ", + "registration": "F-HBLO", + "type": "E190", + "squawk": "1000", + "country": "France" + }, + "p": "653,45195,517863,1177,34,258,120,2526,2251,5,35,255,132,2789,2502,0,34,257,121,2618,2308,0,38,256" + }, + { + "k": "4caded", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ITY156", + "registration": "EI-HOM", + "type": "A20N", + "squawk": "1000", + "country": "Ireland" + }, + "p": "653,45613,510580,96,194,73,40,-104,-255,-11,195,71,40,-103,-249,-16,194,72,40,-100,-244,-15,195,64,40,-80,-199,-12,194,57,40,-86,-209,-13,194,58,31,-63,-156,-9,194,60,40,-87,-213,-20,194,46,141,-75,-20,0,245,8" + }, + { + "k": "4bb567", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "CAI7DJ", + "registration": "TC-MKG", + "type": "B38M", + "squawk": "3247" + }, + "p": "653,45667,518620,1096,277,227,120,-3894,308,-41,277,223,132,-4286,322,-54,277,228,121,-3865,245,-117,268,211,120,-3547,-130,-74,267,199,130,-3670,-147,-86,266,191,121,-3244,-137,-79,266,184,80,-2120,-49,-57,268,183,40,-1039,-25,-28,268,178,39,-1031,-3,-19,279,180,40,-1001,200,-29,283,181,40,-1018,90,-29,278,178,40,-1026,86,-27,278,178,41,-1037,87,-26,278,175,50,-1240,101,-28,278,167,41,-964,78,-22,277,162,40,-923,74,-20,277,160,31,-705,55,-16,277,158,40,-921,72,-24,277,157,40,-907,72,-26,277,158,40,-907,76,-17,278,157,40,-915,82,-16,278,158,40,-911,77,-20,278,156,40,-887,-11,-20,262,149,40,-826,-66,-9,262,139" + }, + { + "k": "46b836", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AEE2BR", + "registration": "SX-NAV", + "type": "A21N", + "squawk": "1000", + "country": "Greece" + }, + "p": "653,46125,511826,96,194,73,40,-103,-253,0,194,72,40,-107,-256,0,195,73,40,-103,-254,-1,194,73,40,-106,-257,0,194,72,40,-91,-220,0,194,62,31,-68,-166,-4,195,61,40,-89,-216,-14,195,61,41,-90,-222,-14,194,62,40,-93,-230,-13,195,67,39,-87,-208,-14,193,58,41,-82,-204,-12,195,57,40,-86,-211,-13,194,62,40,-84,-216,26,193,55,71,561,53,45,52,114,40,568,272,14,53,134,40,616,289,1,54,135,40,472,377,0,19,141,41,269,483,0,20,141,39,268,473,0,19,142,41,136,494,-1,345,131,39,-436,316,1,307,115,40,-570,64,-1,259,94,40,-395,-177,0,230,85,40,-375,-199,0,226,84,40,-210,-253,0,200,80,41,-121,-265,0,194,73,50,-124,-307,-1,194,64,41,-90,-218,-11,194,61,40,-91,-222,-14,194,66,31,-75,-181,-11,196,67,40,-96,-237,-14,194,68,40,-98,-238,-16,195,71,40,-98,-243,-14,194,71,40,-90,-219,-15,195,41,119,-38,0,0,14,9" + }, + { + "k": "3c55c8", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EWG7ED", + "registration": "D-AENH", + "type": "A20N", + "squawk": "4631", + "country": "Germany" + }, + "p": "653,46192,522379,1053,82,238,120,4119,330,2,83,236,132,4497,341,-1,83,233" + }, + { + "k": "48c2b1", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR11HY", + "registration": "SP-RZS", + "type": "B38M", + "squawk": "4623", + "country": "Poland" + }, + "p": "653,46489,520209,1116,116,241,120,3743,-1160,1,117,240,132,4084,-1283,1,117,240" + }, + { + "k": "4841a9", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "TRA086", + "registration": "PH-HZW", + "type": "B738", + "squawk": "1000", + "country": "Kingdom of the Netherlands" + }, + "p": "653,46712,519661,81,326,120,40,-386,343,-11,325,110,40,-423,151,-10,238,68,40,-327,-119,-10,240,64,40,-325,-124,-13,236,66,40,-318,-131,-13,236,67,30,-258,-103,-11,238,72,41,-302,-121,-13,236,20,61,-24,-38,0,146,9" + }, + { + "k": "484443", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM787", + "registration": "PH-AOD", + "type": "A332", + "squawk": "2147" + }, + "p": "653,46860,522683,50,222,90,40,-414,-262,19,239,116,40,-675,-143,56,260,123,40,-781,74,41,283,141,40,-822,108,50,282,145,40,-836,103,46,276,147,31,-613,-98,41,243,137,40,-706,-240,48,240,138,41,-722,-260,41,240,144,40,-741,-264,34,240,152,39,-809,-289,18,240,170,41,-900,-319,32,240,178,40,-902,-322,43,240,181,40,-919,-333,38,240,184,131,-3098,-1131,112,239,195,120,-3402,-378,92,262,204,121,-3624,-296,70,262,212,121,-3742,-314,61,262,218,130,-4083,-355,58,262,222,131,-4285,-398,35,258,231,120,-3947,-573,32,257,235,120,-4001,-578,32,257,236" + }, + { + "k": "3ce0f7", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "PVD497N", + "registration": "D-CMMP", + "type": "E55P", + "squawk": "2035", + "ladd": true, + "country": "Germany" + }, + "p": "653,47015,525643,66,148,82,40,241,-228,0,148,79,40,6,-275,0,186,76,40,-29,-270,0,183,72,40,-23,-251,0,183,65,40,-19,-196,-11,183,52,31,-13,-153,-9,183,57,40,-21,-198,-12,185,58,41,-17,-219,-13,183,62,39,-20,-215,-14,183,58,32,-12,-140,-7,184,36,49,20,-87,0,169,12,39,-4,-43,0,183,13,40,-1,-43,0,155,10,73,90,-36,0,132,16,39,67,-41,0,138,16,40,58,-41,0,138,13,40,5,-50,0,183,17,40,-5,-63,0,183,18,38,-6,-63,0,183,18,61,39,-39,0,65,12,39,37,30,0,20,11,36,31,5,0,129,9,37,59,-31,0,132,16,49,68,-9,0,59,14,34,77,29,0,62,19,47,99,38,0,59,14,30,19,30,0,3,14,41,7,44,0,56,8,39,56,9,0,87,12,32,63,2,0,87,15,37,74,1,0,132,10,43,55,-30,0,132,11" + }, + { + "k": "484561", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM104", + "registration": "PH-BVD", + "type": "B77W", + "squawk": "1000", + "country": "Kingdom of the Netherlands" + }, + "p": "652,47117,523327,0,184,13,41,67,-36,0,132,15,40,49,-13,0,132,8,39,47,-30,0,141,14,41,55,-38,0,138,14,40,9,-48,0,183,15,31,-4,-42,0,183,16,38,-5,-51,0,183,14,43,-5,-53,0,183,11,140,86,16,0,23,8,39,5,35,0,3,12,39,4,40,0,3,11,173,121,36,0,84,10" + }, + { + "k": "485123", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "TRA41Q", + "registration": "PH-HSM", + "type": "B738", + "squawk": "1000", + "country": "Kingdom of the Netherlands" + }, + "p": "651,47129,523729,13,183,71,37,-21,-233,-8,183,62,45,3,-122,-5,183,18,39,10,-46,0,174,11,41,45,-28,0,132,12,39,57,-17,0,113,11,32,42,-24,0,141,15,40,56,-40,0,141,13,41,24,-41,0,183,14,40,-5,-51,0,183,15,39,-4,-48,0,183,13,39,-4,-42,0,183,11,41,-2,-39,0,166,11,40,52,-2,0,65,11,72,62,29,0,132,9,42,54,-29,0,132,14,38,55,-4,0,59,12,40,67,25,0,59,14,33,48,19,0,59,10" + }, + { + "k": "484bd1", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM1753", + "registration": "PH-EZF", + "type": "E190", + "squawk": "3137" + }, + "p": "653,47169,523997,281,31,159,40,494,503,66,31,164,40,503,518,58,30,171,40,638,482,56,56,172,40,913,259,57,67,173,40,965,252,47,67,182,132,3329,876,164,67,191" + }, + { + "k": "4868a6", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM1930", + "registration": "PH-NXY", + "type": "E295", + "squawk": "1000", + "country": "Kingdom of the Netherlands" + }, + "p": "653,47183,524342,50,184,67,40,-20,-234,-15,183,63,40,-21,-235,-13,183,68,36,-20,-221,-13,183,69,43,-21,-230,-4,183,42,41,11,-93,-5,183,16,46,82,-44,0,132,12,46,75,-29,0,141,16,40,61,-43,0,138,15,39,14,-52,0,183,15,41,-5,-56,0,183,16,39,-5,-56,0,183,16,40,-2,-54,0,149,13,39,65,6,0,45,11,53,38,29,0,129,10,30,32,-18,0,132,12,30,44,-23,0,132,13" + }, + { + "k": "484368", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM749", + "registration": "PH-BQA", + "type": "B772", + "squawk": "6323", + "country": "Kingdom of the Netherlands" + }, + "p": "653,47241,523274,0,132,8,40,42,-28,0,138,12,40,48,-34,0,141,12,40,14,-41,0,183,13,39,-4,-44,0,183,13,41,-4,-45,0,183,13,31,-4,-35,0,183,13,40,-4,-44,0,183,9,41,40,-11,0,76,8,100,45,37,0,23,11,40,8,44,0,3,12,39,3,35,0,3,9,92,38,32,0,87,8,80,93,3,0,87,11,40,71,3,0,87,11" + }, + { + "k": "a4d483", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DAL162", + "registration": "N410DZ", + "type": "A339", + "squawk": "6336", + "country": "United States" + }, + "p": "652,47329,523213,0,138,8,41,17,-30,0,183,11,38,-4,-36,0,183,11,42,-3,-38,0,183,10,40,-3,-35,0,183,10,40,-4,-34,0,183,9,31,-2,-26,0,183,9,181,90,35,0,3,8,40,3,36,0,3,10,40,3,36,0,3,10,151,123,22,0,84,9,40,63,2,0,87,12,40,63,3,0,87,10" + }, + { + "k": "4852a0", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "4852a0" }, + "p": "622,47412,523117,0,183,13,1546,298,-117,0,56,12" + }, + { + "k": "4d21dc", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KMM394", + "registration": "9H-NEC", + "type": "A20N", + "squawk": "1000", + "country": "Malta" + }, + "p": "653,47414,523141,0,183,13,36,-4,-42,0,183,13,39,-4,-45,0,183,13,45,38,-29,0,132,10,59,70,-38,0,132,11,52,68,16,0,59,11" + }, + { + "k": "780a1d", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "CPA065", + "registration": "B-LJE", + "type": "B748", + "squawk": "1000", + "country": "China" + }, + "p": "647,47440,523027,0,132,9,272,104,-73,0,149,9,64,47,-2,0,68,8" + }, + { + "k": "484210", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "P3" }, + "p": "637,47496,523154,0,264,17,32,-48,-22,0,281,9,276,-10,26,0,3,18,116,23,72,0,0,10,123,-14,34,0,132,10,49,-4,-58,0,180,14,86,-8,-5,0,186,9,37,5,-31,0,186,12,56,-3,-36,0,183,10" + }, + { + "k": "484161", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM44Y", + "registration": "PH-BXH", + "type": "B738", + "squawk": "3526" + }, + "p": "653,47538,524814,95,184,84,40,-27,-291,-17,183,78,40,-23,-265,-19,184,70,40,-21,-240,-12,183,68,40,-22,-237,-15,182,66,40,-23,-244,-14,183,70,31,-19,-198,-11,183,71,40,-18,-194,-7,184,25,40,24,-60,0,184,14,39,8,-46,0,129,12,37,48,-25,0,132,11,42,54,-29,0,132,12,41,41,-1,0,135,9,41,59,23,0,135,13" + }, + { + "k": "48436c", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM166", + "registration": "PH-BQE", + "type": "B772", + "squawk": "6257", + "country": "Kingdom of the Netherlands" + }, + "p": "652,47674,523148,0,87,12,41,56,-7,0,129,11" + }, + { + "k": "486491", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM1977", + "registration": "PH-NXH", + "type": "E295", + "squawk": "1000" + }, + "p": "653,47765,523136,0,3,13,40,-7,33,0,51,11,351,42,21,5,184,30,41,-25,-213,20,186,64,40,-7,-252,28,170,83,40,462,-160,63,92,120,71,1366,-38,123,92,144,40,840,-23,80,93,144,40,866,-25,73,93,147,40,889,-28,57,93,159,40,814,-198,68,125,148,40,729,-317,52,125,158" + }, + { + "k": "484cbc", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM105", + "registration": "PH-BVI", + "type": "B77W", + "squawk": "0150" + }, + "p": "653,47781,522723,48,174,95,40,152,-363,33,161,109,40,121,-413,37,183,120,40,-63,-440,46,185,125,40,-67,-468,41,185,133,40,-69,-483,43,185,138,31,-55,-387,38,185,140,40,-70,-525,37,185,149,41,-162,-539,48,203,153,40,-389,-502,42,206,157,39,-398,-502,44,206,158,41,-406,-522,36,206,163,40,-419,-542,22,206,174,40,-456,-590,17,206,187,71,-858,-1115,53,206,197,120,-1524,-1947,93,206,206,121,-1525,-2097,65,203,220,121,-1476,-2263,67,203,229,120,-1550,-2359,0,202,239,130,-1795,-2511,0,208,237" + }, + { + "k": "4846df", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "V6" }, + "p": "653,47911,523055,0,39,15,371,-85,170,0,3,19,36,-46,-5,0,197,15,33,-68,-31,0,264,21,89,-271,-16,0,197,17,38,31,-28,0,93,16,799,-32,23,0,3,16,117,312,28,0,34,16,30,33,38,0,48,15" + }, + { + "k": "486651", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM71N", + "registration": "PH-AXA", + "type": "A21N", + "squawk": "1000" + }, + "p": "653,47944,521183,280,185,127,40,-66,-475,59,185,137,40,-68,-486,63,185,140,40,-77,-541,42,185,154,40,-132,-546,54,203,159,40,-423,-524,55,206,163,31,-324,-416,31,206,169,121,-1331,-1714,135,206,180,120,-1386,-1806,104,206,191,131,-1825,-2062,81,211,204,121,-1846,-1964,56,211,216,121,-1900,-2077,57,206,222,120,-1262,-2232,38,200,222,120,-1238,-2226,0,200,217" + }, + { + "k": "400960", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW84NT", + "registration": "G-TTOE", + "type": "A320", + "squawk": "3124" + }, + "p": "653,48384,519876,1085,263,213,120,-3656,-282,-3,263,210,132,-3959,-320,0,262,209,121,-3671,-309,-1,262,211,120,-3648,-318,1,262,212,130,-3959,-299,-1,264,211,120,-3637,-246,-34,264,212,120,-3603,-254,-117,264,201,120,-3277,-196,-88,264,182,131,-3367,-209,-123,264,179,112,-2875,-187,-140,264,171,41,-983,-66,-31,264,165,39,-930,-62,-31,264,163,41,-939,-65,-32,264,160,40,-914,-62,-29,264,158,39,-896,-62,-28,264,159,40,-921,-65,-29,263,158,40,-901,-65,-30,263,156" + }, + { + "k": "501c5c", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "CTN5NL", + "squawk": "1000" + }, + "p": "653,48611,525578,96,276,116,40,-626,-12,0,234,96,40,-353,-258,0,206,92,40,-69,-301,-1,183,78,40,-32,-273,-2,184,76,40,-28,-267,-19,183,73,31,-15,-196,-12,182,69,40,-20,-227,-13,183,58,41,-19,-215,-13,183,61,40,-21,-221,-13,184,64,39,-21,-231,-12,184,65,41,-18,-187,-11,180,18,40,20,-37,0,126,8,39,3,-33,0,126,10,72,-6,-65,0,183,10,40,26,-24,0,132,10,40,41,-22,0,132,10,39,42,-23,0,129,9,41,47,9,0,59,9,58,60,23,0,59,9" + }, + { + "k": "480808", + "m": { + "kind": "military", + "layer": "military", + "callsign": "WLDCT78", + "registration": "S-444", + "type": "AS3B", + "squawk": "3601", + "military": true, + "country": "Kingdom of the Netherlands" + }, + "p": "653,48957,515627,25,314,57,40,156,57,-1,103,45,40,217,-24,-8,102,29,40,95,-12,-10,97,4,33,13,-1,-1,103,5,34,1,0,3,0,0,41,83,-17,11,148,26,43,-183,-60,10,277,49,41,-278,33,-4,283,50,40,-94,100,-1,82,35,39,202,-26,2,101,37,41,165,-18,-9,98,22,36,85,-10,-9,101,8,38,19,-2,-1,117,1,54,-2,0,0,284,2,30,-3,0,-2,90,1,157,0,0,0,104,2,31,5,0,2,90,1,40,1,0,0,0,0,45,16,-2,2,99,16,40,35,-65,17,236,43,40,-311,11,-1,281,62,40,-253,94,0,11,49,40,193,2,-1,105,37,41,179,-24,-5,101,29,45,129,-15,-11,103,10,42,12,-1,-3,0,0,33,-4,0,2,90,1,113,0,0,0,90,2,35,4,0,-1,90,1,35,-1,0,2,0,0,39,62,-9,8,125,24,40,-142,-64,10,268,53,41,-311,28,0,281,55,39,-51,108,-4,92,36" + }, + { + "k": "485b44", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM879", + "registration": "PH-BKD", + "type": "B78X", + "squawk": "3164" + }, + "p": "653,48988,522544,120,93,130,40,800,-24,39,92,144,40,850,-22,54,92,147,40,865,-24,51,93,150,40,894,-35,50,100,152,40,766,-254,44,125,151,31,554,-241,36,126,153,40,789,-349,18,125,173,41,865,-374,30,125,184" + }, + { + "k": "4852f4", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLC1761", + "registration": "PH-EXG", + "type": "E75L", + "squawk": "1000" + }, + "p": "653,49530,525754,447,67,180,39,1003,261,39,67,190,41,1054,276,46,67,194,40,1069,279,44,67,198" + }, + { + "k": "486521", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "PHSCH", + "registration": "PH-SCH", + "type": "PC12", + "squawk": "7000" + }, + "p": "653,49669,504214,723,320,132,120,-1435,1087,-1,320,133,132,-1386,1317,0,345,142,121,-654,1538,-41,345,156,99,-561,1321,-81,345,147,40,-217,506,-40,345,145,71,-398,933,-72,345,155,40,-230,539,-47,345,152,40,-221,508,-47,345,142,40,-205,477,-48,345,136,40,-202,469,-47,345,133,40,-198,463,-51,345,135,41,-202,468,-48,345,132,39,175,433,-44,38,129,40,458,366,-45,38,129,40,421,342,-16,38,105,40,393,219,0,50,87,40,427,168,-15,85,83,41,320,-99,-17,174,54,50,-359,-104,-29,294,83,40,-190,243,-8,19,82,40,344,104,0,77,61,30,242,8,-4,110,56,42,79,143,-1,299,65,40,-315,-54,-8,246,58" + }, + { + "k": "395d6d", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BGA113N", + "registration": "F-GXLN", + "type": "A337", + "squawk": "3376", + "country": "France" + }, + "p": "653,49680,517606,993,44,218,120,2609,1688,0,44,218,132,2891,1850,1,44,216" + }, + { + "k": "480892", + "m": { + "kind": "military", + "layer": "military", + "callsign": "APACHE3", + "registration": "Q-49", + "type": "H64", + "squawk": "3601", + "helicopter": true, + "military": true, + "country": "Kingdom of the Netherlands" + }, + "p": "653,49753,517089,27,10,64,39,-217,100,-20,271,51,39,-256,-25,-1,219,38,42,225,16,-1,122,41,40,92,-45,0,108,2,40,85,22,1,34,51,50,-232,19,-1,108,2,41,166,14,1,335,49,40,-154,-16,-1,0,0,40,136,-14,1,84,48,41,-142,12,-1,239,29,40,-50,-59,3,241,45,39,105,52,-2,63,27,40,-184,1,0,240,54,47,120,-7,-1,325,21,43,-150,-35,0,83,40,42,154,41,0,322,8,40,44,-7,0,64,45,40,38,29,1,267,9,40,28,-51,0,77,40,40,45,18,0,187,8,39,83,9,1,316,29,40,-5,-42,0,359,48,30,-36,31,-5,180,11,32,64,10,6,33,39,37,-61,-3,0,179,39,30,1,8,-1,243,26,33,47,-9,1,34,46,47,-47,26,0,183,32,42,-6,-24,-2,188,15,40,-37,0,0,18,27,30,93,-1,3,135,20,42,10,-9,0,90,1,41,3,5,0,190,12,39,3,-5,0,0,0,41,35,24,2,310,31,40,-40,-23,1,0,1,40,-1,2,0,90,1,40,53,2,-3,349,34" + }, + { + "k": "48c1a1", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR43VN", + "registration": "SP-RNB", + "type": "B738", + "squawk": "0544", + "country": "Poland" + }, + "p": "653,50150,517024,1117,106,241,120,4043,-709,1,106,244" + }, + { + "k": "39856f", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM1850", + "registration": "F-HBLP", + "type": "E190", + "squawk": "1000" + }, + "p": "653,50504,525458,131,276,125,40,-705,45,2,276,118,40,-681,44,-16,276,116,40,-664,41,-19,276,114,40,-581,-70,-2,227,90,40,-291,-247,1,186,84,31,-11,-217,-1,184,74,40,-32,-264,-4,184,73,40,-25,-252,-15,184,63,41,-22,-227,-12,183,64,39,-20,-211,-13,184,58,41,-19,-216,-13,183,59,40,-20,-223,-13,184,63,39,-21,-229,-13,184,65,72,-8,-272,-13,180,13,38,7,-47,0,183,16,42,-5,-56,0,183,14,38,31,-28,0,132,12,38,52,-29,0,132,13,44,63,-9,0,59,12,35,54,21,0,59,12" + }, + { + "k": "4494e8", + "m": { + "kind": "helicopter", + "layer": "flights", + "callsign": "OOEGH", + "registration": "OO-EGH", + "type": "R22", + "squawk": "2000", + "helicopter": true, + "country": "Belgium" + }, + "p": "653,50831,511456,30,229,27,39,-45,-90,1,186,28,41,-11,-106,0,181,30,40,89,-77,-2,84,36,39,-56,59,2,251,35,38,-102,-68,-4,159,26,34,76,50,4,336,44,36,-60,-37,-4,91,34,45,-16,17,3,217,30,38,-56,-87,0,164,27,41,171,10,-1,114,31,39,1,65,0,274,37,41,42,-28,-2,17,43,40,-75,-13,-1,144,27,72,-41,-40,4,227,30,39,71,-39,-2,25,45,41,1,3,2,120,29,39,67,49,0,282,38,41,14,-61,-2,76,35,41,180,34,-1,34,40,40,-86,5,0,169,25,39,136,16,1,27,44,39,-99,53,0,200,26,41,88,-63,1,169,24,41,122,-33,1,47,40,39,-95,57,3,231,28,40,-68,-79,-1,180,25,52,23,-130,-1,172,29,39,89,-78,-2,78,38,41,-107,29,1,244,36,31,-136,-55,-1,236,38,40,-181,-75,3,241,38,40,-191,-59,2,248,36,40,-172,-51,2,242,35,39,-168,-63,-1,237,39,41,-174,-76,-1,231,34,40,-151,-81,0,229,38,40,-156,-86,-3,224,35" + }, + { + "k": "4864fa", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "PHSFR", + "registration": "PH-SFR", + "type": "BR23", + "squawk": "5470", + "country": "Kingdom of the Netherlands" + }, + "p": "653,51795,517134,64,212,16,40,-47,-38,4,211,22,40,-79,-79,6,221,19,40,3,-74,1,187,30,40,-74,-103,2,213,31,40,90,-18,-18,40,76,31,179,90,8,118,34,40,-82,-98,8,242,13,41,-30,-70,1,157,29,40,58,-94,-10,165,27,39,33,-97,-11,171,29,41,22,-112,-6,175,33,40,24,-124,0,169,35,40,151,-87,1,133,35,71,260,-151,-1,133,34,40,7,-70,1,288,56,41,-311,96,0,298,61,39,-301,108,-1,313,64,40,-238,183,1,335,68,40,111,186,0,75,47,41,213,-35,0,102,38,39,159,-63,0,159,31,40,63,-105,0,160,31,40,65,-105,0,147,33,40,113,-96,0,142,33,40,119,-90,0,141,31,41,118,-92,0,141,34,50,152,-121,0,143,33,41,142,-88,0,130,35,40,76,-98,0,183,31,31,-13,-85,0,187,32,40,11,-115,0,164,33,40,46,-113,0,171,31,40,13,-115,0,184,34,40,5,-117,0,179,31,40,7,-118,0,170,33,40,116,-100,0,133,35,40,166,-76,-9,127,36" + }, + { + "k": "c0583a", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ACA845", + "registration": "C-GHKR", + "type": "A333", + "squawk": "2510" + }, + "p": "653,52203,519819,1086,317,252,120,-2971,1975,-1,317,249,132,-3269,2144,-1,317,247,120,-2964,1919,0,317,246,120,-3012,1925,-1,316,247,131,-2859,2365,-1,335,253,120,-1148,2641,0,350,256,120,-772,2723,-1,351,256" + }, + { + "k": "4009da", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW879", + "registration": "G-EUUM", + "type": "A320", + "squawk": "3103" + }, + "p": "653,52399,509877,1089,290,224,120,-3603,817,-2,290,224,132,-3998,889,0,289,229,121,-3808,834,0,289,233,121,-3771,809,-1,289,229,129,-4030,848,0,288,229,120,-3773,779,0,288,232,120,-3787,766,-30,288,233,120,-3535,704,-88,288,203,131,-3552,691,-121,287,190,132,-3385,402,-178,264,177,61,-1500,-95,-75,264,170,39,-962,-64,-57,264,169,40,-963,-63,-50,264,165,40,-939,-63,-53,264,166,40,-945,-65,-22,264,157,40,-856,-59,0,263,143" + }, + { + "k": "486803", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLC27U", + "registration": "PH-NXV", + "type": "E295", + "squawk": "1000" + }, + "p": "653,52428,522436,397,102,152,40,737,-253,59,125,144,39,683,-295,55,126,147,41,733,-320,39,125,156,40,753,-329,41,125,162" + }, + { + "k": "44a8a6", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "TFL9ED", + "registration": "OO-JEF", + "type": "B738", + "squawk": "3144" + }, + "p": "653,54100,513583,280,71,142,40,863,181,45,71,168,40,954,208,61,71,182" + }, + { + "k": "4bcde1", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SXS2VN", + "registration": "TC-SOA", + "type": "B738", + "squawk": "3253" + }, + "p": "653,54630,508329,1150,288,230,120,-3718,755,-1,288,229,132,-4077,814,0,287,226,121,-3711,725,-1,287,224,120,-3631,696,-53,286,224,130,-3964,744,-80,286,223,120,-3707,684,-72,286,225,120,-3551,609,-76,282,215,121,-3656,481,-93,282,218,130,-3913,502,-132,281,207,41,-1163,147,-45,282,202,40,-1121,139,-44,281,198,31,-871,101,-36,280,200,40,-1143,124,-43,276,196,40,-1056,-137,-35,250,187,40,-1018,-236,-23,250,187,40,-854,-359,-20,217,182,40,-621,-528,-19,216,181,40,-610,-519,-13,216,180,40,-611,-515,-13,217,174" + }, + { + "k": "486649", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "CND7ZL", + "registration": "PH-CDQ", + "type": "B39M", + "squawk": "3136" + }, + "p": "653,54745,521497,428,125,175,40,828,-363,46,126,175" + }, + { + "k": "452087", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UBD423", + "registration": "LZ-BHM", + "type": "A320", + "squawk": "1000" + }, + "p": "653,55284,525134,277,276,164,40,-910,64,-12,277,147,40,-847,56,-23,276,143,40,-833,53,-26,276,142,40,-835,55,-25,276,141,40,-821,56,-26,276,140,31,-628,40,-8,276,134,40,-762,49,-17,276,126,41,-739,47,-14,276,122,40,-680,46,-11,276,110,39,-485,-102,-8,217,81,41,-153,-257,-8,187,75,40,-35,-268,-9,184,74,40,-27,-269,-8,184,75,71,-44,-471,-22,183,69,40,-21,-241,-14,183,69,40,-23,-238,-15,183,66,40,-22,-237,-13,184,67,40,-22,-241,-13,183,70,40,-13,-144,-5,183,18,159,42,-13,0,3,10,142,126,24,0,87,8,30,43,2,0,87,9,253,155,-30,0,183,8" + }, + { + "k": "48625a", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "PHBAC", + "registration": "PH-BAC", + "type": "A210", + "squawk": "7000" + }, + "p": "672,45247,515476,21,256,42,41,-221,45,8,344,60,40,19,218,10,7,56,40,26,206,12,358,56,40,10,210,12,3,60,51,58,283,9,38,63,40,255,183,-3,42,69,41,-25,257,0,345,77,40,-128,270,-2,342,76,39,-102,5,1,163,28,41,54,-63,-2,148,27,40,88,-86,1,146,35,40,115,-105,-2,144,36,71,181,-146,1,140,22,40,86,-58,-3,93,31,40,163,27,0,118,20,40,103,-39,2,124,22,40,101,-29,-2,119,27,40,175,-40,9,139,28,41,133,-83,-1,170,33,39,14,-119,-4,182,30,40,-119,-92,-11,228,37,40,-142,-112,-13,206,46,41,-95,-152,-5,200,44,39,-69,-158,-5,194,43,38,-50,-143,-5,195,45,53,-181,-159,-16,243,39" + }, + { + "k": "4846f0", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "VY" }, + "p": "669,47237,523284,0,129,12,44,66,-42,0,138,16,99,37,-9,0,0,15,33,4,48,0,3,16,321,81,64,0,183,11,68,-8,-86,0,183,15,31,-3,-41,0,183,15,71,24,-39,0,84,8,31,0,-24,0,180,11,245,44,-14,0,90,16,43,82,7,0,84,12,82,111,4,0,76,14,419,78,-72,0,183,10" + }, + { + "k": "484559", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM31K", + "registration": "PH-BGB", + "type": "B738", + "squawk": "0144" + }, + "p": "673,47724,523026,0,236,19,40,-327,-124,22,239,85,40,-436,-164,53,249,101,40,-585,173,64,331,136,40,150,468,70,33,142,51,631,588,71,31,159,40,632,449,42,52,175,41,869,442,30,49,198,40,903,476,50,49,207,39,926,479,50,50,213,41,993,510,52,50,220,40,1008,514,49,50,225,131,3425,1733,158,50,234" + }, + { + "k": "4246b7", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AHY107", + "registration": "VP-BCG", + "type": "A20N", + "squawk": "7543" + }, + "p": "673,55571,508849,1026,287,212,120,-3487,671,-2,287,213,131,-3824,722,1,287,217,120,-3559,662,1,286,219,121,-3584,650,-3,286,214,131,-3886,692,-1,286,214,121,-3604,507,-53,282,215,121,-3486,444,-84,281,189,120,-3190,396,-59,281,188,130,-3382,418,-81,281,181,132,-3276,392,-118,281,172,39,-947,112,-33,281,167,40,-950,110,-39,281,166,40,-945,109,-46,280,169,40,-935,107,-30,280,164,40,-897,-70,-23,249,158,40,-853,-198,-19,250,158" + }, + { + "k": "4cad41", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SAS61E", + "registration": "EI-SIN", + "type": "A20N", + "squawk": "2217", + "country": "Ireland" + }, + "p": "687,-22788,533610,0,318,8,94,-82,45,0,315,9" + }, + { + "k": "4ca4ee", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR100T", + "registration": "EI-DPJ", + "type": "B738", + "squawk": "4570", + "country": "Ireland" + }, + "p": "693,-13389,528291,0,270,10,623,-72,16,0,87,26,40,395,9,45,86,76,40,461,-18,21,93,79,40,286,191,0,354,86,41,-375,190,0,293,85,39,-465,92,0,267,81,40,-469,-28,0,265,79,40,-470,-17,0,268,75,41,-241,-150,-6,175,65,39,32,-234,-13,162,68,41,371,-42,-13,93,70,50,531,7,-19,88,70,41,458,11,35,88,79,40,483,20,16,61,84,31,144,209,-1,346,88,40,-410,168,1,290,86,40,-484,92,1,277,85,40,-503,-9,0,268,85,40,-482,-16,-1,259,76,40,-143,-215,-11,176,70,40,103,-229,-15,133,68,40,381,-39,-11,89,68" + }, + { + "k": "42592a", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "42592a" }, + "p": "692,-7915,512717,0,39,9,717,170,84,0,42,11" + }, + { + "k": "407796", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY787Q", + "registration": "G-UZLD", + "type": "A20N", + "squawk": "4226" + }, + "p": "693,-3444,518788,45,74,73,40,401,70,59,75,72,40,322,195,39,7,103,40,-340,335,57,316,116,40,-450,355,45,332,138,31,-297,370,39,334,153,40,-395,505,62,338,163,41,-196,591,5,351,165,40,-171,595,39,350,171,39,-316,571,66,331,175,41,-528,560,53,330,179,40,-521,561,46,331,184,131,-1781,1980,174,332,197,120,-1670,1951,120,333,208,120,-1854,1913,105,330,207,121,-1923,1971,0,329,211,120,-1953,1976,2,329,213,142,-2289,2289,-2,329,209" + }, + { + "k": "4951d8", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "TAP640", + "registration": "CS-TNX", + "type": "A320", + "squawk": "1000" + }, + "p": "693,29814,502161,729,45,204,120,2380,1547,-59,44,198,132,2511,1655,-69,44,192,40,737,495,-26,44,185,40,699,466,-20,43,178,40,657,485,-19,35,176,40,574,521,-21,35,176,40,560,514,-27,34,174,40,539,506,-23,34,171,51,692,648,-31,34,168,40,531,497,-26,34,166,40,529,493,-28,34,165,41,520,485,-23,34,159,39,523,448,-29,51,155,40,711,319,-37,55,151,41,719,316,-41,55,149,39,647,291,-28,54,139,40,659,264,-38,75,131,40,721,84,-23,79,124,40,651,83,-11,77,112,40,568,-23,-11,130,88,41,216,-243,-9,178,73,50,-86,-322,-13,193,73,41,-105,-253,-7,195,72,39,-106,-250,-7,194,73,32,-80,-197,-4,195,72,40,-103,-257,-2,194,74,40,-108,-254,-2,195,74,40,-102,-255,-16,195,69,40,-94,-229,-15,194,67,40,-95,-232,-14,195,69,40,-97,-238,-15,194,68,40,-98,-240,-15,195,67" + }, + { + "k": "4ca809", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR64CZ", + "registration": "EI-EKJ", + "type": "B738", + "squawk": "1000" + }, + "p": "693,44313,504550,53,252,89,40,-446,-125,59,240,90,40,-482,-150,53,246,98,40,-511,-150,13,245,101,40,-319,-269,54,184,103,31,219,-269,44,137,119,40,548,-285,58,108,137,41,877,60,26,81,173,40,1035,10,23,91,196,39,1108,-23,49,92,203,41,1174,-30,56,92,209,40,1190,-32,51,92,213,40,1216,-34,46,92,219,131,4185,-121,128,93,233" + }, + { + "k": "48529f", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "VI" }, + "p": "690,47360,523204,0,0,8,40,-12,18,0,273,10,43,-41,17,0,318,11,40,-45,32,0,315,12,288,-47,6,0,219,11,174,20,8,0,129,12,41,58,-36,0,138,15,60,47,-10,0,3,13,36,4,42,0,3,12,57,9,64,0,17,11,187,79,2,0,115,10,31,11,-35,0,183,11" + }, + { + "k": "4cae1e", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ITY108", + "registration": "EI-HXH", + "type": "A21N", + "squawk": "1000" + }, + "p": "693,55755,525872,332,225,154,40,-255,-477,-22,194,138,40,-523,-347,-31,252,139,40,-830,30,-35,278,145,40,-840,54,-24,276,143,31,-650,51,-8,278,143,40,-842,78,-11,279,143,41,-841,79,-10,279,143,40,-824,75,-14,279,143,39,-800,71,-18,278,135,41,-761,67,-12,279,122,40,-682,44,-18,260,109,40,-301,-253,-14,189,84,71,-63,-491,-19,183,76,40,-25,-274,-15,183,74,40,-23,-240,-15,183,64,40,-22,-235,-13,184,67,40,-21,-233,-14,183,62,40,-21,-226,-14,183,64,41,-21,-236,-14,183,67,39,-20,-214,-11,183,42,40,8,-84,0,183,10,40,11,-25,0,183,8,37,-3,-35,0,183,12,41,33,-24,0,132,8,30,27,-14,0,132,8,30,33,-18,0,132,11,33,49,-5,0,59,12,41,60,23,0,59,11,39,52,20,0,59,10" + }, + { + "k": "407cb4", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RUK9MH", + "registration": "G-RUKH", + "type": "B738", + "squawk": "7023" + }, + "p": "694,2228,518769,23,222,89,39,-345,-231,49,223,98,40,-494,-243,39,259,120,40,-477,262,23,357,125,40,-82,490,39,335,147,31,-504,249,28,284,150,40,-881,63,20,276,152,41,-885,53,57,276,154,40,-752,287,41,327,165,39,-581,507,27,321,183,41,-687,518,61,321,185,40,-692,523,50,321,193,40,-717,539,57,321,195,131,-2451,1856,152,321,210,120,-2413,1801,114,321,221,120,-2548,1882,101,320,228,120,-2589,1890,72,320,230,132,-2813,2113,-1,314,229,131,-3554,1623,0,307,228,120,-3292,1458,0,307,228" + }, + { + "k": "404fa7", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "GCDZG", + "registration": "G-CDZG", + "type": "C42", + "squawk": "7365" + }, + "p": "710,-25112,535554,69,0,0,40,208,-16,1,141,26,41,193,-81,0,124,21,40,188,-38,0,105,17,53,254,-80,-10,116,19,39,178,-78,0,127,20,33,98,-93,0,148,19,47,-10,-168,12,186,21,39,-16,-115,0,192,19,40,26,-124,-1,181,17,55,128,-134,-29,127,16,46,67,184,-2,9,33,51,-125,198,11,341,32,41,-347,-119,1,249,29,320,400,68,-1,0,0,40,-215,-33,1,0,0,39,-204,-28,1,0,0,263,481,43,-2,0,0,39,-201,-11,-1,0,0,41,-197,-41,3,0,0" + }, + { + "k": "4867c4", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM1031", + "registration": "PH-AXI", + "type": "A21N", + "squawk": "7330", + "country": "Kingdom of the Netherlands" + }, + "p": "713,-25048,535871,228,223,130,40,-535,-337,-28,223,128,291,-383,-3054,-82,153,100,40,530,-111,-11,88,99,41,562,103,-14,54,100,40,468,220,-22,51,99,71,733,353,-33,51,77,40,351,171,-15,51,75,39,344,167,-12,51,69,40,155,79,-11,51,14,41,38,36,0,51,10,40,47,22,0,51,9,40,7,26,0,321,10,37,-28,21,0,326,9,43,-14,30,0,354,8,86,-50,34,0,315,9,31,-34,16,0,315,9" + }, + { + "k": "43bff0", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "LEADER 5" }, + "p": "713,-1722,511538,0,250,11,82,-105,3,0,236,17,249,-22,23,0,62,12,140,-2,-1,0,248,14,46,-18,-32,0,172,11" + }, + { + "k": "4d2238", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR4GC", + "registration": "9H-QCN", + "type": "B738", + "squawk": "1427", + "country": "Malta" + }, + "p": "708,2324,518782,0,270,10,39,48,32,0,42,14" + }, + { + "k": "502ce7", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SWR2DV", + "registration": "YL-CSM", + "type": "BCS3", + "squawk": "1000" + }, + "p": "712,47586,523004,0,68,9,39,45,8,0,59,10,39,58,22,0,59,14,117,71,45,0,3,8,38,3,34,0,3,12,40,-10,40,0,312,10,39,16,24,0,17,10,272,30,9,0,183,32,40,-30,-229,45,184,63,40,-11,-249,50,174,80,40,487,-152,38,93,122,40,745,-16,47,92,135,40,829,-21,49,92,143,40,857,-23,52,93,149,40,868,-24,60,93,149,41,903,-44,48,103,151,40,764,-266,29,125,159,39,765,-333,44,125,163,41,783,-340,52,125,162,30,593,-260,30,125,165" + }, + { + "k": "48597e", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "TRA69E", + "registration": "PH-HXO", + "type": "B738", + "squawk": "2112" + }, + "p": "713,47800,523199,0,183,21,39,-17,-206,15,183,76,41,73,-285,42,164,91,40,143,-351,47,167,109,51,29,-535,75,186,121,40,-65,-450,60,185,128,41,-204,-450,64,202,132,40,-283,-448,62,201,133,39,-279,-450,46,201,146,41,-317,-508,55,201,154,40,-329,-531,55,201,160,40,-339,-546,60,201,164,131,-1173,-1904,155,201,178,120,-1136,-1858,105,201,195,120,-1300,-2018,84,205,207,120,-1444,-2103,73,203,217,132,-1576,-2368,89,203,216,131,-1553,-2376,54,203,222,120,-1432,-2208,42,203,223" + }, + { + "k": "48c126", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR7SG", + "registration": "SP-RKG", + "type": "B738", + "squawk": "7675" + }, + "p": "733,-25965,532673,136,164,116,40,343,-327,-19,112,110,40,614,54,-20,56,106,40,486,234,-21,51,102,31,364,177,-16,51,98,40,446,215,-20,50,88,41,377,183,-17,51,77,38,334,162,-12,51,63,41,139,70,-11,51,15,61,47,42,0,51,11,40,54,27,0,51,12,40,61,29,0,51,14" + }, + { + "k": "4403f0", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EJU38NA", + "registration": "OE-LQF", + "type": "A319", + "squawk": "6256" + }, + "p": "733,-25846,515078,449,84,187,40,1085,66,50,84,195,40,1138,78,50,83,201,132,3813,324,183,83,201,120,3439,281,73,80,204,121,3556,394,60,80,211,130,3913,412,-2,81,209,120,3564,361,3,81,209,120,3585,350,1,81,209,120,3460,634,-1,71,208,132,3755,786,1,71,207,131,3729,766,0,72,206,120,3410,687,0,72,205,120,3414,676,-1,72,206" + }, + { + "k": "502cce", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BTI65T", + "registration": "YL-CSE", + "type": "BCS3", + "squawk": "7672" + }, + "p": "730,-2067,511459,0,79,37,43,400,49,35,80,73,40,418,58,41,77,80,40,502,72,35,77,100,31,478,53,25,82,119,40,745,65,42,82,136,41,792,68,54,82,141,40,826,68,52,80,147,39,785,167,54,70,148,41,837,201,37,67,162,40,774,360,22,48,172,40,648,468,40,33,178,71,1035,998,67,33,190,40,604,580,36,33,197,40,621,599,35,33,200,120,1936,1825,104,34,205,121,2038,1885,70,34,215,121,2877,1490,73,63,220,130,3868,1053,72,73,231,131,4251,800,89,73,225,120,3849,711,37,74,232,121,3941,715,42,73,234" + }, + { + "k": "4b0294", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SWR3VB", + "registration": "HB-AZK", + "type": "E295", + "squawk": "5235" + }, + "p": "733,466,515047,0,273,8,100,43,7,6,93,45,51,456,-13,56,87,61,40,361,93,34,41,85,40,411,222,17,80,108,41,701,70,33,78,134,39,760,101,30,78,136,41,785,106,31,78,139,40,770,103,20,79,137,40,758,-84,2,123,135,71,541,-779,51,171,143,40,291,-511,8,131,168,40,908,-225,34,108,174,40,954,-193,58,108,178,40,998,-188,51,103,184,40,1054,-133,51,101,190,41,1092,-124,45,100,196,39,1119,-119,40,100,203,120,3559,-403,111,101,217,131,3967,-657,99,121,222,132,3608,-1341,35,121,226,121,3407,-1283,72,121,234,121,3462,-1321,88,121,232" + }, + { + "k": "40773e", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "HKS78", + "registration": "G-EMED", + "type": "EC75", + "squawk": "7430" + }, + "p": "732,11232,534674,85,173,63,42,49,-239,0,173,64,30,36,-171,0,0,0,134,154,-767,0,173,64,45,53,-256,0,173,64,96,111,-544,0,173,64,45,51,-255,0,173,64,35,41,-202,2,173,64,74,86,-424,1,173,64,41,47,-233,0,173,64,42,49,-245,-1,173,66,40,47,-231,0,173,65,40,47,-231,0,173,66,40,48,-238,0,173,66,41,48,-237,-3,173,64,38,45,-222,0,173,65,41,48,-240,0,173,66,38,44,-219,0,173,65,42,50,-247,-1,173,65,40,46,-229,-4,173,63,41,45,-228,-4,173,62,51,57,-282,-6,173,62,38,41,-211,-3,173,62,42,47,-231,-5,173,62,30,22,-168,-2,179,62,41,-18,-229,-5,186,64,40,-38,-225,-4,186,64,40,-67,-230,-5,194,65,40,-133,-227,-4,202,68,40,-35,-223,-3,164,56,40,144,-166,-7,147,48,40,152,-66,-10,94,25" + }, + { + "k": "407fb9", + "m": { + "kind": "helicopter", + "layer": "flights", + "callsign": "GPJCD", + "registration": "G-PJCD", + "type": "A139", + "squawk": "7420", + "helicopter": true + }, + "p": "732,12916,526763,22,86,41,41,233,11,20,84,39,40,226,17,20,82,38,40,242,50,10,56,56,31,247,103,0,56,71,40,354,146,0,56,71,41,353,143,0,57,71,39,346,141,0,56,71,40,351,142,0,56,71,40,351,143,0,56,71,33,288,116,0,56,72,45,400,163,0,56,72,74,663,268,0,56,73,40,360,145,0,56,73,39,345,138,0,56,73,42,383,155,0,56,75,39,365,147,-6,57,74" + }, + { + "k": "484ac1", + "m": { + "kind": "helicopter", + "layer": "flights", + "callsign": "ZXP25", + "registration": "PH-PXY", + "type": "A139", + "squawk": "6220", + "helicopter": true, + "country": "Kingdom of the Netherlands" + }, + "p": "733,45520,521750,5,171,34,40,191,-71,17,106,51,39,314,-53,2,97,61,41,376,-4,3,91,64,31,288,-3,4,90,63,40,374,0,4,90,64,41,380,5,3,88,63,40,367,8,-2,88,64,39,366,11,-1,86,64,41,364,141,-4,54,75,40,352,158,-4,54,75,40,357,159,0,55,75,71,-36,500,4,316,87,40,-369,222,2,315,88,40,-358,217,2,316,81,40,-325,172,-19,279,59,40,-108,-73,-11,133,11" + }, + { + "k": "398564", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM81Y", + "registration": "F-HBLE", + "type": "E190", + "squawk": "1000" + }, + "p": "732,47689,523034,0,59,9,41,51,20,0,59,11,39,21,30,0,6,11,41,3,44,0,3,12,232,22,32,0,87,8,40,9,-16,5,184,25,40,-21,-222,10,184,81,71,173,-491,92,164,84,40,120,-335,22,179,113,40,-59,-428,50,185,122,40,-60,-435,53,185,126,40,-186,-442,59,202,127,40,-284,-445,41,202,136,41,-296,-466,38,201,141,40,-300,-471,38,201,143,39,-305,-482,39,201,145,40,-307,-486,33,201,149,40,-321,-510,34,201,152,40,-325,-518,42,201,157,132,-1113,-1780,144,201,168,131,-1276,-1908,109,203,184,120,-1273,-1897,80,203,195,121,-1368,-2057,36,203,218" + }, + { + "k": "4258ee", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "RNG06" }, + "p": "749,-22636,533575,0,42,9,79,69,30,0,51,12" + }, + { + "k": "4bc894", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "PGT65G", + "registration": "TC-RDT", + "type": "A21N", + "squawk": "6623" + }, + "p": "753,55906,522063,964,296,236,131,-4045,1231,-3,296,236,121,-3756,1121,0,296,237,120,-3780,1109,-1,296,239,131,-4209,1219,0,295,241,120,-3878,1103,0,295,241,120,-3874,1081,-1,295,240,121,-4089,666,-2,282,236,120,-4098,527,0,282,234,142,-4815,598,-1,281,230,120,-4061,490,0,281,232,120,-4072,474,1,281,231" + }, + { + "k": "4d20fd", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "WMT68LU", + "registration": "9H-WMQ", + "type": "A21N", + "squawk": "5203" + }, + "p": "754,-3791,518728,0,73,23,39,362,61,45,75,84,39,496,79,50,76,96,52,725,-134,30,154,130,41,-229,-435,34,237,142,40,-742,-250,54,246,146,40,-833,12,18,280,147,39,-844,82,49,279,154,41,-928,88,38,279,164,40,-947,38,30,255,168,40,-908,-211,60,244,168,72,-1008,-917,64,209,186,39,-541,-604,1,209,196,40,-172,-676,6,165,197,40,529,-637,20,151,203,40,544,-646,27,153,203,40,554,-660,34,152,209,41,576,-673,37,152,213,121,1779,-2097,100,152,224,120,2104,-2076,80,143,234,130,2622,-2187,87,143,237,131,2607,-2207,99,143,233,120,2379,-2031,72,143,233" + }, + { + "k": "406b05", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW29C", + "registration": "G-STBL", + "type": "B77W", + "squawk": "7645" + }, + "p": "773,-25695,514142,698,96,201,132,3644,-246,-107,96,185,40,1031,-73,-30,97,179,40,1020,-74,-30,96,177,39,977,-69,-27,97,174,41,1001,-71,-25,97,170,40,963,-70,-28,96,169,40,960,-72,-27,97,170,39,942,-72,-21,97,165,52,1203,-90,-23,97,163,40,924,-71,-18,97,161,40,906,-71,-11,97,153,40,822,-36,0,90,139,40,796,-7,0,91,138,41,793,-7,-2,91,138,40,793,-8,-10,91,137,40,770,-9,-10,91,135,39,766,-8,-9,91,135,40,776,-9,0,91,134,41,776,-11,-9,92,136,39,773,-8,-9,91,134,41,784,-14,-11,93,138,50,965,-22,-13,96,133,41,496,-337,-10,175,138,40,-413,-370,-10,254,131,31,-533,74,-5,310,127,40,-421,373,-9,325,125,40,-486,330,-11,292,128,40,-728,72,-5,278,127,40,-707,97,0,285,125,40,-695,110,1,284,126,40,-705,111,-4,284,126,40,-701,107,-15,284,123" + }, + { + "k": "485207", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM64L", + "registration": "PH-EXF", + "type": "E190", + "squawk": "7634" + }, + "p": "773,-25529,534072,1090,100,238,132,4722,-474,22,100,243,121,4349,-453,0,100,242,120,4263,-459,0,100,239,130,4578,-520,0,103,241,120,4158,-688,1,105,241,120,4152,-696,0,106,240,121,4139,-685,0,105,241,131,4515,-748,0,105,240,131,4500,-763,0,106,240,121,4140,-588,-109,100,236,121,4009,-271,-140,94,213" + }, + { + "k": "43c8d6", + "m": { + "kind": "military", + "layer": "military", + "callsign": "CWL35", + "registration": "ZM335", + "type": "E50P", + "squawk": "1735", + "military": true + }, + "p": "773,-4787,530309,23,82,67,40,447,93,36,42,98,40,404,269,55,43,102,31,307,211,49,40,99,40,367,286,55,35,102,41,354,318,47,32,107,40,354,323,27,33,111,39,371,338,0,33,115,41,363,348,1,32,112,40,200,368,-1,336,117,40,-562,68,-1,222,105,68,524,-376,1,115,92,43,553,-150,-1,115,93,40,506,-134,1,112,93,40,519,-121,0,110,92,40,515,-115,-1,111,92,40,512,-109,-1,90,94,41,236,296,0,337,114,39,-523,245,2,300,114,41,-603,178,18,295,103,39,-551,151,12,294,105,40,-615,148,0,290,114,40,-647,109,-1,253,110,41,178,-132,1,43,108,47,10,486,2,355,114,44,-73,448,-13,354,124,40,-120,444,-26,348,123,30,-122,334,-26,347,124,41,-197,414,4,342,112,40,-162,371,0,12,103,40,439,65,-2,146,90,40,194,-308,1,160,93,40,202,-316,0,158,93,40,199,-307,-1,160,92,40,201,-308,0,158,92" + }, + { + "k": "4caed8", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EIN7HL", + "registration": "EI-NSH", + "type": "A20N", + "squawk": "4223" + }, + "p": "772,-4781,514648,8,89,54,41,429,1,43,90,72,40,340,-153,37,169,98,31,-226,-264,30,235,125,40,-767,-31,63,275,138,41,-810,35,52,274,142,40,-836,27,25,272,147,39,-844,18,41,272,151,41,-919,87,42,295,170,40,-912,285,10,297,178,40,-917,285,12,296,177,71,-1634,506,60,296,179,40,-937,288,25,296,183,40,-953,293,55,296,187,40,-960,315,53,298,191,121,-3294,526,146,277,201,121,-3600,280,113,277,211,139,-4310,322,82,277,224" + }, + { + "k": "43bfdd", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "LEADER 8" }, + "p": "769,-1730,511535,0,273,11,136,-104,21,0,340,14,40,-39,-10,0,155,8" + }, + { + "k": "a0a54d", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL973", + "registration": "N14019", + "type": "B78X", + "squawk": "4417" + }, + "p": "773,45006,509094,0,194,15,40,-85,-205,18,195,84,40,-234,-256,62,240,88,31,-395,20,40,304,110,40,-463,374,32,323,140,41,-530,429,44,321,152,40,-598,396,61,314,153,39,-624,388,50,313,159,41,-814,329,19,292,177,40,-1013,222,28,289,194,40,-1055,235,51,290,198,71,-1937,425,86,289,205,40,-1127,244,42,289,210,40,-1143,245,39,289,216,120,-2996,1429,148,311,219,120,-2832,1542,95,311,228,120,-3151,1531,80,304,235,132,-3813,1581,60,304,248,131,-3983,1625,34,303,252,120,-3722,1495,30,303,254,120,-3725,1474,-1,303,253" + }, + { + "k": "502ccf", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BTI6RZ", + "registration": "YL-CSF", + "type": "BCS3", + "squawk": "1000" + }, + "p": "772,47689,523013,0,236,37,41,-346,-129,25,239,76,40,-389,-138,40,252,86,31,-437,64,26,309,121,40,-75,450,56,28,137,41,455,450,40,32,155,40,462,478,62,30,154,39,469,485,48,31,162,41,500,508,57,35,163,40,784,317,38,66,168,40,957,258,35,66,181,72,1787,481,74,66,189,39,1030,275,40,66,193,40,1055,281,38,66,197" + }, + { + "k": "406ae2", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EFW88UA", + "registration": "G-EUYV", + "type": "A320", + "squawk": "2150" + }, + "p": "793,-1866,511514,0,259,9,59,-63,-8,0,259,8,30,-40,-6,0,259,11,42,-68,-9,0,259,12,41,-64,-9,0,259,9,100,30,-23,0,76,37,40,393,56,42,77,73,40,432,52,33,78,89,39,551,106,23,53,112,52,-27,493,29,315,129,40,-745,59,2,259,145,40,-820,-99,0,260,146,40,-826,-95,17,260,147,40,-820,-101,14,258,144,40,-803,-106,40,258,144,41,-769,-197,67,228,149,39,-621,-381,45,226,164,40,-720,-448,26,225,185,40,-893,-310,52,255,181,40,-994,-163,38,255,178,40,-982,-159,44,256,181,41,-1033,-168,34,256,189,50,-1331,-218,53,255,192,41,-1074,-191,40,247,196,131,-1996,-2024,117,206,213,120,-1690,-2182,80,206,221,120,-1688,-2187,64,207,234" + }, + { + "k": "4016b8", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "GAVBH", + "registration": "G-AVBH", + "type": "P28A", + "squawk": "7350" + }, + "p": "793,9346,527586,21,207,44,39,-250,42,8,344,62,52,162,157,7,143,44,40,3,-141,10,196,44,40,-241,39,4,351,51,40,136,100,-19,82,36,81,157,-197,-9,210,44,37,-228,19,18,348,56,43,66,172,-8,68,35" + }, + { + "k": "4846e1", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "V8", + "registration": "GND", + "type": "GND" + }, + "p": "793,47439,523162,0,3,10,37,4,34,0,3,11,50,-1,-2,0,183,10,37,-3,-33,0,183,10,65,-2,-25,0,0,10,42,7,45,0,354,12,78,0,-3,0,191,10,193,-7,-42,0,3,11,39,7,47,0,349,11,35,-2,11,0,183,9,35,-3,-32,0,183,11,173,-2,-20,0,3,8,39,7,38,0,0,12,60,0,1,0,177,11,47,-7,-46,0,180,10,45,6,42,0,20,17,36,-1,18,0,183,10,117,-4,-49,0,0,8,34,6,36,0,352,12,44,-2,12,0,180,13,80,-4,-43,0,0,12,37,5,43,0,0,13" + }, + { + "k": "485f85", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM567", + "registration": "PH-BKS", + "type": "B78X", + "squawk": "3132" + }, + "p": "793,47799,523187,0,183,31,40,-21,-238,16,183,83,51,186,-350,43,117,102,41,670,-43,38,93,122,40,766,-24,32,93,140,40,827,-23,58,93,140,39,826,-22,49,93,144,41,857,-27,48,93,147,40,842,-102,45,119,145,40,694,-295,47,125,145,71,1336,-587,41,125,172,41,861,-373,27,125,183" + }, + { + "k": "47878d", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "NOZ4LH", + "registration": "LN-DYX", + "type": "B738", + "squawk": "0733" + }, + "p": "793,55854,522316,1085,211,216,131,-2114,-2193,0,211,218,120,-1937,-2034,0,210,220,121,-1928,-2053,0,210,221,131,-2102,-2255,0,210,220,120,-1883,-2048,1,210,219,120,-1862,-2041,0,210,218,120,-1840,-2034,32,210,217,132,-2005,-2241,0,212,219,131,-2123,-2180,0,212,217" + }, + { + "k": "4081bc", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW71LK", + "registration": "G-TNEG", + "type": "A21N", + "squawk": "1172" + }, + "p": "793,55915,505587,1089,297,226,131,-3733,1199,-1,297,224,120,-3416,1083,-1,296,225,121,-3473,1085,0,296,231,131,-3838,1182,0,296,227,120,-3500,1061,-1,296,230,120,-3568,1066,1,295,234,120,-3622,1066,-2,295,228,132,-3918,1136,-1,295,230,131,-3791,1083,-123,294,211,120,-3216,902,-109,294,194,120,-2966,821,-109,294,183" + }, + { + "k": "407e45", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EXS021J", + "registration": "G-SUNB", + "type": "A21N", + "squawk": "6213" + }, + "p": "813,-25975,530531,1049,164,224,132,1831,-2403,-9,148,219,120,1942,-1932,-107,149,207,120,1829,-1843,-118,149,193,131,1854,-1885,-122,149,182,120,1624,-1645,-96,146,174,41,527,-495,-2,147,153,39,464,-439,0,147,148,40,471,-446,-1,147,148,40,479,-453,-59,147,157,40,520,-495,-62,147,165,40,520,-496,-16,147,164,41,519,-496,-13,147,163,50,651,-624,0,147,164,41,517,-497,0,147,166,40,477,-518,0,154,165,31,323,-411,-16,154,163,40,428,-532,-43,154,163,40,402,-524,-19,154,162,40,396,-518,-10,155,161,40,392,-525,-4,155,160,40,389,-522,0,155,161,40,392,-522,-4,155,163,40,395,-532,-17,155,163" + }, + { + "k": "aaa012", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ASA180", + "registration": "N784HA", + "type": "B789", + "squawk": "1143" + }, + "p": "813,-25908,527620,1176,139,259,132,3335,-2301,0,139,258,120,3506,-1769,39,122,264,121,4016,-1518,24,122,263,130,4231,-1627,2,122,264,120,3877,-1514,0,122,262,120,3833,-1521,0,123,263,121,3818,-1537,0,123,261,131,4113,-1682,1,123,260,131,4081,-1695,0,124,260,120,3711,-1566,1,124,262,121,3711,-1587,1,124,263" + }, + { + "k": "4b18f2", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EDW28K", + "registration": "HB-JLQ", + "type": "A320", + "squawk": "2063" + }, + "p": "813,-25265,535650,1110,161,232,132,1836,-2545,1,156,235,120,1812,-2292,0,151,238,121,2051,-2280,2,152,237,130,2168,-2434,-1,152,238,120,1984,-2256,0,152,238,121,1962,-2255,1,152,237,121,1967,-2292,0,152,237,130,2113,-2428,0,147,239,131,2792,-2234,0,142,241,120,2561,-2035,1,142,240,120,2543,-2044,0,142,241" + }, + { + "k": "407ea1", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DHK849", + "registration": "G-DHLO", + "type": "B763", + "squawk": "2071" + }, + "p": "813,-13453,528307,0,87,33,40,400,7,65,93,75,31,357,-11,60,93,79,40,534,-97,59,130,110,41,565,-295,68,140,136,40,22,-482,35,211,147,40,-453,-478,33,184,173,40,228,-628,46,167,180,39,189,-628,49,171,182,41,147,-664,52,173,188,71,255,-1237,84,173,200,40,156,-715,39,172,202,120,489,-2231,199,172,216,120,2089,-1948,74,135,228,120,3029,-1540,1,121,228,131,3678,-1372,1,121,225,132,3671,-1387,0,121,226,121,3339,-1278,1,122,227,121,3878,-400,0,93,229" + }, + { + "k": "501c0c", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EXS7MJ", + "registration": "9A-ABC", + "type": "B738", + "squawk": "7475" + }, + "p": "813,-12518,502017,694,28,220,111,1489,1833,-103,27,193,41,502,619,-37,27,187,40,472,591,-45,27,184,39,461,564,-45,27,179,41,472,570,-38,28,172,40,441,534,-40,27,167,40,426,529,-42,27,164,71,739,909,-57,28,149,40,376,455,-25,28,139,40,360,422,-19,29,130,40,337,405,-23,27,123,40,317,392,-26,27,122,40,302,394,-29,25,121,41,414,343,-17,41,116,39,406,301,-23,40,108,40,445,231,-16,68,100,40,540,77,-21,78,95,40,516,73,-20,77,90,41,455,63,-18,78,77,40,414,58,-16,77,73,48,505,71,-19,77,76,40,313,43,-15,76,22" + }, + { + "k": "4cad39", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR1T", + "registration": "EI-HEY", + "type": "B38M", + "squawk": "2261" + }, + "p": "812,2391,518879,15,223,71,41,-361,-237,39,224,90,31,-300,-200,25,223,110,40,-596,-97,58,303,124,41,-205,412,56,346,128,39,-609,285,23,275,149,40,-879,13,39,271,153,41,-908,-21,49,255,161,40,-932,-197,33,250,176,40,-937,-256,51,230,178,71,-1312,-826,84,224,183,40,-740,-487,40,223,188,40,-753,-483,40,225,190,40,-790,-491,37,225,194,121,-2114,-1599,119,198,196,121,179,-2157,85,158,212,120,1407,-2189,73,158,225,130,1571,-2469,73,158,234,131,1641,-2616,59,158,243,120,1483,-2397,69,159,242" + }, + { + "k": "a4c592", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "JBU1621", + "registration": "N4062J", + "type": "A21N", + "squawk": "6462" + }, + "p": "814,-4853,514648,0,90,11,39,330,1,13,90,86,31,370,1,40,87,84,40,458,205,17,49,109,41,536,289,25,49,131,40,692,203,43,73,135,40,690,220,43,41,142,40,67,492,7,344,143,40,-230,495,0,344,145,40,-231,499,22,343,145,71,-446,910,80,343,149,40,-268,542,19,343,166,40,-284,601,19,344,183,40,-292,646,36,345,188,40,-290,657,35,345,192,40,-330,669,33,338,197,41,-491,650,34,335,200,39,-492,650,33,335,202,40,-506,660,33,335,205,40,-508,679,30,336,208,40,-570,662,28,330,211,131,-2114,2163,78,325,219,132,-2413,2181,70,326,224,121,-2240,2019,54,326,225,121,-2286,2038,51,326,227" + }, + { + "k": "345206", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VLG7291", + "registration": "EC-MLE", + "type": "A320", + "squawk": "5227" + }, + "p": "828,-1875,511513,0,259,9,117,-126,-18,0,259,9,40,-56,-7,0,259,11,253,-51,-35,0,79,8,38,290,39,16,79,82,40,452,58,45,79,88,40,564,82,22,71,108,40,276,336,15,351,121,40,-493,297,18,279,138,41,-820,-86,22,259,146,39,-807,-94,30,260,146,40,-818,-95,21,259,147,40,-818,-107,22,258,145,41,-792,-120,80,256,140,39,-809,-123,48,257,151,41,-847,-132,60,255,154,50,-1118,-177,58,257,161,41,-899,-142,53,256,161,40,-834,-263,41,238,168,31,-484,-368,29,214,175,120,-1803,-1716,83,214,199,120,-1855,-1782,114,213,196" + }, + { + "k": "43c8e0", + "m": { + "kind": "military", + "layer": "military", + "callsign": "SYS71", + "registration": "ZM506", + "type": "EC35", + "squawk": "7421", + "helicopter": true, + "military": true, + "country": "United Kingdom" + }, + "p": "852,-24427,528153,31,269,50,32,-114,78,0,36,44,39,243,27,0,93,44,39,256,0,0,88,43,34,224,15,0,91,45,45,106,-116,-4,212,37,33,-139,-11,-1,275,22,30,-98,4,-3,271,23,592,24,35,2,46,33,42,172,23,0,42,36,47,-131,-63,-1,275,20" + }, + { + "k": "471fae", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "WMT729", + "registration": "HA-LZY", + "type": "A21N", + "squawk": "4711" + }, + "p": "853,-15284,535932,459,119,164,31,670,-225,38,119,165,40,890,-292,35,118,171,41,914,-296,43,119,173,120,2857,-921,102,118,183,151,3702,-1191,106,119,189,120,3173,-942,51,103,207,121,3728,-497,60,103,216,121,3872,-535,56,103,223,120,3934,-523,44,102,230,130,4416,-614,45,104,236,131,4493,-618,9,103,237,120,4124,-513,-1,100,237" + }, + { + "k": "48644b", + "m": { + "kind": "helicopter", + "layer": "flights", + "callsign": "NCG06", + "registration": "PH-NCG", + "type": "A189", + "squawk": "5177", + "helicopter": true, + "ladd": true, + "country": "Kingdom of the Netherlands" + }, + "p": "852,46518,524792,11,56,2,32,-20,-50,11,167,25,40,62,-95,-1,150,33,41,198,-97,0,129,45,39,190,-108,-3,134,46,40,215,-99,0,117,45,41,270,-39,0,99,49,40,285,-35,0,102,50,40,222,-27,0,104,33,71,398,-56,0,100,46,40,264,-38,0,117,45,40,198,-111,1,140,41,40,143,-131,-1,168,43,40,166,-108,0,100,48,40,265,-41,0,96,47,41,213,-54,0,145,39,39,106,-121,0,145,36,40,143,-85,0,129,29,40,94,-69,0,147,26,40,93,-97,0,160,31,40,-26,-92,0,204,29,41,-105,-85,0,228,31,50,-148,-107,0,204,33,41,-58,-96,-1,221,20,40,-59,-37,-4,227,11,31,-24,-16,-5,221,5,41,7,-53,11,123,35,39,155,-101,4,143,40,40,242,-59,1,73,55,40,259,136,-1,45,59,40,236,143,0,46,57,40,239,162,-3,28,69,40,137,218,1,20,61" + }, + { + "k": "486905", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM359", + "squawk": "3166" + }, + "p": "853,47709,523020,0,236,32,31,-267,-103,21,237,85,40,-448,-191,56,230,99,41,-490,-280,54,238,120,40,-719,-119,65,278,143,39,-665,327,68,332,161,41,-503,522,52,325,176,40,-675,528,41,322,194,40,-709,566,58,323,201,71,-1315,1033,102,322,209,40,-760,598,58,322,212,120,-2397,1860,133,322,226,120,-2539,1982,104,327,241,120,-1711,2386,94,341,248,131,-1621,2789,108,341,248" + }, + { + "k": "4cac7a", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SAS1547", + "registration": "EI-SIK", + "type": "A20N", + "squawk": "0743" + }, + "p": "853,55761,525179,300,243,136,31,-636,-25,-14,277,145,40,-861,60,-23,276,144,41,-852,56,-21,276,144,40,-846,54,-22,276,143,39,-824,55,-21,276,142,41,-831,56,-21,276,141,40,-824,51,-21,276,140,40,-809,51,-20,276,136,71,-1304,51,-20,253,106,40,-342,-253,-4,202,89,40,-70,-313,-6,184,87,40,-32,-306,-18,183,85,41,-26,-278,-17,183,65,39,-20,-229,-13,183,66,41,-21,-217,-13,183,57,39,-19,-206,-12,183,59,40,-20,-212,-13,183,61,40,-20,-221,-12,184,64,40,-18,-200,-9,183,37,39,21,-53,0,183,12,41,0,-36,0,183,11,51,31,-36,0,132,10,40,48,-26,0,132,13,39,50,-17,0,62,8,33,37,14,0,59,10,40,51,20,0,59,11" + }, + { + "k": "40838a", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY94MC", + "country": "United Kingdom", + "squawk": "2727" + }, + "p": "80,-1895,511510,0,259,9,841,-208,-56,0,76,17,44,396,55,31,77,83,40,498,69,50,79,97,39,566,-12,47,125,109,41,215,-379,57,169,120,40,182,-468,34,163,144,40,250,-510,58,163,155,71,337,-985,99,183,170,40,-37,-604,76,182,164,40,-27,-597,56,182,168,40,-30,-618,54,182,172,121,-95,-1941,134,182,186,121,-50,-2091,104,181,199" + }, + { + "k": "a8886d", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL924", + "registration": "N649UA", + "type": "B763", + "squawk": "5153" + }, + "p": "884,-25853,514152,715,96,200,121,3355,-225,-95,96,188,39,1049,-73,-32,96,185,41,1060,-77,-31,97,181,40,1012,-71,-30,96,178,40,1005,-72,-31,97,174,71,1756,-128,-52,97,169,40,949,-72,-31,97,167,40,946,-70,-18,97,164,40,922,-71,-13,97,162,40,881,-69,0,97,148,40,823,-63,0,97,145,41,834,-34,-22,91,141,39,791,-7,-9,91,139,40,782,-7,0,91,136,40,790,-8,0,91,138,40,787,-9,0,91,136,40,777,-8,-1,91,135,41,782,-10,-28,91,134,50,971,-12,-3,91,137,41,791,-10,-1,92,132,40,752,-28,-25,94,132,31,577,-14,-4,92,131,40,616,-236,0,154,137,40,-198,-427,-15,232,129,40,-668,9,-22,304,122,40,-417,344,-23,322,120,40,-376,365,-1,330,120,40,-40,412,0,3,120,40,32,428,0,1,121" + }, + { + "k": "407d74", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW706", + "registration": "G-TTNT", + "type": "A20N", + "squawk": "2731" + }, + "p": "884,-4777,514648,8,89,54,40,445,0,48,89,79,41,489,-102,35,120,104,40,641,-166,32,109,133,39,758,-133,27,102,140,40,794,-109,31,103,142,41,806,-112,7,103,144,40,804,-115,0,103,142,71,1412,-201,76,103,142,40,816,-119,52,103,156,40,900,-129,53,103,165,40,978,-141,34,103,182,40,1033,-151,52,103,187,40,1061,-162,46,106,194,41,1087,-199,50,106,197,39,1083,-196,46,105,202,121,3529,-505,112,103,217,130,4077,-610,106,104,229,132,4276,-677,69,104,240,121,3982,-650,81,105,237,121,4070,-676,40,105,248" + }, + { + "k": "400e92", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAH80", + "registration": "G-BYWO", + "type": "G115", + "squawk": "2611" + }, + "p": "884,-4756,530274,33,165,35,40,-233,-55,-2,263,49,41,-268,18,-3,334,46,100,472,72,-1,88,34,40,84,-98,0,213,39,39,-250,-21,-2,273,46,39,-264,14,1,281,45,46,87,78,-11,83,36,67,350,27,12,84,36,30,45,38,-9,244,44,31,-87,-71,5,115,38,39,168,-23,19,197,32,41,-224,-32,17,271,42,40,-251,16,15,316,47,39,155,99,0,68,42,40,142,-41,-15,187,31,40,-159,-75,-16,263,39,40,-175,54,-17,33,41,39,161,-22,17,173,30,41,-173,-22,-8,319,49,30,96,56,-17,83,36,42,219,17,1,83,36,39,55,-72,15,230,38,52,-341,-19,0,269,48,41,-128,60,-10,85,38,79,457,32,-4,85,42,40,207,-24,22,129,33,40,176,-57,18,123,34,40,168,-77,16,133,35,40,158,-93,15,135,38" + }, + { + "k": "4842e5", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "TD8" }, + "p": "884,47441,523173,0,14,13,106,239,15,0,84,20,34,77,14,0,28,16,39,46,39,0,101,14,38,35,-39,0,87,16" + }, + { + "k": "c005e9", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "NCG01", + "registration": "C-FCGE", + "type": "DH8A", + "squawk": "5177" + }, + "p": "884,47993,523123,0,309,10,32,-37,19,0,287,9,47,-69,-3,0,262,11,42,-64,-2,0,259,9,140,-25,-1,0,259,8,91,-51,-52,0,180,11,200,-82,-81,0,233,51,41,-330,-124,27,238,71,39,-416,-123,9,268,96,40,-565,42,0,280,97,40,-554,70,1,283,96,40,-542,101,0,293,98,40,-541,138,-2,293,99,40,-364,241,4,352,99,51,-55,460,1,3,101,40,55,363,0,5,101,40,-231,308,0,308,99,31,-367,162,0,306,99,41,-476,225,0,300,97,40,-528,118,-1,287,96,41,-541,101,0,288,96,39,-528,105,0,288,96,37,-492,106,-1,290,96,40,-537,116,1,290,96,43,-501,-12,-1,218,73" + }, + { + "k": "4d24c0", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "9H-CAC", + "registration": "9H-CAC", + "type": "B763", + "squawk": "2233" + }, + "p": "884,55828,507247,81,225,62,40,-251,-158,-5,226,60,41,-216,-136,-11,224,50,39,-207,-130,-12,225,53,40,-228,-145,-11,225,58,41,-244,-152,-13,225,61,228,-187,-141,-29,45,10" + }, + { + "k": "407cb0", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RUK99FV", + "registration": "G-RUKD", + "type": "B738", + "squawk": "6342" + }, + "p": "905,-25980,532448,133,133,104,40,519,-118,-14,83,95,40,530,109,-24,52,99,39,453,218,-21,51,97,40,447,216,-20,51,95,41,429,207,-20,51,83,40,363,176,-15,52,78,39,315,152,-19,51,43,51,95,69,0,51,10,40,48,23,0,51,12,41,61,29,0,321,11" + }, + { + "k": "4ca8d5", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR86DZ", + "registration": "EI-ENJ", + "type": "B738", + "squawk": "1000" + }, + "p": "905,44256,504522,65,246,81,40,-479,-141,49,247,96,40,-522,-147,52,245,108,39,-601,-140,25,265,124,41,-699,-65,52,259,125,40,-719,-86,53,260,133,40,-785,-90,27,260,156,39,-882,-142,35,238,168,53,-698,-660,72,211,173,39,-516,-534,61,212,176" + }, + { + "k": "4842c4", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "GND", + "registration": "GND", + "type": "GND" + }, + "p": "903,47256,523274,0,129,10,41,53,-37,0,138,14,58,51,-30,0,180,12,38,-4,-40,0,183,10,44,-4,-52,0,183,14,199,65,-79,0,14,13,63,11,93,0,3,16,169,56,22,0,53,14,94,107,-10,0,135,11,178,2,6,0,335,12,74,-107,5,0,228,11,89,-13,15,0,76,10" + }, + { + "k": "484217", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "AMBU2" }, + "p": "900,47450,523285,0,3,8,412,-101,41,0,183,11,41,-4,-38,0,183,10,43,-3,-34,0,183,8" + }, + { + "k": "344698", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VLG96CC", + "registration": "EC-MGE", + "type": "A320", + "squawk": "1000" + }, + "p": "905,47799,523183,0,183,34,40,-19,-232,33,175,70,40,94,-278,35,168,92,39,136,-355,52,168,112,41,25,-437,70,185,122,40,-61,-457,66,187,131,40,-243,-435,69,200,134,39,-295,-486,40,201,151,52,-417,-675,74,201,157,40,-329,-534,49,201,162,40,-342,-560,51,201,168,40,-344,-566,47,201,173,121,-1187,-1785,129,207,183,121,-1390,-1867,81,202,200,121,-1348,-2056,84,202,210,128,-1536,-2374,55,202,227,133,-1558,-2427,107,202,216,121,-1392,-2202,47,202,222" + }, + { + "k": "3c6672", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DLH3EJ", + "registration": "D-AISR", + "type": "A321", + "squawk": "2016" + }, + "p": "924,-25681,533337,1044,98,233,120,4208,-359,0,98,237,121,4234,-378,1,99,238,131,4599,-430,-1,99,235,120,4142,-438,-2,104,235,120,4082,-629,4,105,236,120,4069,-661,0,109,235,132,4319,-909,0,109,232,132,4262,-913,-2,110,232,121,3965,-871,3,110,236,120,3930,-877,-1,110,236" + }, + { + "k": "06a2e7", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "QTR94R", + "registration": "A7-BHD", + "type": "B789", + "squawk": "4633" + }, + "p": "924,-1912,511508,0,257,8,37,-44,-6,0,257,9,44,-63,-9,0,257,11,34,-57,-8,0,257,13,278,9,-26,0,77,37,39,405,53,24,80,89,40,505,64,45,78,98,40,629,91,28,78,123,41,726,12,53,92,130,39,760,-13,54,92,136,40,793,-13,48,90,143,41,837,-16,51,94,148,39,853,-31,52,93,150,40,866,-18,48,91,154,41,904,-12,41,91,162,50,1253,-7,25,90,184,41,1103,2,21,90,199,40,1137,-71,37,99,203,31,895,-91,29,99,205,40,1189,-121,38,99,210,121,3706,-251,94,94,225,121,3947,-355,87,100,234" + }, + { + "k": "c0584f", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ACA867", + "registration": "C-GHLM", + "type": "A333", + "squawk": "4225" + }, + "p": "944,-4859,514648,0,90,11,41,332,0,11,90,87,39,477,18,50,65,87,41,452,236,16,48,114,40,535,298,36,51,130,40,694,168,39,72,133,39,541,297,26,15,136,52,-203,633,11,344,143,40,-235,501,0,344,145,40,-245,494,5,342,145,40,-259,504,51,343,147,40,-262,508,51,342,152,40,-281,552,21,343,172,41,-309,631,28,344,188,39,-306,648,49,344,191,40,-375,656,41,335,197,40,-497,644,41,335,202,40,-514,663,44,335,204,40,-508,663,39,335,208,41,-531,690,38,335,212,131,-1801,2325,103,331,224,131,-2414,2245,88,327,233,120,-2339,2150,63,327,240" + }, + { + "k": "4076e3", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SHT9X", + "registration": "G-NEOU", + "type": "A21N", + "squawk": "6465" + }, + "p": "965,-25937,535658,985,162,230,120,1269,-2331,-1,162,227,151,1706,-2995,2,157,234,120,2019,-2210,-20,148,232,121,2167,-2068,-148,146,216,121,1988,-1827,-97,146,186,120,1690,-1577,-96,147,168,49,638,-614,-34,148,161,41,497,-485,-27,145,156,40,606,-415,-29,138,154,31,465,-317,-22,138,152,40,599,-406,-29,138,150,40,585,-396,-28,138,149,40,576,-388,-29,135,146,40,693,-305,-28,124,147,40,703,-291,-29,124,145,40,695,-289,-29,124,143,40,680,-284,-27,124,141" + }, + { + "k": "4079cc", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VIR48WE", + "registration": "G-VLIB", + "type": "A35K", + "squawk": "5175" + }, + "p": "965,-25580,514132,717,96,201,120,3330,-224,-106,96,189,40,1062,-75,-18,97,180,40,1026,-74,-41,97,180,71,1795,-127,-58,97,175,40,988,-72,-27,97,172,40,980,-72,-28,97,170,40,908,-69,-18,97,149,41,819,-62,-9,97,141,39,793,-60,0,97,142,41,831,-63,-9,97,144,39,801,-63,-11,97,141,40,803,-46,-10,90,140,40,801,-4,-1,91,138,41,790,-8,0,91,136,39,779,-8,0,91,137,41,794,-8,0,91,136,50,974,-11,-12,91,134,41,777,-10,-12,91,135,40,775,-8,-7,91,135,31,596,-8,-14,91,134,40,776,-12,-17,92,131,40,664,-178,0,128,129,40,611,-269,-15,126,131,40,168,-428,-20,204,132,40,-604,-201,-21,279,124,40,-460,285,-6,348,119,40,-87,419,1,327,120" + }, + { + "k": "42594b", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "SQUID20" }, + "p": "954,-4552,514600,0,180,8,451,-94,148,0,87,13,33,53,0,0,87,17" + }, + { + "k": "4855d2", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM1828", + "registration": "PH-EXP", + "type": "E75L", + "squawk": "4123" + }, + "p": "965,55658,525132,298,263,142,40,-851,40,-20,277,145,39,-823,56,-20,276,143,41,-857,59,-19,276,144,40,-831,54,-20,276,143,40,-842,56,-20,276,141,71,-1471,95,-41,276,140,40,-791,50,-18,276,128,40,-701,44,-9,276,116,40,-660,-13,-11,236,105,40,-239,-313,-14,188,93,40,-33,-309,-11,184,79,41,-31,-282,-10,183,78,39,-28,-277,-16,183,77,40,-24,-251,-15,183,64,40,-21,-233,-14,183,64,40,-21,-237,-13,184,68,40,-23,-248,-15,183,71,41,-22,-233,-8,183,28,50,23,-74,-4,154,16,41,-6,-57,0,183,15,40,37,-33,0,132,12,51,69,-38,0,132,13,40,61,11,0,59,11" + }, + { + "k": "a1aa10", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL932", + "registration": "N206UA", + "type": "B772", + "squawk": "4667" + }, + "p": "985,-25401,517087,1177,99,267,120,4573,-443,1,99,265,131,4925,-497,0,99,264,120,4497,-473,0,100,264,121,4513,-493,0,100,264,121,4525,-514,0,100,264,120,4478,-527,0,101,264,130,4819,-586,1,101,265,131,4878,-616,1,102,264,121,4442,-580,0,102,264" + }, + { + "k": "4cae93", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR99RH", + "registration": "EI-IKE", + "type": "B38M", + "squawk": "2216" + }, + "p": "984,-22703,533582,0,239,8,94,-58,-17,0,228,10,43,-59,-36,0,225,14,43,-62,-32,0,225,13,92,-31,-38,0,51,15,40,276,133,22,51,83,40,444,180,37,80,100,40,446,-226,36,170,114,40,19,-419,35,188,117,40,-119,-420,22,195,123,40,-194,-455,26,193,141,40,45,-509,61,174,143,40,91,-521,56,174,148,41,99,-565,25,174,169,39,105,-614,42,174,175,40,110,-632,43,174,180,41,125,-666,39,173,187,31,100,-517,36,173,189,40,132,-680,41,173,191,40,152,-695,39,172,196,31,123,-536,30,172,198,120,751,-2103,117,152,207,120,1718,-2040,90,153,218" + }, + { + "k": "a4ce71", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DAL59", + "registration": "N409DX", + "type": "A339", + "squawk": "5152" + }, + "p": "982,-4756,514666,0,270,8,434,-92,-18,0,90,16,40,341,0,13,91,86,40,460,31,43,61,86,40,457,226,13,50,114,40,556,288,25,52,133,41,722,192,44,72,136,39,579,302,40,18,142,40,-198,478,42,330,145,41,-439,453,46,329,146,30,-334,347,30,329,148,41,-484,488,16,328,167,40,-531,529,16,328,181,31,-435,442,23,329,186,41,-568,593,32,329,190,39,-562,592,32,329,193,40,-565,608,33,331,196,40,-555,609,33,331,196,40,-570,627,26,331,201,40,-581,635,29,331,203,40,-588,630,30,330,203" + }, + { + "k": "425938", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "FIRE 2" }, + "p": "973,-1787,511551,0,73,14,48,88,15,0,76,15" + }, + { + "k": "3475d9", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VLG3CY", + "registration": "EC-ODL", + "type": "A320", + "squawk": "1000" + }, + "p": "985,44977,509092,0,53,10,531,25,-8,0,194,31,40,-91,-222,37,191,72,40,157,-207,66,144,60,40,219,-206,24,147,81,41,235,-262,41,174,84,40,-419,-224,28,245,117,50,-730,-304,74,229,126,41,-575,-315,48,229,141,40,-642,-353,39,229,156,31,-524,-288,44,229,159,40,-696,-384,54,229,162,40,-685,-380,53,229,165,40,-716,-398,45,229,170,40,-704,-423,46,217,173,120,-1559,-1648,105,209,188" + }, + { + "k": "c079ce", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "WJA10", + "registration": "C-GUDH", + "type": "B789", + "squawk": "6303" + }, + "p": "1005,-25993,528544,1175,140,259,120,2948,-2145,-1,140,258,131,3175,-2343,1,141,258,120,2862,-2142,1,141,257,121,2839,-2152,0,141,258,120,2820,-2164,1,141,259,120,2802,-2178,0,141,258,142,3277,-2583,1,142,259,120,2774,-2219,-43,142,260,120,2668,-2157,-105,142,248" + }, + { + "k": "44cc42", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BEL6VP", + "registration": "OO-SBB", + "type": "A20N", + "squawk": "1000" + }, + "p": "1003,44990,509054,8,194,52,41,-74,-235,45,171,60,41,172,-184,58,143,58,40,228,-215,35,146,87,40,338,-306,37,145,119,71,814,-657,119,139,136,40,546,-394,48,132,160,40,959,-232,24,105,196,41,965,-343,53,125,197,39,934,-413,46,125,206,40,964,-428,52,125,210,41,997,-446,49,125,215,121,3615,-798,135,107,229" + }, + { + "k": "4851b1", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM755", + "registration": "PH-BHF", + "type": "B789", + "squawk": "2124" + }, + "p": "1005,47736,523031,0,239,27,39,-339,-131,15,238,91,41,-448,-184,43,228,95,40,-446,-266,30,237,116,40,-681,-158,51,251,128,71,-1321,-274,85,251,141,40,-781,-165,56,251,140,40,-782,-170,42,249,146,40,-800,-216,44,246,152,40,-825,-229,43,245,156,40,-836,-234,41,245,161,41,-875,-247,31,245,169,39,-925,-263,17,245,184,40,-1014,-284,28,245,193,40,-1028,-295,40,245,196,121,-3179,-918,106,245,206,131,-3878,-590,100,262,218,131,-4205,-351,88,263,226,120,-3959,-324,64,262,232" + }, + { + "k": "484209", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "C4" }, + "p": "1004,47749,523095,0,6,23,59,-96,56,0,264,18,40,-108,-1,0,338,13,670,-77,-8,0,20,10,71,103,10,0,87,16,33,83,-1,0,87,19,102,75,1,0,301,12,31,-49,1,0,253,14,63,-130,-6,0,267,9,66,-111,10,0,3,14,30,30,23,0,84,15" + }, + { + "k": "40615b", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW732", + "registration": "G-EUYF", + "type": "A320", + "squawk": "0520" + }, + "p": "1024,-4842,514749,0,90,9,78,53,-19,0,180,8,32,0,-30,0,180,11,744,-1,-52,24,90,47,41,474,2,29,89,81,40,457,-133,31,147,108,40,225,-423,27,170,136,40,-226,-463,29,206,139,40,-288,-468,29,192,146,40,-183,-565,19,192,170,40,-211,-596,12,193,172" + }, + { + "k": "425959", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "SQUID34" }, + "p": "1023,-4816,514744,0,90,12,41,69,1,0,87,13" + }, + { + "k": "425953", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "SQUID28" }, + "p": "1019,-4787,514738,0,53,11,46,55,7,0,90,10,450,146,3,0,87,10,73,90,-1,0,90,9" + }, + { + "k": "4ca622", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR8XC", + "registration": "EI-DWV", + "type": "B738", + "squawk": "1000" + }, + "p": "1023,44360,504551,48,245,83,42,-509,-151,51,246,107,40,-572,-160,62,245,110,39,-579,-157,17,251,120,41,-690,-98,61,261,127,51,-955,-104,72,260,142,40,-863,-88,34,261,164,40,-930,-99,57,260,170,40,-819,-260,58,215,169,40,-445,-542,57,209,172,40,-475,-545,51,209,177" + }, + { + "k": "484271", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "484271" }, + "p": "1018,47824,523210,0,0,17,46,-46,7,0,219,16,63,-172,-32,0,264,23,52,-161,-6,0,236,10,45,23,-34,0,101,23" + }, + { + "k": "4d22b5", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR99AK", + "registration": "9H-LON", + "type": "A320", + "squawk": "1117" + }, + "p": "1024,55868,520001,1087,213,216,121,-2049,-1957,-1,213,217,131,-2229,-2156,1,213,217,120,-2014,-1965,-1,213,216,120,-1987,-1964,0,212,216,121,-1966,-1959,-2,212,216,130,-2131,-2146,3,212,215,132,-2122,-2164,1,212,217,121,-1930,-1981,30,212,217" + }, + { + "k": "4080c0", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW26E", + "registration": "G-ZBLL", + "type": "B78X", + "squawk": "6227" + }, + "p": "994,-4809,514674,0,269,129,562,-18,-26,0,89,30,40,399,2,10,89,97,40,520,81,53,50,96,40,472,240,17,51,117,41,600,282,22,62,135,50,916,252,53,47,142,41,152,486,43,339,147,40,-406,466,43,330,150,31,-336,368,33,331,152,40,-449,491,30,330,162,40,-493,530,23,330,175,41,-505,556,39,331,178,39,-496,567,37,332,182,40,-506,575,34,331,185,40,-514,593,34,333,188,40,-506,604,37,333,190" + }, + { + "k": "407f61", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY19BE", + "registration": "G-EJCH", + "type": "A320", + "squawk": "6763" + }, + "p": "1044,15794,502002,936,331,231,121,-2053,2100,-153,310,228,131,-3266,1507,-178,306,208,40,-935,424,-49,305,204,40,-937,422,-49,305,200,40,-896,420,-48,309,197,40,-861,440,-45,309,194,40,-851,433,-41,309,189,40,-800,406,-19,309,174,40,-739,375,-15,309,159,41,-705,355,-28,308,154,39,-673,333,-31,308,152,40,-805,188,-10,277,154,41,-870,66,-10,276,149,30,-633,45,-6,277,148,41,-836,61,-9,277,146,40,-820,61,-9,277,143,30,-618,47,-20,277,142,41,-804,67,-32,278,139,40,-790,77,-23,279,142,40,-762,71,-11,278,129,40,-507,237,-8,343,110,40,-121,361,-12,348,97,40,-64,327,-22,20,92,40,351,247,-19,45,92" + }, + { + "k": "4952cd", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "TAP752", + "registration": "CS-TVM", + "type": "A20N", + "squawk": "2353" + }, + "p": "1044,27429,502098,1182,40,246,121,2680,2014,-2,41,246,131,2971,2204,2,41,247,120,2746,2015,0,41,248,120,2802,2028,-1,41,250,120,2823,2020,1,41,252,132,3133,2215,-1,42,250,131,3162,2203,-1,42,250,120,2901,1997,1,42,250,120,2933,1990,0,42,250" + }, + { + "k": "4cad3c", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR26QM", + "registration": "EI-HMT", + "type": "B38M", + "squawk": "2044" + }, + "p": "1065,-21430,535879,405,197,198,40,-355,-685,53,197,195,40,-329,-638,71,197,182,132,-181,-2078,113,170,199,121,802,-2261,57,158,224,120,1543,-2312,74,158,234,120,1641,-2325,76,157,238,129,519,-2719,73,177,238,132,255,-2793,80,175,237,121,1508,-2410,56,147,242,121,2356,-2220,44,146,244" + }, + { + "k": "425952", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "425952" }, + "p": "1062,-4849,514744,0,28,11,36,63,2,0,121,11" + }, + { + "k": "4855d0", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLC1056", + "registration": "PH-EXN", + "type": "E75L", + "squawk": "6352" + }, + "p": "1065,13041,526762,33,89,61,40,261,-152,29,162,79,40,161,-319,39,163,98,39,201,-370,52,160,119,52,294,-535,110,162,115,40,221,-407,54,162,128,40,246,-456,43,162,144,40,284,-530,38,162,161,40,324,-564,47,155,171,40,549,-503,81,143,160,41,668,-413,52,117,168,39,1010,-173,16,104,190,120,3174,-487,30,104,186,131,3470,-516,1,90,190,132,3453,812,0,67,192,80,2100,543,-35,67,196,41,1062,272,-38,67,190,39,995,253,-36,67,185,40,1005,255,-35,68,185,40,991,251,-35,68,181,40,961,242,-35,68,175" + }, + { + "k": "801859", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AIC129", + "registration": "VT-AWB", + "type": "B789", + "squawk": "3256" + }, + "p": "1065,55501,509053,1215,290,237,121,-3842,895,0,290,236,130,-4081,931,-2,290,234,120,-3779,847,0,289,234,120,-3763,830,-1,289,234,120,-3817,825,-6,289,235,132,-4127,874,-84,289,225,131,-3916,814,-99,288,211,121,-3367,689,-89,288,197,121,-3228,647,-103,288,190" + }, + { + "k": "407281", + "m": { + "kind": "helicopter", + "layer": "flights", + "callsign": "CTK06", + "registration": "G-EMHN", + "type": "A109", + "squawk": "7000", + "helicopter": true + }, + "p": "1084,-25237,535990,110,259,38,39,-464,-47,0,260,41" + }, + { + "k": "400a7d", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW7RL", + "registration": "G-DBCB", + "type": "A319", + "squawk": "5211" + }, + "p": "1085,-4831,514648,0,90,33,40,378,3,27,89,76,40,438,-37,41,120,89,71,413,-677,62,174,137,40,217,-481,31,163,140,40,228,-482,20,164,142,41,215,-500,7,165,141,39,199,-491,3,166,142,40,210,-503,64,166,148,41,208,-545,51,166,164,39,235,-608,35,167,184,40,249,-651,62,167,187,40,250,-659,56,166,191,40,258,-675,46,167,198,40,266,-702,52,166,202,132,1662,-2125,164,138,205,131,3003,-1567,118,123,218,120,2883,-1510,86,140,225" + }, + { + "k": "4078dd", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW21ML", + "registration": "G-XWBF", + "type": "A35K", + "squawk": "7654" + }, + "p": "1105,-25801,514183,693,96,203,131,3696,-263,-102,97,192,41,1091,-81,-30,97,188,39,1047,-79,-29,97,181,40,1006,-75,-28,97,174,40,985,-74,-27,97,171,41,966,-74,-27,97,168,40,953,-74,-27,97,165,39,907,-72,-11,97,154,40,829,-62,0,97,140,40,794,-59,0,97,141,40,810,-62,0,97,142,40,800,-63,0,97,140,41,814,-20,0,90,140,50,1007,-10,-14,91,138,40,787,-7,-16,91,136,41,782,-9,-1,91,135,31,599,-6,0,91,134,40,771,-9,-14,91,134,40,764,-10,-16,91,131,40,756,-9,-1,91,134,40,747,-9,-8,92,129,40,740,-25,-20,104,130,40,627,-251,-20,126,132,40,560,-313,-14,156,131" + }, + { + "k": "406666", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY12WY", + "registration": "G-EZUL", + "type": "A320", + "squawk": "1424" + }, + "p": "1105,-25563,532657,955,120,212,131,3598,-1263,1,130,213,120,2126,-1884,1,147,211,121,2062,-1919,-45,147,211,121,2045,-1863,-183,145,198,58,970,-857,-140,146,202,40,666,-610,-56,147,198,41,627,-590,-72,147,192,31,442,-425,-16,148,171,40,509,-501,-10,148,161,40,509,-504,-71,148,168,31,411,-404,-63,149,173,41,511,-522,-40,149,156,39,437,-444,-19,149,137,40,401,-407,-11,149,126,40,368,-374,0,149,121,40,357,-375,0,150,121,40,353,-374,-21,150,120,40,358,-371,-16,149,119" + }, + { + "k": "406446", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY8303", + "registration": "G-EZGI", + "type": "A319", + "squawk": "7311" + }, + "p": "1105,-2010,511485,0,259,9,40,-58,-8,0,259,12,311,79,-7,11,77,62,40,419,62,42,76,77,41,496,64,35,78,100,39,540,-130,51,148,122,41,177,-474,33,167,135,39,221,-466,16,163,140,40,226,-491,0,164,143,41,230,-500,-1,164,143,30,175,-375,0,164,143,41,233,-504,7,164,146,40,244,-517,29,164,151,31,188,-401,1,164,150,40,-29,-553,47,186,156,40,-96,-568,64,186,161,40,-62,-585,68,183,163,40,-38,-604,48,182,174,40,-29,-625,63,182,174,40,-23,-637,52,181,178" + }, + { + "k": "406b80", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EFW79YW", + "registration": "G-GATN", + "type": "A320", + "squawk": "7716" + }, + "p": "1101,-1793,511571,0,259,8,194,-91,-59,0,259,10,161,-81,-21,0,259,8,40,-58,-8,0,259,10,579,-21,-21,11,76,55,44,435,62,43,78,69,40,459,61,28,78,98" + }, + { + "k": "39bda3", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AFR54YT", + "registration": "F-HPND", + "type": "BCS3", + "squawk": "7567" + }, + "p": "1105,14794,502022,718,306,186,131,-2563,1450,-47,321,191,101,-1700,1309,-80,320,184,39,-652,501,-32,320,183,40,-653,500,-29,320,180,40,-648,495,-32,320,177,40,-654,474,-26,313,177,40,-768,405,-3,309,174,40,-772,395,-5,309,173,41,-757,385,-30,309,168,39,-733,373,-46,309,167,40,-693,350,-21,309,149,41,-524,372,-21,349,133,30,-41,363,-22,357,132,41,-33,477,-27,358,131,39,-202,426,-22,307,131,32,-574,51,-17,268,131,41,-750,-22,-22,267,127,39,-713,-20,-11,267,126,40,-719,-22,1,267,127,40,-723,-26,0,267,127,40,-715,-29,0,267,126,40,-723,-31,0,267,126,40,-680,-95,-22,250,124" + }, + { + "k": "020175", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "MAC135", + "registration": "CN-NMP", + "type": "A320", + "squawk": "1000" + }, + "p": "1105,30541,502160,751,37,228,131,2499,2128,-77,37,222,102,1877,1619,-74,36,218,38,763,556,-63,55,220,40,1072,351,-37,64,209,40,1033,335,-44,63,204,40,1025,340,-31,63,202,40,997,328,-29,63,198,40,830,476,-29,40,198,41,714,536,-27,40,187,39,602,514,-19,34,173,40,537,504,-32,34,170,41,528,504,-22,33,159,30,363,347,-16,34,148,41,470,444,-29,34,145,40,451,421,-22,34,139,31,336,312,-9,34,132,40,417,402,-23,33,133,40,604,218,-22,74,118,41,480,-140,-13,140,90,39,71,-282,-9,188,80,40,-96,-276,-10,195,79,40,-114,-275,-10,194,81,40,-113,-278,-6,195,80" + }, + { + "k": "ab4866", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DAL47", + "registration": "N826NW", + "type": "A333", + "squawk": "2140" + }, + "p": "1104,47698,523016,0,236,31,41,-378,-143,18,239,93,39,-424,-190,42,219,93,53,-640,-300,24,252,126,39,-716,-7,49,293,136,40,-552,394,32,330,153,40,-448,482,36,329,156,40,-498,487,36,324,159,40,-582,448,37,322,162,41,-607,472,35,322,165,39,-606,470,29,322,171,40,-632,486,38,322,172,40,-651,500,15,321,184,41,-693,535,20,322,193,39,-732,560,13,322,206,41,-792,605,18,322,215,50,-1020,773,27,321,222,41,-833,629,32,321,223,40,-835,629,29,321,224,31,-539,536,16,340,228,40,-450,781,23,341,230,40,-458,792,23,341,232,120,-1367,2361,79,341,233" + }, + { + "k": "347695", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VLG2BE", + "registration": "EC-OGD", + "type": "A320", + "squawk": "1000" + }, + "p": "1104,47715,523044,0,59,9,41,43,20,0,17,8,191,-1,87,0,318,8,452,43,42,0,183,26,40,-25,-223,27,184,73,51,118,-372,45,166,97,40,148,-375,49,168,117,40,-22,-437,68,185,121,41,-61,-450,68,185,126,40,-61,-454,58,185,134,39,-156,-511,29,202,156,41,-345,-516,66,202,155,39,-346,-519,50,202,159" + }, + { + "k": "4d2374", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VJT407", + "registration": "9H-VCP", + "type": "CL35", + "squawk": "0153" + }, + "p": "1105,48003,523117,0,312,9,60,-86,23,0,264,15,271,-122,1,0,183,31,41,-24,-239,59,183,70,40,34,-262,67,145,92,39,637,-84,67,92,125,40,782,-20,83,93,145,41,935,-25,62,93,169,39,977,-26,71,93,165,41,992,-31,79,93,171,50,1090,-294,98,125,165" + }, + { + "k": "4400f8", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AUA33YZ", + "registration": "OE-IQF", + "type": "E190", + "squawk": "3405" + }, + "p": "1112,-4650,514666,0,270,8,50,-62,0,0,270,10,604,-143,-18,0,90,15,42,354,1,20,90,78,40,447,-26,44,118,88,31,395,-136,22,117,116,41,706,-165,40,109,139,39,801,-117,44,102,144,40,800,-111,33,103,145,40,807,-113,39,103,144,40,811,-91,62,98,146,40,907,-76,39,98,169,40,991,-85,56,98,178" + }, + { + "k": "40653d", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY178J", + "registration": "G-EZGN", + "type": "A319", + "squawk": "6016" + }, + "p": "1122,-1878,511512,0,259,8,42,-61,-8,0,259,11,71,-116,-16,0,259,11,401,-18,-30,0,76,38,40,367,51,37,77,70,41,431,56,38,78,86,50,711,133,45,54,124,41,596,303,44,51,134,40,520,354,40,24,140,31,246,364,32,23,143,41,-45,517,41,345,146,39,-240,516,39,343,160,40,-258,587,51,346,175,40,-250,617,60,346,180,40,-262,630,55,345,185,40,-329,651,53,333,190,40,-551,601,47,330,197" + }, + { + "k": "a899a2", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL31", + "registration": "N653UA", + "type": "B763", + "squawk": "6655" + }, + "p": "1125,55662,522988,1023,301,243,131,-4009,1483,-2,301,243,120,-3683,1344,-1,301,243,120,-3703,1331,0,300,243,121,-3728,1321,-1,300,242,120,-3547,1440,0,327,248,142,-1090,3134,-1,350,253,121,-754,2693,0,351,252" + }, + { + "k": "4caf0b", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EAI17W", + "registration": "EI-HPK", + "type": "AT76", + "squawk": "1450" + }, + "p": "1140,-22767,533561,0,228,10,44,-47,-29,0,225,10,40,-58,-29,0,228,13,32,-41,-23,0,231,10,80,18,-13,0,53,32,40,266,129,31,51,61,40,308,147,25,51,75,40,272,241,14,351,92,40,-412,197,27,295,92,41,-510,126,29,284,92,39,-541,77,29,283,93,41,-552,91,28,290,94,39,-523,115,26,290,94,40,-534,119,23,290,96,41,-559,123,23,290,99" + }, + { + "k": "485252", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "JB" }, + "p": "1145,47447,523196,0,59,8,107,24,24,0,183,8" + }, + { + "k": "486741", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM41H", + "registration": "PH-AXC", + "type": "A21N", + "squawk": "1000" + }, + "p": "1145,47764,523121,0,3,9,371,35,58,0,183,38,40,-22,-248,32,182,75,40,104,-281,46,166,88,40,135,-368,37,167,117,41,32,-435,65,184,123,40,-68,-453,71,186,127,50,-102,-573,78,193,132,41,-303,-454,63,202,138,40,-305,-483,36,201,154,31,-267,-416,16,202,170,40,-394,-605,29,202,184,40,-402,-621,47,202,188,40,-411,-638,44,202,193,120,-1262,-1982,118,202,204" + }, + { + "k": "486840", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "TRA36J", + "registration": "PH-YHS", + "type": "A21N", + "squawk": "2127" + }, + "p": "1145,47766,523139,0,3,8,211,35,67,0,183,8,40,-20,-200,13,184,80,40,37,-278,56,169,84,41,128,-338,39,165,108,39,121,-399,53,183,118,40,-65,-426,63,186,123,41,-206,-435,66,201,126,39,-269,-432,54,201,133,40,-283,-467,38,200,148,40,-308,-519,51,200,153,52,-409,-672,60,201,162,40,-337,-549,56,201,162,40,-338,-556,42,201,167,131,-1173,-1901,130,203,178,121,-1247,-1836,86,203,193" + }, + { + "k": "4aca4a", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "NSZ2046", + "registration": "SE-RRJ", + "type": "B738", + "squawk": "1000" + }, + "p": "1145,55974,516734,1087,212,214,131,-2151,-2130,0,212,213,121,-1950,-1952,0,212,213,122,-1953,-1973,0,212,212,137,-2180,-2233,0,212,213,132,-2056,-2121,-25,212,206,131,-1917,-2002,-114,211,191,120,-1637,-1725,-104,211,182" + }, + { + "k": "4cac86", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR93SK", + "registration": "EI-HMZ", + "type": "B38M", + "squawk": "6223" + }, + "p": "1165,-25613,529254,506,128,181,71,1489,-713,-67,129,177,40,807,-391,-38,128,174,40,758,-415,-34,143,171,40,607,-486,-23,143,166,40,576,-460,-21,143,159,41,559,-452,-22,143,154,40,543,-438,-25,144,151,40,502,-434,-21,149,146,39,424,-432,-13,149,137,40,400,-407,-8,149,129,40,387,-398,-21,149,130,40,395,-410,-29,150,133,41,390,-408,-17,150,124,50,420,-455,-21,150,108,40,434,-212,-14,82,94,41,489,135,-12,63,89,31,165,208,-13,355,90,40,-41,328,-19,353,91,40,-248,295,-18,326,95,40,-309,278,-19,326,90,40,-279,249,-18,326,80,36,-231,208,-15,326,78,48,-181,163,-18,325,10" + }, + { + "k": "c01754", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ACA853", + "registration": "C-FIVR", + "type": "B77W", + "squawk": "7631" + }, + "p": "1165,-4784,514648,8,90,45,71,875,81,67,49,96,40,444,224,36,51,107,40,550,272,24,58,131,40,726,175,30,70,139,40,618,300,10,22,142,40,-82,499,11,345,143,41,-214,506,27,345,145,39,-220,503,55,344,148,40,-232,524,42,345,160,40,-264,599,26,345,182,40,-342,654,40,340,197,40,-416,675,57,333,203,41,-574,654,55,332,209,50,-735,850,64,332,215,132,-2010,2331,143,332,232,121,-1915,2304,109,333,245,121,-2108,2413,59,327,251" + }, + { + "k": "44ccc4", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BEL1CP", + "registration": "OO-SFD", + "type": "A333", + "squawk": "4423" + }, + "p": "1165,44931,509033,0,65,8,736,77,67,0,191,8,38,-65,-159,11,195,83,40,-118,-283,62,208,72,41,-368,-103,28,275,91,39,-496,271,4,325,139,40,-458,445,31,326,153,40,-535,420,44,314,147,40,-668,298,38,289,142" + }, + { + "k": "44034b", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EJU62MY", + "registration": "OE-LQR", + "type": "A319", + "squawk": "1000" + }, + "p": "1165,49585,502006,962,339,244,131,-1594,2679,-58,340,236,120,-1407,2345,-91,339,228,120,-1856,2030,-90,317,213,120,-2910,1341,-4,305,213,132,-2844,1814,-16,327,218,111,85,2109,-122,16,218,40,341,738,-43,16,212,40,336,728,-49,16,208,41,335,720,-47,16,205,39,324,686,-40,16,198,40,322,675,-48,16,196,40,320,668,-39,16,193,40,368,650,-24,34,186" + }, + { + "k": "4cafb5", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR7CQ", + "registration": "EI-GSI", + "type": "B738", + "squawk": "0605" + }, + "p": "1165,55727,517863,1023,278,224,131,-4220,352,0,277,224,120,-3859,307,-1,277,225,120,-3873,298,-1,277,225,120,-3894,279,0,276,225,132,-4330,303,-62,277,227,131,-4242,-31,-64,267,222,120,-3907,-129,-58,267,224,120,-3894,-122,-120,268,223" + }, + { + "k": "407666", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY94ZH", + "registration": "G-UZMC", + "type": "A21N", + "squawk": "2057" + }, + "p": "1166,-1987,511488,0,256,8,680,-11,-19,11,77,56,33,359,49,23,76,83,40,505,72,51,79,97,40,545,-69,45,137,108,40,158,-383,31,170,112,40,166,-398,20,162,123,40,235,-477,7,164,144,40,231,-501,15,164,147,40,242,-515,18,163,151" + }, + { + "k": "a89fe0", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "LXJ655", + "registration": "N655FX", + "type": "GLF6", + "squawk": "7622" + }, + "p": "1184,-17640,524683,45,325,96,52,-361,445,102,8,119,40,477,270,26,86,120,40,674,-97,67,117,120,40,529,-286,98,133,122,40,424,-367,77,161,136,40,206,-552,24,168,179,41,247,-664,3,166,190,39,258,-661,0,167,190,40,257,-661,-21,167,189,40,251,-649,-30,167,187,41,252,-657,-31,167,183,39,242,-632,-30,167,180,41,243,-636,-9,167,182,50,305,-800,0,167,182,41,243,-644,0,167,182,40,244,-642,0,167,184,31,188,-501,0,167,184,40,241,-640,0,167,172,40,283,-550,-8,155,151,41,390,-466,-25,152,144,39,383,-451,-28,152,142,40,384,-455,-37,152,145,40,390,-463,-41,152,147,40,387,-459,-32,152,138" + }, + { + "k": "44cdc5", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BEL3WF", + "registration": "OO-SNE", + "type": "A320", + "squawk": "0105" + }, + "p": "1184,44895,509069,0,68,8,935,93,-17,8,194,53,40,-76,-246,41,171,67" + }, + { + "k": "06a390", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "QTR8251", + "registration": "A7-BTA", + "type": "B77L", + "squawk": "1000" + }, + "p": "1184,55749,525095,236,284,146,52,-1084,88,-32,276,142,40,-827,57,-19,276,139,40,-816,53,-14,276,139,40,-810,54,-12,276,138,40,-813,53,-15,276,137,40,-783,51,-13,276,130,41,-747,48,-12,276,120,39,-666,42,-11,276,115,41,-649,10,-11,266,103,39,-502,-96,-7,228,83,40,-356,-200,-6,225,81,40,-140,-260,-6,183,77,41,-23,-256,-7,184,66,51,-29,-303,-5,184,66,40,-22,-238,-8,184,66,40,-23,-241,-14,183,69,31,-16,-186,-11,184,65,41,-24,-245,-15,183,67,39,-22,-250,-13,183,72,40,-13,-144,-5,183,18,102,23,-68,0,183,8,80,36,-38,0,132,8" + }, + { + "k": "40775c", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RUK768", + "registration": "G-RUKA", + "type": "B738", + "squawk": "1426" + }, + "p": "1236,-25535,532257,119,142,101,40,527,-50,-16,52,103,40,276,328,-21,39,99,40,452,219,-17,51,95,41,443,212,-19,51,91,39,389,189,-19,51,80,41,367,177,-15,51,81,39,221,111,-12,51,20,40,36,36,0,51,10,40,60,29,0,51,15,40,61,30,0,51,13" + }, + { + "k": "4078de", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW8K", + "registration": "G-ZBLB", + "type": "B78X", + "squawk": "1257" + }, + "p": "1236,-25333,514206,639,97,192,80,2167,-165,-39,97,188,40,1067,-83,-19,97,185,40,1028,-82,-23,97,179,40,1022,-83,-26,97,178,40,1011,-81,-25,97,175,40,990,-80,-27,97,172,40,972,-80,-26,97,172,40,979,-81,-28,98,168,40,927,-75,-14,97,156,40,860,-65,0,97,151,41,872,-66,0,97,152,50,1101,-85,0,97,152,41,871,-51,0,92,150,40,860,-8,0,91,151,31,671,-6,0,91,149,40,868,-9,0,91,149,40,860,-9,-8,91,150,40,844,-9,-12,91,147,40,831,-10,-11,91,146,40,853,-11,-5,91,147,40,818,-11,-12,92,141,40,803,-17,-13,93,140" + }, + { + "k": "407798", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW22E", + "registration": "G-XWBB", + "type": "A35K", + "squawk": "5170" + }, + "p": "1236,-24845,507094,809,86,208,120,3498,162,-74,86,201,121,3338,146,-63,86,193,121,3275,131,-72,87,189,38,1014,39,-33,87,189,40,1052,51,-34,78,186,41,734,411,-32,30,171,50,660,644,-29,34,163,41,507,483,0,33,159,40,473,454,0,33,141,31,327,315,0,33,136,40,545,364,-3,49,139,40,589,327,-21,49,137,40,582,326,-6,48,137,40,587,330,-9,49,135,40,572,317,-19,49,133,40,568,317,-3,48,133,40,560,313,0,49,130" + }, + { + "k": "4080c8", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "GTESG", + "registration": "G-TESG", + "type": "DA42", + "squawk": "5413" + }, + "p": "1234,-9655,533152,71,0,0,40,-258,119,27,311,55,40,-205,155,26,326,28,41,-219,169,23,323,32,40,-270,186,7,320,75,39,-243,195,33,324,64,42,-179,171,26,329,26,39,-186,164,19,326,59,39,-193,169,23,325,59,41,-213,175,20,324,30,40,-211,174,20,323,61,40,-204,197,10,329,72,41,-254,260,1,331,46,50,-373,321,0,324,85,40,-266,256,-1,329,44" + }, + { + "k": "841fdc", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "JAL42", + "registration": "JA08WJ", + "type": "A35K", + "squawk": "4726" + }, + "p": "1233,-4829,514648,0,90,33,43,463,-1,20,91,95,40,523,-76,43,123,107,40,578,-226,22,112,129,41,744,-123,42,101,137,39,791,-99,42,102,142,41,808,-109,51,102,142,39,790,-108,48,102,143,40,818,-110,33,99,153,40,923,-62,15,95,173,40,1035,-64,22,96,187,40,1083,-69,43,96,190,41,1111,-67,34,95,196,50,1417,-111,47,99,201,41,1164,-112,37,99,204,40,1164,-105,37,98,207,31,936,-80,23,98,211,40,1205,-101,32,98,215,120,3758,-323,81,98,227,120,3910,-342,74,98,235" + }, + { + "k": "4ca4ef", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR772F", + "registration": "EI-DPK", + "type": "B738", + "squawk": "5365" + }, + "p": "1236,30752,502761,899,29,250,121,1957,2248,0,29,231,120,1891,2141,-78,30,222,121,1856,2044,-128,29,212,119,1623,1891,-94,28,194,50,643,767,-43,28,190,41,559,585,-21,42,189,40,863,415,-8,55,192,31,699,310,-8,54,191,40,893,404,-11,54,190,40,880,396,-9,54,189,40,882,394,-11,55,189,40,879,391,-33,55,184,40,846,372,-34,55,181,40,844,373,-35,55,177,40,833,366,-35,55,175" + }, + { + "k": "44ccc6", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BEL1NA", + "registration": "OO-SFF", + "type": "A333", + "squawk": "0104" + }, + "p": "1237,45007,509096,0,194,32,39,-94,-227,24,194,80,40,58,-248,52,143,71,40,264,-205,22,140,73,40,272,-220,12,143,85,40,325,-275,10,143,105,41,409,-326,22,140,122,39,464,-335,38,138,126,40,533,-312,36,113,142,40,788,-164,37,103,150,41,844,-112,38,103,153,39,675,-292,21,138,151,41,619,-425,14,136,168,50,889,-576,17,135,187,41,761,-490,32,135,191,40,760,-494,32,136,195,31,598,-391,24,136,198,40,797,-521,29,136,202,40,799,-525,26,136,205,40,721,-567,25,154,203" + }, + { + "k": "4072c7", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY5606", + "registration": "G-UZHA", + "type": "A20N", + "squawk": "7334" + }, + "p": "1234,47648,522997,5,237,64,42,-427,-163,44,238,88,40,-436,-221,51,224,103,40,-535,-241,52,251,128,40,-773,16,66,298,149,40,-532,453,67,330,161,41,-533,535,47,326,178,39,-785,401,62,307,180,40,-856,394,60,307,185,40,-877,403,60,307,188,40,-910,414,51,307,194,131,-3148,1427,149,307,212,132,-3355,1505,60,306,219,121,-3252,1437,105,306,225,121,-3482,1047,80,287,225" + }, + { + "k": "485a35", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM1365", + "registration": "PH-BCL", + "type": "B738", + "squawk": "1000" + }, + "p": "1225,47789,523076,5,183,73,31,-19,-214,37,182,76,40,240,-261,31,124,99,40,670,-52,41,92,130,40,809,-16,65,92,141,40,832,-24,72,93,145,40,869,-27,68,93,148,41,888,-26,60,93,155,39,827,-155,57,125,149,40,748,-331,44,125,162,41,798,-347,60,125,165,39,782,-340,52,125,170" + }, + { + "k": "4bb070", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "THY1MJ", + "registration": "TC-LCP", + "type": "B38M", + "squawk": "3121" + }, + "p": "1236,55293,514683,1151,290,227,120,-3666,813,-1,289,225,121,-3678,800,-1,289,225,121,-3735,798,-1,289,224,120,-3664,767,-33,288,223,130,-4033,828,-98,288,226,131,-4078,820,-160,287,216,120,-3597,-35,-91,264,203" + }, + { + "k": "c051e6", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ACA841", + "registration": "C-GFAJ", + "type": "A333", + "squawk": "0125" + }, + "p": "1236,55716,516123,943,321,256,120,-2790,2113,28,320,255,121,-2822,2114,51,320,254,121,-2859,2113,0,320,251,120,-2823,2059,-1,320,251,130,-3116,2228,-1,318,251,131,-2376,2602,0,337,256,120,-1794,2546,0,337,257" + }, + { + "k": "4cada4", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR9428", + "registration": "EI-IFV", + "type": "B38M", + "squawk": "5266" + }, + "p": "1256,-25708,515570,1113,99,252,121,4337,-414,0,99,254,121,3730,-1301,0,132,249,120,3190,-1782,1,132,249,120,3101,-1817,0,133,248,141,3618,-2142,0,133,247,120,3052,-1835,1,134,247,120,3030,-1843,1,134,248" + }, + { + "k": "484456", + "m": { + "kind": "helicopter", + "layer": "flights", + "callsign": "PH-SHK", + "registration": "PH-SHK", + "type": "A139", + "squawk": "4333", + "helicopter": true + }, + "p": "1256,47799,529228,5,216,4,40,-121,-103,17,216,45,40,-308,22,19,304,68,40,-354,109,20,296,66,40,-171,241,5,349,82,40,-98,311,0,349,90,41,-101,322,0,349,91,39,-102,323,0,349,93,39,-102,318,0,349,92,37,-94,299,0,349,92,44,-114,354,0,349,92,39,-109,319,3,348,92,33,-92,271,-1,349,93,33,-92,268,1,349,93,44,-123,361,-1,348,92,31,-86,251,1,348,92,98,-271,791,0,348,92,68,-186,541,-1,350,89,128,-351,1010,7,0,0" + }, + { + "k": "502d5a", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BEL4QA", + "registration": "YL-ABI", + "type": "BCS3", + "squawk": "1000" + }, + "p": "1256,55845,508003,492,285,190,40,-1029,176,-45,285,185,40,-994,169,-44,285,182,40,-973,166,-29,285,172,40,-903,152,-20,285,159,40,-676,363,-26,326,163,40,-503,488,-33,327,162,40,-487,483,-22,328,155,40,-435,452,-19,329,142,41,-411,433,-22,329,138,40,-408,416,-26,328,137,40,-476,354,-19,312,122,40,-512,295,-28,312,119,30,-388,197,-18,293,106,41,-545,24,-14,244,88,39,-407,-140,-10,241,75,32,-299,-102,-3,241,76,40,-289,-182,-5,199,71,40,-130,-242,-3,196,71,40,-98,-248,-2,193,72,40,-90,-251,-3,194,72,40,-103,-250,-1,195,71,40,-109,-251,-4,195,72,40,-103,-249,-14,194,71" + }, + { + "k": "4d226c", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR8MR", + "registration": "9H-QAZ", + "type": "B738", + "squawk": "1000" + }, + "p": "1256,55863,507364,384,249,164,40,-873,-206,-22,249,165,40,-866,-208,-43,250,162,40,-811,-193,-13,249,145,40,-730,-172,-15,251,133,40,-696,-149,-21,251,129,40,-680,-149,-22,250,124,40,-655,-145,-20,251,122,40,-650,-145,-18,250,120,41,-631,-142,-24,251,115,39,-592,-131,-19,251,107,40,-557,-113,-11,258,99,41,-509,-112,-10,247,89,30,-327,-101,-13,243,83,41,-429,-130,-20,245,85,40,-435,-123,-18,246,82,31,-321,-94,-13,246,82,40,-439,-123,-18,246,81,39,-364,-109,-16,246,73" + }, + { + "k": "4d2134", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VJT437", + "registration": "9H-VCN", + "type": "CL35", + "squawk": "7713" + }, + "p": "1276,-7774,512754,12,62,78,40,414,143,54,61,86,41,453,139,19,78,88,39,403,-185,12,151,106,40,108,-382,-1,209,118,41,-558,-235,15,242,117,39,-578,-207,20,236,117,40,-551,-241,28,235,118,40,-615,-269,45,235,145,40,-268,-482,36,162,156,40,481,-477,47,145,159,41,698,-383,44,126,171,50,1024,-458,67,125,169,41,810,-367,54,125,176,40,812,-360,53,125,176,31,648,-282,41,124,180,120,2705,-1155,167,123,202,120,3094,-1323,35,124,220" + }, + { + "k": "406091", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW874", + "registration": "G-EUYE", + "type": "A320", + "squawk": "3445" + }, + "p": "1275,-4748,514666,0,270,8,742,-59,-18,0,89,48,42,453,-3,40,91,77,40,454,-88,31,122,97,40,584,-175,20,108,129,40,740,-128,29,102,138" + }, + { + "k": "484201", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "C2", + "registration": "GND", + "type": "GND" + }, + "p": "1276,47746,523065,0,93,9,36,9,38,0,3,12,37,-31,44,0,323,14,91,-180,5,0,338,12,33,-62,-2,0,239,10,49,-52,-10,0,188,16,275,33,-1,0,23,14,30,67,14,0,115,15,49,162,3,0,84,20,43,65,-30,0,172,15,40,-4,-52,0,183,15" + }, + { + "k": "a52736", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DAL136", + "registration": "N431DX", + "type": "A339", + "squawk": "6334" + }, + "p": "1296,-25695,533705,1110,97,249,120,4428,-408,0,99,250,120,4437,-428,0,99,249,120,4406,-442,0,100,247,132,4795,-500,0,100,249,131,4786,-519,0,100,247,120,4354,-491,0,101,248,120,4345,-508,0,101,248" + }, + { + "k": "43bff5", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "WORKS 25" }, + "p": "1295,-1891,511561,0,56,8,63,65,13,0,352,8,53,-14,41,0,346,8,142,117,-6,0,141,8" + }, + { + "k": "ab8748", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL134", + "registration": "N842AA", + "type": "B789", + "squawk": "6322" + }, + "p": "1316,-25708,530737,1088,134,232,120,2114,-2008,-84,154,216,120,1610,-2027,-102,155,201,120,1543,-1881,-116,148,188,132,2726,-1450,-93,128,185,131,2622,-1382,-88,134,174,40,728,-433,-30,134,171,41,715,-426,-28,134,170,39,709,-425,-29,134,172,40,706,-423,-28,134,165,40,664,-397,-27,134,153,40,605,-385,-24,138,149" + }, + { + "k": "ac3448", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL772", + "registration": "N886BR", + "type": "B788", + "squawk": "5245" + }, + "p": "1316,-25474,517786,1239,126,269,120,3768,-1703,1,126,268,120,3529,-1855,0,133,267,120,3378,-1948,0,133,268,132,3684,-2155,1,133,269,131,3650,-2165,0,133,267,120,3294,-1984,0,134,267,120,3265,-1991,1,134,269" + }, + { + "k": "ab9387", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DAL141", + "registration": "N845MH", + "type": "B764", + "squawk": "4424" + }, + "p": "1316,45011,509108,0,194,20,40,-88,-218,18,194,86,40,-169,-259,60,231,85,40,-510,53,38,313,120,41,-461,386,29,322,142,40,-515,410,40,319,152,39,-623,406,32,315,170,40,-756,455,21,308,192,40,-970,367,30,290,202,40,-1106,215,51,288,206,41,-1141,250,46,290,213,50,-1460,343,62,291,218,41,-1193,281,44,290,223,40,-1228,255,43,288,226,31,-955,193,29,288,230,40,-1284,262,38,288,234,120,-3794,1002,104,293,244,120,-3602,1441,102,305,248" + }, + { + "k": "48104e", + "m": { + "kind": "military", + "layer": "military", + "callsign": "NEPTN47", + "registration": "N-317", + "type": "NH90", + "squawk": "3601", + "helicopter": true, + "military": true + }, + "p": "1316,47790,529220,16,214,37,40,-103,-114,21,157,32,40,187,-76,6,109,42,40,230,119,0,31,60,41,103,183,-7,335,58,39,-185,83,-12,236,29,40,-107,-83,-4,216,31,40,-80,-72,-5,215,13,129,-17,-14,-1,216,20,39,-103,-95,11,213,39,44,94,-97,18,118,42,40,242,60,0,34,63,31,138,133,-1,29,52,40,-102,157,-12,286,48,40,-173,-84,-5,213,38,40,-92,-84,-5,212,20,39,-28,-29,-5,284,2,41,-1,2,0,297,1,38,-1,-1,-1,270,1,30,-1,0,1,90,1,31,8,-9,-2,297,1" + }, + { + "k": "485ecc", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM758", + "registration": "PH-BVW", + "type": "B77W", + "squawk": "6253" + }, + "p": "1336,-25364,513729,1081,74,261,120,4342,774,0,74,263,120,4378,725,0,75,262,120,4369,700,0,76,260,132,4764,742,0,76,258,131,4756,719,0,77,259,120,4356,640,0,77,257" + }, + { + "k": "39bdab", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AFR79CJ", + "registration": "F-HPNL", + "type": "BCS3", + "squawk": "1000" + }, + "p": "1296,-4401,514611,0,320,185,736,0,0,0,266,127" + }, + { + "k": "406755", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY74VH", + "registration": "G-EZWD", + "type": "A320", + "squawk": "7553" + }, + "p": "1337,21231,502317,769,339,226,121,-2157,1881,107,318,215,120,-2539,1771,57,317,226,120,-2577,1778,79,317,222,130,-2762,1886,40,317,226,131,-2921,1921,0,312,223,120,-2820,1621,-3,312,224" + }, + { + "k": "48c135", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR94CC", + "registration": "SP-RKZ", + "type": "B738", + "squawk": "2043" + }, + "p": "1337,-22758,533567,0,231,8,37,-37,-23,0,222,10,42,-49,-27,0,231,12,121,-7,-28,0,53,12,39,257,124,17,52,84,41,427,199,45,51,98,39,519,248,36,52,117,40,574,270,26,52,132,41,662,310,53,52,139,30,504,237,46,52,142,41,746,264,56,83,145,40,897,-23,38,93,160,31,764,-96,32,107,169,40,992,-176,61,107,172,40,1011,-179,56,107,177,40,1036,-186,54,107,183,40,1074,-193,47,107,190,120,3399,-619,149,107,197" + }, + { + "k": "c06a88", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "TSC122", + "registration": "C-GOIX", + "type": "A21N", + "squawk": "5160" + }, + "p": "1357,-25620,506769,825,81,227,120,3724,183,-72,82,216,121,3610,307,-61,82,208,120,3453,285,-72,83,202,49,1378,110,-48,83,198,41,1117,88,-39,83,194,40,1080,85,-38,83,190,31,823,63,-29,83,188,40,1045,80,-36,83,183,40,1023,78,-34,83,178,40,956,77,-19,80,165,40,908,107,-28,80,160,40,878,103,-28,80,154,40,857,100,-25,79,154,40,860,98,-28,80,153" + }, + { + "k": "4076cd", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW670", + "registration": "G-TTNJ", + "type": "A20N", + "squawk": "3441" + }, + "p": "1356,-4856,514648,0,90,15,40,338,-1,25,91,72,40,392,-12,44,112,76,40,460,-161,38,117,105,40,663,-140,42,108,137,40,794,-119,81,102,141,40,799,-112,74,103,148,41,929,-133,38,103,175,39,975,-139,47,103,177,41,1031,-149,46,103,185,50,1320,-193,57,104,190,41,1094,-159,61,102,195,131,3768,-541,153,103,217,120,3719,-567,120,102,229,120,3908,-500,85,104,238" + }, + { + "k": "3cc82c", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VJH357", + "registration": "D-CDCM", + "type": "C56X", + "squawk": "6266" + }, + "p": "1356,47664,523003,5,238,53,40,-404,-143,51,240,81,40,-375,-172,65,222,84,41,-412,-237,55,238,104,39,-603,-133,53,263,123,40,-665,260,40,329,156,40,-562,448,43,309,160,40,-764,367,46,308,166,40,-781,372,49,308,171,41,-816,387,59,308,175,50,-1041,491,70,308,182,41,-884,416,54,308,188,131,-3074,1436,125,307,220,120,-3340,1417,51,300,222,120,-3482,1162,71,298,234" + }, + { + "k": "485b42", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM615", + "registration": "PH-BKA", + "type": "B78X", + "squawk": "2135" + }, + "p": "1356,47769,523176,0,25,8,300,32,24,0,183,15,40,-20,-204,8,184,84,41,34,-295,45,161,86,30,83,-250,26,185,97,41,-264,-309,52,229,101,40,-634,-102,28,280,133,31,-608,86,39,282,139,40,-808,143,48,302,151,40,-641,401,52,322,160,40,-593,471,40,323,170,40,-602,497,46,323,174,40,-613,505,44,323,178,40,-655,537,22,323,194,40,-719,582,20,323,210" + }, + { + "k": "4cada8", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ITY120", + "registration": "EI-INC", + "type": "A20N", + "squawk": "1000" + }, + "p": "1376,55988,525041,227,291,148,40,-819,105,-19,276,143,40,-834,55,-8,277,142,41,-834,58,-10,276,141,39,-821,55,-11,276,141,40,-827,54,-10,276,140,41,-822,54,-11,277,136,39,-757,51,-10,276,127,40,-723,47,-22,276,121,41,-710,44,-28,275,119,31,-536,33,-2,276,120,40,-588,-113,0,216,102,40,-140,-337,0,185,98,31,-32,-270,-1,184,91,40,-28,-309,-15,183,82,40,-26,-272,-16,183,68,40,-21,-236,-14,183,69,40,-22,-236,-14,183,61,40,-21,-222,-13,183,65,40,-21,-233,-13,184,66,40,-14,-194,-10,183,24" + }, + { + "k": "4842a0", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "TD1" }, + "p": "1396,47754,522986,0,183,12,60,-9,-68,0,183,13,38,-4,-41,0,183,11,64,59,10,0,3,14,262,26,79,0,42,10,54,29,42,0,312,9,42,10,16,0,34,8,86,73,50,0,39,10,157,48,35,0,65,8" + }, + { + "k": "a8ac35", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL12", + "registration": "N658UA", + "type": "B763", + "squawk": "3056" + }, + "p": "1396,55935,520577,959,309,251,121,-3438,1706,0,309,252,121,-3499,1710,-1,309,251,129,-3731,1799,0,308,251,132,-3831,1857,-2,315,254,121,-2315,2365,0,332,255,120,-2112,2429,0,332,255" + }, + { + "k": "44ce72", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BEL1GH", + "registration": "OO-SSR", + "type": "A319", + "squawk": "1000" + }, + "p": "1397,55994,507999,498,285,161,39,-870,147,-30,285,158,41,-871,144,-31,284,155,39,-834,135,-29,284,153,40,-750,284,-30,322,164,40,-545,467,-24,324,160,40,-531,453,-20,324,154,41,-506,441,-19,325,146,40,-462,414,-15,325,136,50,-551,501,-36,325,134,41,-442,400,-30,325,133,40,-434,395,-26,326,132,31,-327,301,-20,325,132,41,-433,400,-23,326,131,39,-480,298,-16,303,111,40,-525,216,-16,298,106,40,-474,-63,-6,242,84,40,-366,-176,0,216,78,40,-182,-254,0,198,78,41,-119,-271,0,194,78" + }, + { + "k": "4076cc", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW721", + "registration": "G-TTNI", + "type": "A20N", + "squawk": "6656" + }, + "p": "1418,55949,508519,844,291,228,120,-3598,881,-3,291,227,120,-3609,867,0,291,225,130,-3767,1055,1,313,229,132,-3048,1890,-1,308,225,121,-3620,750,-2,285,219,120,-3692,618,1,285,224" + }, + { + "k": "4cae62", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR9424", + "registration": "EI-IJM", + "type": "B38M", + "squawk": "2237" + }, + "p": "1436,-25856,527125,1111,143,241,120,2559,-2072,0,143,240,120,2514,-2070,1,144,240,132,2727,-2278,0,144,239,131,2795,-2235,1,139,240,120,2755,-1926,0,138,239,120,2746,-1925,0,139,239" + }, + { + "k": "43c8c6", + "m": { + "kind": "military", + "layer": "military", + "callsign": "PRF57", + "registration": "ZM319", + "type": "G12T", + "squawk": "7010", + "military": true + }, + "p": "1456,-4748,530312,33,82,54,59,-92,-80,-7,164,61,38,-321,-44,3,271,61,31,-205,61,-2,13,52,31,180,28,-10,82,43,61,400,32,8,82,56,41,311,-15,17,162,55,47,-382,-102,-4,262,70,44,-399,-32,1,264,57,40,-186,82,-11,36,48,31,185,29,-8,83,40,80,535,43,9,82,60,40,58,-107,13,250,69,40,-392,-38,1,261,63,39,-323,-13,-4,296,51,41,55,110,-18,84,42" + }, + { + "k": "06a2b8", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "QTR120", + "registration": "A7-BET", + "type": "B77W", + "squawk": "2733" + }, + "p": "1442,-4710,514632,0,270,8,114,-106,-7,0,270,8" + }, + { + "k": "3430cd", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VOE8UQ", + "registration": "EC-KMI", + "type": "A320", + "squawk": "1000" + }, + "p": "1456,31370,505698,44,87,77,40,255,-133,52,148,54,40,189,-188,27,148,75,40,282,-278,22,147,108,41,170,-389,41,179,118,39,13,-435,58,179,125,40,15,-455,58,179,129,41,57,-501,43,173,144,30,74,-396,38,171,150,41,235,-545,43,163,158" + }, + { + "k": "4caa61", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR5533", + "registration": "EI-EXF", + "type": "B738", + "squawk": "1000" + }, + "p": "1456,55768,505349,389,270,143,40,-804,-9,-33,269,142,40,-788,-14,-28,268,138,40,-767,-15,-28,269,134,41,-743,-7,-23,269,130,39,-726,-7,-29,268,128,40,-716,-20,-19,267,127,41,-718,-13,-22,269,125,30,-530,-11,-17,267,123,41,-710,-21,-20,267,121,40,-652,-15,-15,268,112,31,-465,-13,-9,268,104,40,-579,-11,-19,268,98,40,-534,-14,-17,267,91,40,-490,-26,-13,256,81,41,-425,-93,-15,248,79,39,-418,-119,-16,247,84,40,-390,-115,-19,245,71" + }, + { + "k": "48468b", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "PHJBH", + "registration": "PH-JBH", + "type": "C172", + "squawk": "7033" + }, + "p": "1456,55966,528326,107,270,27,39,-294,60,0,282,26,40,-288,72,-3,292,27,37,-293,91,0,299,31,43,-326,94,0,296,29,39,-300,86,0,295,29,41,-292,75,0,293,27,40,-255,91,0,299,26,31,-252,71,0,296,31,39,-288,84,0,295,30,40,-312,86,0,294,31,34,-286,76,0,292,33,36,-247,97,0,302,29,41,-275,81,0,296,26,40,-330,93,0,295,31,42,-310,84,-3,293,30,39,-247,103,3,304,27,35,-288,77,-6,294,29,44,-384,103,-13,292,32" + }, + { + "k": "401da9", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "GBGKS", + "registration": "G-BGKS", + "type": "P28A", + "squawk": "7000" + }, + "p": "1474,-25654,535959,67,133,25,41,215,-121,-3,130,25,39,218,-98,0,126,24,38,228,-82,0,119,24,42,282,-87,3,118,26,39,184,-110,0,135,24,43,118,-178,0,163,27,48,67,-201,3,174,25,43,16,-181,0,180,25,40,86,-171,0,163,25,52,219,-181,-9,130,24,35,212,121,-9,39,32,44,-27,232,-3,356,42,42,-113,129,0,330,26,38,-269,-126,3,236,30,39,-203,-73,-3,230,27" + }, + { + "k": "345101", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VLG6205", + "registration": "EC-MIR", + "type": "A319", + "squawk": "5226" + }, + "p": "1477,-2023,511483,0,256,9,349,-110,-17,0,214,8,112,44,-10,0,76,28,41,380,52,27,77,80,41,462,60,48,79,91,39,570,-9,36,122,116,40,264,-419,29,169,136,40,201,-479,55,163,143,40,238,-509,28,164,151" + }, + { + "k": "4247a5", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VPCVA", + "registration": "VP-CVA", + "type": "GLF6", + "squawk": "4041", + "ladd": true + }, + "p": "1477,18512,502137,1308,324,262,121,-2571,2350,0,325,262,120,-2554,2301,-1,325,263,130,-2804,2493,-1,324,263,132,-2889,2534,-1,324,265,121,-2685,2325,0,324,261" + }, + { + "k": "485814", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLC56H", + "registration": "PH-EXT", + "type": "E75L", + "squawk": "1000" + }, + "p": "1477,54555,502008,668,317,208,121,-2444,1639,54,316,210,120,-2485,1649,-1,316,216,130,-2720,1786,-1,316,214,131,-2800,1819,-1,316,216,120,-2593,1665,0,315,218" + }, + { + "k": "3c5db0", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM74A", + "registration": "D-AGMP", + "type": "E190", + "squawk": "0753" + }, + "p": "1477,55634,526687,277,258,139,39,-798,-101,-19,258,139,40,-802,-103,-20,258,139,40,-804,-103,-19,258,139,40,-801,-103,-22,258,138,40,-780,-101,-21,258,134,41,-785,-104,-21,258,133,50,-949,-124,-22,258,128,41,-723,-96,-14,258,119,40,-646,-77,-9,260,105,31,-448,-68,-9,233,96,40,-379,-257,-6,221,94,40,-139,-302,0,181,88,40,-31,-281,0,184,73,40,-29,-261,-13,184,74,40,-25,-260,-16,184,69,40,-22,-239,-14,183,65,40,-21,-230,-14,185,62" + }, + { + "k": "407fcd", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW7", + "registration": "G-XWBS", + "type": "A35K", + "squawk": "4622" + }, + "p": "1478,-4859,514648,0,90,11,37,281,1,8,90,86,41,535,-13,52,107,89,40,532,-166,12,113,115,40,672,-170,26,109,131,40,756,-106,37,102,139,41,795,-110,41,103,142,50,1021,-144,57,103,142,41,823,-29,43,85,144,40,838,-18,27,104,155,31,703,-123,9,106,170,40,993,-177,13,106,186,40,1066,-191,25,106,196,40,1087,-193,32,106,200,40,1105,-190,33,105,203,40,1151,-144,32,93,207,40,1201,63,20,83,216,40,1247,98,32,83,219" + }, + { + "k": "39bdb2", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AFR57FH", + "registration": "F-HPNS", + "type": "BCS3", + "squawk": "0664" + }, + "p": "1496,20886,502162,786,346,205,121,-1250,2023,92,319,200,120,-2327,1702,70,319,207,142,-2795,2020,60,319,215,120,-2444,1747,40,318,221,120,-2229,1882,50,329,219" + }, + { + "k": "407f66", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY95YJ", + "registration": "G-EJCI", + "type": "A320", + "squawk": "4725" + }, + "p": "1516,-1974,511499,0,259,9,40,-53,-7,0,259,9,37,-46,-6,0,259,10,426,57,-20,11,77,47,40,447,66,38,77,85,40,532,67,26,78,110,40,697,86,41,86,130,40,766,-10,46,92,136" + }, + { + "k": "3c6d43", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM90U", + "registration": "D-AKJC", + "type": "E190", + "squawk": "2003" + }, + "p": "1516,52,535873,1046,135,230,120,3288,-1487,0,119,231,131,3991,-1352,0,119,232,132,4092,-1236,1,114,233,121,3804,-1049,-31,115,233,121,3782,-1061,-30,115,228" + }, + { + "k": "407fff", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY42BT", + "registration": "G-UZLS", + "type": "A20N", + "squawk": "6260" + }, + "p": "1516,47588,523144,0,87,8,40,62,3,0,87,12,423,150,46,0,183,29,41,-16,-222,34,177,67,39,92,-259,46,168,85,40,127,-336,61,167,106,40,-151,-347,81,231,112,40,-745,-23,55,284,147" + }, + { + "k": "738059", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ELY312", + "registration": "4X-EKK", + "type": "B738", + "squawk": "4637" + }, + "p": "1536,-3582,518764,24,74,75,40,449,80,59,75,78,41,463,75,34,75,85,39,517,-17,22,126,105,40,328,-370,20,155,128,41,354,-454,20,149,148,30,549,-218,30,102,156,41,925,-2,54,89,159,40,935,11,54,89,162,31,762,12,18,89,176,40,1069,10,38,89,186,40,1086,-8,47,101,190,40,799,-467,36,147,197,40,717,-573,36,140,205,40,765,-570,46,140,207,40,763,-578,44,141,210" + }, + { + "k": "43bfdf", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "LEADER 6" }, + "p": "1520,-1764,511482,0,124,8,400,13,38,0,256,13,65,-64,-10,0,259,11" + }, + { + "k": "ab4464", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SLM993", + "registration": "N825KW", + "type": "B772", + "squawk": "2131" + }, + "p": "1536,47692,523148,0,87,8,343,99,-46,5,183,70,41,-7,-310,50,173,84,39,126,-293,39,165,91,40,149,-336,3,176,97,40,-382,-220,4,272,116,40,-728,95,32,284,134,40,-780,120,48,283,138,40,-798,45,44,257,135" + }, + { + "k": "406133", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY3431", + "registration": "G-EZFR", + "type": "A319", + "squawk": "0504" + }, + "p": "1557,-25714,530477,503,138,161,39,638,-435,58,142,170,40,632,-514,37,143,186,131,2277,-1807,176,143,200,132,2534,-1968,118,143,218,121,2598,-1797,108,134,226,121,2885,-1719,48,134,225" + }, + { + "k": "4d2130", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VJT946", + "registration": "9H-VJU", + "type": "GLEX", + "squawk": "4666" + }, + "p": "1556,-7924,512704,0,62,22,40,319,106,29,63,79,40,406,137,46,62,92,40,532,45,20,125,108,41,311,-341,1,167,111,50,-476,-375,13,242,117,41,-593,-201,27,237,115,40,-562,-245,21,235,133,31,-502,-220,39,235,142,40,-688,-296,57,237,147,40,-719,-293,54,237,152,40,-779,-320,23,237,175,40,-868,-359,42,237,184,40,-884,-357,53,243,183,40,-1005,-178,43,257,186,40,-1042,-154,48,257,187" + }, + { + "k": "44001f", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EJU8358", + "registration": "OE-ICN", + "type": "A320", + "squawk": "5751" + }, + "p": "1576,14479,502245,904,318,213,120,-2491,1736,-184,317,216,112,-2243,1552,-135,317,204,40,-773,529,-46,317,200,31,-587,402,-38,317,197,40,-811,488,-44,308,192,40,-819,414,-25,309,180,40,-777,397,-26,309,173,40,-747,379,-20,309,166,40,-724,366,-18,308,157,40,-665,326,-9,307,143,40,-629,301,-10,307,135" + }, + { + "k": "44812c", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "SKEY420" }, + "p": "1576,44819,509089,0,59,18,32,75,27,0,56,18" + }, + { + "k": "486740", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM35B", + "registration": "PH-AXB", + "type": "A21N", + "squawk": "7332" + }, + "p": "1576,47796,523146,0,183,23,41,-20,-229,21,182,78,39,88,-278,44,165,90,40,150,-336,56,168,100,41,-264,-313,57,244,115,30,-575,9,34,284,141,41,-832,128,66,283,147,40,-809,-98,54,245,144,31,-610,-162,44,248,149,40,-820,-200,57,248,152,40,-856,-213,37,248,167,40,-932,-235,45,248,176,40,-965,-243,49,248,181,120,-2985,-758,133,247,192" + }, + { + "k": "4aca6f", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SAS46R", + "registration": "SE-RSO", + "type": "E190", + "squawk": "3355" + }, + "p": "1596,31329,502210,799,32,221,121,2019,2008,89,28,223,131,1612,2459,32,41,238,131,2922,2169,54,40,245,120,2768,2035,32,41,254" + }, + { + "k": "4864ea", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM42N", + "registration": "PH-NXM", + "type": "E295", + "squawk": "3444" + }, + "p": "1617,398,535841,1173,136,235,120,2920,-1812,1,136,234,142,3669,-1960,0,111,238,121,4035,-930,0,111,240,121,4061,-939,-42,111,240" + }, + { + "k": "4846de", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "V5", + "registration": "GND", + "type": "GND" + }, + "p": "1613,47825,523220,0,3,25,41,-58,-10,0,219,23,148,-320,-30,0,264,16" + }, + { + "k": "408134", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW825", + "registration": "G-TTSA", + "type": "A20N", + "squawk": "1443" + }, + "p": "1636,-25469,531083,1017,118,239,131,3219,-1887,0,153,234,132,2858,-2138,-81,137,231,121,2527,-1903,-156,147,215,121,1868,-1774,-63,147,175" + }, + { + "k": "76cdb5", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SIA305", + "registration": "9V-SMU", + "type": "A359", + "squawk": "4727" + }, + "p": "1634,-4826,514648,0,90,31,42,416,1,21,90,86,41,461,-48,52,123,81,50,500,-223,36,115,88,41,517,-95,25,102,98,40,623,-81,14,102,122,31,569,-74,14,102,139,40,819,-113,23,103,144,40,802,-112,28,102,145,40,810,-112,35,103,146,40,816,-115,44,103,146,40,876,-123,17,103,165,40,980,-139,14,103,183,40,1050,-150,30,103,191" + }, + { + "k": "4cac55", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR51SF", + "registration": "EI-HGR", + "type": "B38M", + "squawk": "1000" + }, + "p": "1636,44129,504489,87,245,81,40,-469,-141,44,247,94,41,-552,-159,37,246,116,50,-821,-136,77,260,123,41,-713,-79,48,260,131,40,-771,-90,27,260,149,31,-603,-153,32,228,152,41,-547,-444,50,218,156,39,-562,-440,45,219,161,40,-577,-458,44,219,165" + }, + { + "k": "484205", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "KV3" }, + "p": "1629,47417,523181,0,183,9,45,5,-32,0,113,9,303,247,24,0,96,11,37,29,0,0,59,11" + }, + { + "k": "43c8e5", + "m": { + "kind": "military", + "layer": "military", + "callsign": "SYS137", + "registration": "ZM511", + "type": "EC35", + "squawk": "7421", + "helicopter": true, + "military": true + }, + "p": "1657,-25921,528128,24,84,47,39,277,18,4,84,47,41,223,-117,0,148,55,50,65,-240,0,180,56,41,-164,-155,2,244,57,48,-396,-6,-1,278,57" + }, + { + "k": "4cae9e", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR3JU", + "registration": "EI-IKX", + "type": "B38M", + "squawk": "1000" + }, + "p": "1656,27815,502145,1092,28,256,132,2195,2666,-133,27,253,131,2139,2616,-138,28,247,120,1897,2298,-120,27,236,100,1472,1863,-102,26,228,40,554,733,-40,25,221" + }, + { + "k": "4cac7f", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR83JF", + "registration": "EI-HMS", + "type": "B38M", + "squawk": "6620" + }, + "p": "1656,55982,515734,1087,285,230,132,-4188,717,-1,285,228,132,-4166,698,-1,285,228,121,-3905,638,0,284,230,120,-3880,618,-1,284,231" + }, + { + "k": "43c6cb", + "m": { + "kind": "military", + "layer": "military", + "callsign": "SEEKER61", + "registration": "ZK315", + "type": "EUFI", + "squawk": "3310", + "military": true + }, + "p": "1675,-447,531187,125,0,0,39,881,186,91,71,85,49,903,583,132,34,109,43,859,678,108,35,119,40,771,662,86,33,120,128,2099,2467,68,25,127" + }, + { + "k": "4d224e", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR3QH", + "registration": "9H-QDY", + "type": "B738", + "squawk": "5745" + }, + "p": "1676,12230,502143,1084,319,231,132,-2762,2041,-16,319,227,132,-2800,2040,-138,319,231,121,-2603,1882,-165,319,222,120,-2429,1729,-145,318,209" + }, + { + "k": "4ca856", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR4KR", + "registration": "EI-EMN", + "type": "B738", + "squawk": "1000" + }, + "p": "1676,29669,502054,886,27,239,132,2048,2436,-61,32,231,131,2243,2279,-75,32,231,120,2279,1915,-104,43,219,60,1292,839,-65,45,215,40,867,547,-41,45,213" + }, + { + "k": "44ccd1", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BEL5RH", + "registration": "OO-SFQ", + "type": "A333", + "squawk": "0107" + }, + "p": "1676,45007,509097,0,194,12,41,-76,-186,16,193,78,50,158,-285,65,143,68,41,233,-194,27,144,72,40,270,-259,6,145,103,31,291,-259,19,144,120,41,442,-345,50,139,125,39,462,-346,46,140,128,40,566,-314,43,130,138,40,422,-404,39,146,140,40,507,-441,18,143,161,40,546,-466,47,143,164,40,560,-479,30,143,173" + }, + { + "k": "4846dd", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "V4" }, + "p": "1674,47456,523131,0,96,10,134,9,14,0,264,11,40,-26,17,0,0,11,32,4,33,0,3,11,34,2,34,0,0,11,106,7,70,0,3,13" + }, + { + "k": "43c79d", + "m": { + "kind": "military", + "layer": "military", + "callsign": "SEEKER62", + "registration": "ZK375", + "type": "EUFI", + "squawk": "7002", + "military": true + }, + "p": "1680,-792,531124,104,0,0,35,1012,195,92,0,0,48,1075,571,128,34,116,42,799,635,129,33,111,42,844,695,63,33,121,32,576,601,78,29,128" + }, + { + "k": "406e65", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY527C", + "registration": "G-EZOT", + "type": "A320", + "squawk": "5013" + }, + "p": "1696,-25711,515115,167,120,143,41,681,-244,-14,120,131,30,407,-227,-14,156,126,41,93,-453,-26,178,122,40,-369,-257,-8,256,96,30,-400,-37,-14,266,89,41,-495,-16,-19,267,76" + }, + { + "k": "48548d", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLC76U", + "registration": "PH-EXM", + "type": "E75L", + "squawk": "7621" + }, + "p": "1696,-3576,535648,24,204,65,41,-246,-199,35,221,78,30,-270,-188,19,219,102,41,-408,-302,65,220,110,40,-429,-313,66,220,115,31,-350,-247,49,221,118,40,-31,-376,62,136,113,40,620,-153,66,107,112,41,671,-128,50,108,119,39,690,-135,49,108,125,40,779,-154,16,108,152,40,939,-190,22,109,173,40,985,-201,51,108,175" + }, + { + "k": "4ca738", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR6207", + "registration": "EI-EBO", + "type": "B738", + "squawk": "3413" + }, + "p": "1696,2509,518905,0,222,11,66,-90,-60,0,222,14,45,-56,-37,0,222,13,41,-49,-33,0,225,10,51,-38,14,0,312,8,59,102,82,15,43,70,41,330,222,44,44,86,40,495,53,39,117,102,40,603,-173,38,115,126,40,706,-182,36,100,137,40,787,-35,91,93,129" + }, + { + "k": "4ca625", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR393A", + "registration": "EI-DWY", + "type": "B738", + "squawk": "6767" + }, + "p": "1698,-8929,502025,845,8,223,130,582,2567,-67,8,219,131,554,2443,-147,8,201,40,159,703,-46,8,198,40,280,678,-22,22,191,40,407,633,0,22,191,41,415,641,0,22,193,39,413,637,0,22,193" + }, + { + "k": "40799b", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "CFE48D", + "registration": "G-LCAC", + "type": "E190", + "squawk": "6340" + }, + "p": "1717,-25951,532063,1110,105,241,131,4364,-1012,0,124,239,131,3905,-1586,0,124,241,120,3536,-1457,0,124,241" + }, + { + "k": "48c12f", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR5YZ", + "registration": "SP-RKP", + "type": "B738", + "squawk": "0511" + }, + "p": "1717,-25510,514605,382,87,198,50,1444,-19,86,91,198,41,1163,8,58,83,201,40,1160,147,45,78,208,131,3999,522,141,78,224,120,3820,484,126,79,227" + }, + { + "k": "440090", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EJU86XD", + "registration": "OE-IVL", + "type": "A320", + "squawk": "2040" + }, + "p": "1715,-22790,533565,0,188,8,52,-31,-34,0,205,9,41,-44,-25,0,231,10,40,-51,-28,0,231,12,131,-2,-22,0,51,13,41,296,142,31,53,85,40,445,203,36,52,106,39,231,379,34,342,128,40,-602,233,54,273,135,40,-729,-206,55,224,143" + }, + { + "k": "896407", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ETD81C", + "registration": "A6-APD", + "type": "A388", + "squawk": "2701" + }, + "p": "1716,-4585,514656,0,326,8,131,-110,10,0,270,8" + }, + { + "k": "4080f7", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY48ED", + "registration": "G-EJCM", + "type": "A320", + "squawk": "2730" + }, + "p": "1714,-1997,511469,29,124,4,53,589,81,35,78,84,41,559,51,26,100,112,40,392,-321,46,168,133,31,127,-380,24,165,139,41,235,-493,27,163,144,39,234,-494,2,163,145,40,242,-507,36,163,150,40,252,-536,53,163,159,40,254,-540,60,163,160,40,258,-553,58,164,162,40,-69,-585,35,193,174" + }, + { + "k": "4ca891", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR1MC", + "registration": "EI-ENE", + "type": "B738", + "squawk": "1000" + }, + "p": "1717,28443,502184,734,32,217,131,1834,2111,-112,21,203,31,323,521,-30,26,203,40,923,391,-33,79,198,41,1093,153,-40,76,198,39,1075,172,-38,76,195,40,1054,168,-41,76,194,40,1071,169,-39,76,194,40,1063,160,-41,80,191,40,1036,57,-22,85,180" + }, + { + "k": "4a08ee", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ROT361U", + "squawk": "1000" + }, + "p": "1717,55647,524789,309,280,150,50,-1087,115,-35,281,149,41,-864,95,-26,280,146,40,-845,92,-27,280,146,31,-655,71,-21,280,145,40,-843,89,-28,280,142,40,-810,86,-27,280,138,40,-775,80,-23,279,131,40,-717,-18,-21,263,119,40,-692,-52,-22,263,118,40,-511,-205,-14,220,103,40,-290,-286,1,192,83" + }, + { + "k": "399452", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VLJ990V", + "registration": "F-HFCS", + "type": "H25B", + "squawk": "1441", + "ladd": true + }, + "p": "1737,12130,502192,775,319,203,142,-2813,2074,-2,319,222,120,-2498,1825,1,319,224,120,-2463,1789,-23,319,204" + }, + { + "k": "738068", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ELY338", + "registration": "4X-EKI", + "type": "B738", + "squawk": "0176" + }, + "p": "1737,47757,523168,0,56,8,322,43,30,0,183,20,40,-22,-222,15,184,83,40,45,-281,51,150,89,40,547,-137,41,91,122" + }, + { + "k": "3444da", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VLG59BJ", + "registration": "EC-MBS", + "type": "A320", + "squawk": "2734" + }, + "p": "1767,-1887,511511,0,259,10,43,-50,-7,0,259,8,38,-53,-7,0,259,12,31,-54,-7,0,259,13,40,-52,-8,0,259,9,201,-5,-28,0,76,10,39,289,40,15,78,84" + }, + { + "k": "48520c", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "TRA73V", + "registration": "PH-HXD", + "type": "B738", + "squawk": "1000" + }, + "p": "1767,29862,502163,1057,39,254,132,2869,2278,-149,39,235,121,1895,2185,-83,24,231,122,1169,2285,-129,8,211" + }, + { + "k": "4b19f5", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SWR431", + "registration": "HB-JVP", + "type": "E190", + "squawk": "7326" + }, + "p": "1787,-1817,511567,0,259,8,128,-45,-52,0,259,8,43,-60,-9,0,259,11,41,-67,-9,0,259,12,40,-68,-9,0,259,9" + }, + { + "k": "484208", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "C3", + "registration": "GND", + "type": "GND" + }, + "p": "1788,47752,523070,0,3,13,36,-6,38,0,284,13,32,-50,5,0,340,10" + }, + { + "k": "3c654a", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "LHX4UT", + "registration": "D-AIJJ", + "type": "A20N", + "squawk": "2575" + }, + "p": "1788,55543,512272,1152,294,226,132,-3886,1060,-3,293,225,121,-3607,969,2,293,226,120,-3573,943,0,293,225" + }, + { + "k": "44cc44", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BEL8PZ", + "registration": "OO-SBD", + "type": "A20N", + "squawk": "1000" + }, + "p": "1808,31832,502159,661,31,240,131,2456,2389,0,35,243,120,2318,2142,-50,34,238,40,822,676,-26,49,233,41,1035,421,-25,59,204,39,932,359,-27,59,186" + }, + { + "k": "4a91f8", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SAS62L", + "registration": "SE-DOX", + "type": "A20N", + "squawk": "3175" + }, + "p": "1808,47720,523046,0,56,9,40,39,21,0,8,9,51,3,37,0,3,10,40,3,29,0,3,10,221,30,2,0,183,29" + }, + { + "k": "344648", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "IBE05LL", + "registration": "EC-MDK", + "type": "A320", + "squawk": "1000" + }, + "p": "1810,28429,502015,895,50,224,129,2994,1609,-112,47,210,120,2670,1643,-133,46,218,61,1304,804,-62,45,212,39,825,527,-40,45,208" + }, + { + "k": "408032", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EXS73J", + "registration": "G-SUNH", + "type": "A21N", + "squawk": "7703" + }, + "p": "1826,-1790,511524,0,259,9,30,-39,-5,0,262,10,42,-57,-8,0,259,11" + }, + { + "k": "502d5f", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BTI8KY", + "registration": "YL-ABN", + "type": "BCS3", + "squawk": "1000" + }, + "p": "1826,47422,523079,0,3,8,52,5,48,0,3,13,44,25,21,0,87,8,33,44,2,0,87,9,45,66,2,0,87,13,39,83,3,0,87,15,40,74,2,0,87,11,40,49,18,0,28,9" + }, + { + "k": "486742", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM1902", + "registration": "PH-AXD", + "type": "A21N", + "squawk": "1000" + }, + "p": "1828,55683,524689,294,281,147,51,-1091,130,-22,282,148,40,-863,109,-20,281,146,40,-845,98,-22,281,147,40,-851,100,-20,281,146,40,-834,99,-16,281,144,40,-830,97,-16,281,142,40,-813,92,-17,281,139,40,-790,92,-20,281,137" + }, + { + "k": "896617", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAE9656", + "registration": "A6-EFY", + "type": "B77L", + "squawk": "0143" + }, + "p": "1828,47602,522955,0,59,11,51,53,21,0,59,10,260,106,115,0,3,10,40,4,40,0,3,10" + }, + { + "k": "407575", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY64FW", + "registration": "G-EZRZ", + "type": "A320", + "squawk": "5014" + }, + "p": "1848,-25993,515095,185,120,140,31,521,-189,-9,120,131,40,634,-229,-13,120,122,40,389,-308,-11,172,108,40,-61,-378,-31,221,101,40,-502,-82,-20,265,89,40,-474,-17,-16,267,74,40,-393,-13,-16,266,66" + }, + { + "k": "43c8d8", + "m": { + "kind": "military", + "layer": "military", + "callsign": "CWL38", + "registration": "ZM337", + "type": "E50P", + "squawk": "2610", + "military": true + }, + "p": "1848,-4692,530315,32,83,71,31,334,112,24,37,99,40,372,290,62,39,100,40,368,281,60,38,98,40,363,291,50,38,102,40,388,297,44,38,109,40,397,309,21,37,110,40,398,317,-1,38,110,40,408,317,25,38,113" + }, + { + "k": "45ab24", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "JTD629", + "registration": "OY-JYD", + "type": "B738", + "squawk": "3521" + }, + "p": "1879,55653,517993,1022,215,218,121,-2163,-1922,0,215,216,121,-2159,-1944,0,215,217" + }, + { + "k": "407814", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BRO70", + "registration": "G-HMGA", + "type": "BE20", + "squawk": "4261", + "ladd": true + }, + "p": "1899,-3851,535494,50,252,81,40,-534,-35,17,272,103,40,-637,-16,-1,266,106,40,-647,-12,-4,266,106,40,-658,-21,-10,270,110,40,-664,6,-9,265,108,40,-649,-31,-6,262,108,40,-651,-49,-1,258,108" + }, + { + "k": "4079d1", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "CFE728", + "registration": "G-LCAF", + "type": "E190", + "squawk": "2046" + }, + "p": "1898,476,515055,6,93,37,41,361,-11,44,93,60,40,400,57,19,55,86,41,407,240,27,64,105,39,565,178,46,63,115,40,610,195,35,65,125,40,699,-101,36,122,136,40,664,-263,50,123,139" + }, + { + "k": "a3dc8e", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "TWY348", + "registration": "N348RS", + "type": "GA5C", + "squawk": "0676", + "ladd": true + }, + "p": "1899,17863,502043,919,329,230,121,-2099,2205,39,329,255,121,-2329,2418,45,328,262" + }, + { + "k": "3cce03", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DWW102", + "registration": "D-CFHZ", + "type": "E55P", + "squawk": "1452" + }, + "p": "1918,-4153,515536,28,0,0,41,362,136,31,32,77,40,103,307,28,8,96,40,92,359,12,10,107,40,166,381,40,39,115,40,555,226,42,59,119,40,647,241,66,60,138" + }, + { + "k": "4853d4", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "TRA45E", + "registration": "PH-HXK", + "type": "B738", + "squawk": "1000" + }, + "p": "1920,29833,502312,1023,40,254,121,2582,2165,-109,23,246,120,1604,2397,-131,23,229" + }, + { + "k": "4481a1", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "INSP510" }, + "p": "1905,44827,509091,0,56,10,32,39,15,0,59,10,42,41,15,0,56,11,37,49,18,0,62,11" + }, + { + "k": "4007f1", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW38W", + "registration": "G-YMMF", + "type": "B772", + "squawk": "7642" + }, + "p": "1939,-25472,507232,819,96,238,120,3896,-219,-78,95,225,120,3742,-215,-70,95,217" + }, + { + "k": "484207", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "C1" }, + "p": "1935,47602,523149,0,87,9,61,80,4,0,82,9,42,53,-5,0,138,10,41,22,-31,0,183,10,80,-5,-34,0,217,11" + }, + { + "k": "3c4a03", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DLH444", + "registration": "D-ABPC", + "type": "B789", + "squawk": "2526" + }, + "p": "1939,55988,518193,1024,317,260,120,-2800,2174,61,322,257,120,-2743,2185,1,322,257" + }, + { + "k": "4aca06", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "NSZ5260", + "registration": "SE-RPF", + "type": "B738", + "squawk": "6202" + }, + "p": "1941,35098,535969,1060,207,222,120,-1805,-2091,-30,207,219,120,-1795,-2120,-42,207,222" + }, + { + "k": "46b828", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AEE624", + "registration": "SX-NAH", + "type": "A21N", + "squawk": "1000" + }, + "p": "1959,55836,524506,302,283,170,40,-926,132,-18,283,155,40,-867,122,-27,283,149,40,-843,117,-31,283,147,40,-832,117,-24,283,143,40,-829,114,-14,283,144" + }, + { + "k": "484c5a", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "TRA5276", + "registration": "PH-HSC", + "type": "B738", + "squawk": "1000" + }, + "p": "1979,29950,502241,984,45,252,120,2635,1951,-125,33,232" + }, + { + "k": "8964b5", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAE216", + "registration": "A6-EVG", + "type": "A388", + "squawk": "2256" + }, + "p": "1999,-25437,519791,1112,123,263,120,3815,-1565,1,124,263" + }, + { + "k": "40653a", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "EZY91HN", + "registration": "G-EZGK", + "type": "A319", + "squawk": "5777" + }, + "p": "2000,14191,502109,896,315,230,121,-2715,1747,-188,315,224" + }, + { + "k": "486484", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM1498", + "registration": "PH-NXG", + "type": "E295", + "squawk": "1000" + }, + "p": "1999,26012,502283,1005,33,250,120,2328,2265,-61,33,243" + }, + { + "k": "407e21", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VIR106F", + "registration": "G-VLDY", + "type": "A339", + "squawk": "7666" + }, + "p": "2039,-25801,531125,1056,116,236,120,3303,-1306,-90,147,213" + }, + { + "k": "3451d3", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VLG3GG", + "registration": "EC-MKM", + "type": "A320", + "squawk": "2045" + }, + "p": "2039,-4500,514632,0,270,8,40,-58,0,0,273,11,40,-63,0,0,270,11,37,-55,0,0,273,11" + }, + { + "k": "3991e5", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AFR94JP", + "registration": "F-HEPF", + "type": "A320", + "squawk": "1000" + }, + "p": "2039,32956,502142,661,21,207,120,1251,2095,0,20,209" + }, + { + "k": "4ca6fc", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR800", + "registration": "EI-DYY", + "type": "B738", + "squawk": "4227" + }, + "p": "2059,-25854,530633,430,116,174,40,908,-266,-35,116,165,40,878,-258,-47,116,164,40,869,-252,-34,116,157" + }, + { + "k": "4bc88c", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "PGT357X", + "registration": "TC-RDL", + "type": "A21N", + "squawk": "7501" + }, + "p": "2048,2386,518823,0,222,10,31,-29,-19,0,222,8" + }, + { + "k": "4ca643", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "RYR2KK", + "registration": "EI-DYA", + "type": "B738", + "squawk": "5744" + }, + "p": "2061,55981,515684,127,306,112,38,-496,183,-20,275,95,40,-364,-150,-18,218,73,40,-234,-200,-14,215,68" + }, + { + "k": "4855d1", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM52R", + "registration": "PH-EXO", + "type": "E75L", + "squawk": "1000" + }, + "p": "2079,55923,528829,290,238,136,40,-677,-256,-24,238,134,41,-675,-256,-18,238,133" + }, + { + "k": "408178", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "NJU378C", + "registration": "G-NJAI", + "type": "C56X", + "squawk": "7302" + }, + "p": "2099,-13588,509513,0,201,9,39,-19,-34,0,201,11" + }, + { + "k": "4868f7", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KLM95Q", + "registration": "PH-AXP", + "type": "A21N", + "squawk": "1000" + }, + "p": "2100,47763,523108,0,3,12,39,-5,42,0,318,10,40,11,25,0,31,8" + }, + { + "k": "48452f", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "PHSVU", + "registration": "PH-SVU", + "type": "DR40", + "squawk": "7000" + }, + "p": "2099,44220,519509,31,0,0,39,-239,-16,12,283,22,40,-209,230,3,337,43" + }, + { + "k": "406b62", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "BAW608", + "registration": "G-EUYX", + "type": "A320", + "squawk": "5224" + }, + "p": "2117,-4849,514648,0,90,25,42,405,2,30,89,82" + }, + { + "k": "4842f7", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "TD29" }, + "p": "2121,47222,523282,0,39,11,34,40,-12,0,138,16" + }, + { + "k": "4cacb6", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SAS822", + "registration": "EI-SIC", + "type": "A20N", + "squawk": "0145" + }, + "p": "2138,47716,523044,0,56,9,41,43,24,0,3,10" + } + ] +} diff --git a/mobile/demo/history/nyc.json b/mobile/demo/history/nyc.json new file mode 100644 index 000000000..4e19a7766 --- /dev/null +++ b/mobile/demo/history/nyc.json @@ -0,0 +1,583 @@ +{ + "format": "gev-history/1", + "region": "nyc", + "label": "New York area", + "bbox": { "west": -76.5, "south": 39.4, "east": -71.2, "north": 42.2 }, + "capturedAt": { + "start": "2026-10-23T08:25:37.000Z", + "end": "2026-10-23T09:02:03.000Z" + }, + "source": "adsb.lol (ODbL) · adsb.lol military (ODbL) · God’s Eye dev server (OpenSky / adsb.lol)", + "note": "Real recorded positions (adsb.lol point snapshots around each anchor, OpenSky / adsb.lol via the dev server as a fallback). Timestamps are the true capture times and are never shifted.", + "t0": 1792743937, + "tracks": [ + { + "k": "adbe4a", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "MTN8302", + "registration": "N985FX", + "type": "C208", + "squawk": "1761", + "country": "United States" + }, + "p": "651,-762197,396788,118,242,93,40,-384,-158,0,242,93,40,-385,-158,0,242,93,40,-380,-156,0,242,93,40,-381,-157,0,242,93,40,-383,-159,0,242,93,31,-300,-124,0,242,94,41,-389,-161,0,242,93" + }, + { + "k": "adc201", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "MTN8305", + "registration": "N986FX", + "type": "C208", + "squawk": "1554" + }, + "p": "650,-762182,394631,114,230,46,39,-327,-199,0,231,46,42,-337,-213,0,231,47,39,-320,-205,0,231,47" + }, + { + "k": "0d10bc", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VIV687", + "registration": "XA-VDG", + "type": "A320", + "squawk": "2611", + "country": "Mexico" + }, + "p": "651,-760314,396918,1018,231,235,120,-2495,-1595,43,230,232" + }, + { + "k": "0d0e3a", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VOI1902", + "registration": "XA-VSZ", + "type": "A20N", + "squawk": "2673" + }, + "p": "651,-759607,394170,929,46,215,120,2061,1526,-127,46,196,132,2035,1553,-135,43,178,80,1088,901,-79,43,169,40,538,445,-38,43,169,40,535,442,-38,43,165,40,526,432,-36,43,161,40,499,411,-37,43,158,40,498,409,-34,43,155,52,652,534,-46,43,154,40,489,398,-24,43,148,40,467,383,-21,43,146,40,474,386,-22,43,147,40,464,378,-21,43,143,40,478,360,-22,47,141,40,552,269,-8,63,142,40,596,238,-4,63,143,40,590,235,-10,63,140,40,586,231,-9,63,139,39,570,225,-10,63,139,41,586,231,-26,63,137,40,572,225,-27,63,135,51,680,265,-22,63,115,40,451,176,-13,63,99,40,408,162,-30,63,96,31,285,110,-2,63,79,41,246,198,0,27,77,40,161,253,-8,26,76,40,153,244,-15,26,74,40,150,235,-15,26,70,40,123,195,-13,26,57,40,119,189,-13,26,57,40,119,188,-12,26,59" + }, + { + "k": "a32bba", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL28", + "registration": "N303NY", + "type": "A21N", + "squawk": "6743" + }, + "p": "651,-758033,413053,952,111,252,120,3282,-1042,-161,114,241,132,3362,-1133,-75,114,234,120,3016,-952,-67,100,224,100,2592,-308,-53,99,219,40,1022,-122,-4,99,219,72,1847,-222,0,99,220,40,1035,-126,0,99,219,40,990,-242,0,124,229,40,660,-662,0,160,238,40,250,-829,-29,168,230,40,237,-797,-55,167,224,40,236,-774,-60,167,222,40,232,-767,-44,167,212,40,217,-705,-22,167,189,40,193,-621,-21,167,168,39,182,-567,-42,166,163,41,196,-566,-37,164,160,40,513,-362,-28,99,151,51,833,157,-38,71,141,40,629,166,-32,71,138,40,608,160,-25,70,134,31,457,135,-26,59,133,41,227,421,-26,4,129,40,28,453,-19,2,120,39,14,388,0,1,97,41,6,326,0,1,89,40,8,322,0,1,89,40,8,323,0,1,88,40,-145,289,0,303,100" + }, + { + "k": "a24c77", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL2186", + "registration": "N24706", + "type": "B737", + "squawk": "2455" + }, + "p": "651,-756542,409975,485,106,187,40,844,-181,-40,106,183,41,824,-172,-38,105,178,39,804,-173,-38,106,177,40,789,-169,-37,106,174,40,783,-169,-21,106,168,31,578,-126,-8,106,155,41,705,-154,-29,106,152,40,663,-180,-3,110,146,40,655,-177,1,104,146,40,696,-25,-20,91,149,40,698,-12,-20,91,146,40,683,-10,-19,91,143,40,670,-14,-22,92,140,72,963,-309,-12,154,128,40,276,-409,-10,152,128,40,265,-401,-14,154,120,40,258,-381,-21,153,119,40,259,-389,-15,152,122,40,260,-388,-1,153,120,40,241,-368,1,153,110,40,234,-351,-5,153,108,40,241,-341,-19,141,106,40,405,-133,-7,89,90,39,378,72,-2,74,80,41,359,82,-2,73,79,40,293,141,-5,25,77,51,203,316,-11,25,75,40,143,229,-8,26,63,40,124,195,-8,26,58,31,91,144,-9,27,56,41,122,192,-12,26,61,40,126,201,-13,25,64,40,133,210,-13,25,65,56,131,214,-5,26,12" + }, + { + "k": "ae07f4", + "m": { + "kind": "military", + "layer": "military", + "callsign": "RCH733", + "registration": "97-0042", + "type": "C17", + "squawk": "1032", + "military": true + }, + "p": "649,-753780,405942,1067,46,121,120,2389,1746,0,46,120,132,2707,1940,0,47,122,120,2442,1754,0,46,123,121,2502,1764,0,47,122,129,2662,1863,0,47,121,122,2444,1737,0,46,113,121,2614,1742,0,48,118,138,2942,2029,0,46,126" + }, + { + "k": "a32890", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "N302UP", + "registration": "N302UP", + "type": "B763", + "squawk": "6724", + "country": "United States" + }, + "p": "651,-751671,400018,155,97,126,40,538,-51,-27,98,108,41,490,-73,-24,112,104,39,196,-334,-16,174,107,40,-115,-357,-19,221,111,40,-423,-181,-10,250,99,31,-334,-83,-18,254,89,41,-383,-86,-17,254,83,40,-364,-68,-19,255,79,136,-427,-115,-5,163,10" + }, + { + "k": "aa6bc0", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL2397", + "registration": "N77022", + "type": "B772", + "squawk": "2472", + "country": "United States" + }, + "p": "651,-748784,407699,270,128,156,40,586,-345,0,128,155,40,562,-334,-17,128,150,40,553,-329,-21,128,145,40,531,-317,-23,128,143,40,529,-315,-23,128,141,31,411,-246,-18,128,139,41,500,-302,-13,128,126,40,446,-265,-23,128,115,40,413,-248,-35,128,112,40,443,-84,-12,76,88,40,382,79,-2,72,83,40,371,92,-1,72,83,40,331,141,-2,31,82,72,299,468,-9,26,72,40,131,207,-14,26,60,40,122,194,-12,26,58,40,121,192,-13,26,61,40,127,199,-12,26,61,40,130,206,-14,25,65,38,128,201,-6,26,52,38,39,69,0,26,12,84,-33,37,0,276,11,39,-47,4,0,276,9" + }, + { + "k": "39d2a5", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AFR173", + "registration": "F-HUVF", + "type": "A359", + "squawk": "3227" + }, + "p": "652,-748311,399191,1212,50,253,139,3183,2064,0,50,254,132,3025,1941,0,50,257,120,2769,1763,-1,50,256,120,2817,1775,0,51,258,132,3100,1936,-1,51,257,120,2844,1757,0,51,258,120,2867,1756,-1,51,259,120,2884,1749,0,51,259,131,3178,1908,0,52,259,132,3214,1911,-1,52,260,120,2956,1739,0,52,261,120,2980,1735,-1,52,262" + }, + { + "k": "a3f930", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UPS1114", + "registration": "N355UP", + "type": "B763", + "squawk": "6734" + }, + "p": "651,-747047,394015,793,61,228,120,2700,1131,-135,62,212,60,1279,533,-77,61,209,51,909,639,-54,41,206,41,621,564,-31,40,202,40,607,555,-30,40,200,40,595,543,-35,40,195,40,549,549,-34,32,192,40,435,595,-29,29,189,40,426,599,-29,29,187,40,398,563,-7,29,169,72,689,852,-23,32,146,40,351,432,-23,32,141,40,343,436,-29,30,140,40,326,429,-26,30,137,40,313,423,-26,30,135,40,308,417,-22,29,130,40,289,402,-20,28,125,40,273,390,-28,27,124,40,255,406,-24,24,122,40,218,376,-10,24,107,39,161,328,-10,360,92,41,-334,218,-4,303,99,40,-397,196,0,301,100,51,-510,233,-14,301,97,40,-372,169,-20,301,83,40,-309,140,-16,301,73,31,-224,103,-13,300,71,41,-292,132,-16,301,71,40,-282,128,-8,301,66,40,-109,46,0,301,10,40,-43,-18,0,242,12,39,-51,5,0,276,10,30,-33,-11,0,242,8" + }, + { + "k": "a0566a", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL91", + "registration": "N12021", + "type": "B78X", + "squawk": "0701" + }, + "p": "651,-743550,414956,232,198,153,40,-226,-525,-15,198,152,40,-223,-523,-8,198,152,40,-223,-518,0,198,152,40,-223,-518,0,198,152,40,-221,-517,0,198,151,31,-173,-407,0,198,151,41,-225,-523,0,198,150,40,-220,-514,0,198,151,39,-91,-534,-2,172,152,41,130,-539,-24,169,151,40,99,-531,-14,184,143,40,-91,-503,-20,190,141,40,-118,-513,-1,190,145,72,68,-901,0,159,142,39,237,-476,0,159,142,41,244,-489,-9,159,144,40,237,-476,-20,159,140,40,234,-465,-18,159,135,40,271,-399,-13,133,114,39,456,-117,0,85,102,41,462,99,0,73,101,40,390,131,0,39,83,40,182,261,-1,25,83,39,165,264,-18,26,81,41,165,260,-18,26,78,40,141,225,-14,26,66,51,178,279,-18,26,70,40,148,235,-15,26,73,34,117,184,-4,37,48,33,31,55,0,37,9" + }, + { + "k": "71c251", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KAL251", + "registration": "HL8251", + "type": "B77L", + "squawk": "1434" + }, + "p": "651,-742641,395863,559,33,184,40,533,512,-33,40,181,40,544,492,-28,41,175,40,516,466,-26,40,170,40,499,454,-23,41,164,40,502,454,-25,40,170,31,350,399,-19,29,170,41,378,531,-25,29,166,40,363,514,-24,29,160,40,348,498,-24,27,154,40,365,453,-22,34,138,40,338,398,-27,33,134,40,337,408,-26,32,135,40,328,410,-23,31,132,72,560,724,-39,31,129,40,303,399,-23,30,127,39,284,389,-19,29,123,41,281,399,-30,27,127,40,255,397,-12,25,117,40,215,356,-6,23,104,39,-64,347,-12,340,99,41,-148,324,-6,341,93,40,-145,317,0,341,92,40,-337,226,-3,301,100,39,-394,179,-21,301,95,41,-375,171,-21,301,84,40,-299,136,-15,301,71,51,-368,167,-20,301,71,40,-275,125,-7,301,47,39,-74,23,0,301,8" + }, + { + "k": "a27567", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "MXY9028", + "registration": "N258BZ", + "type": "BCS3", + "squawk": "2557", + "country": "United States" + }, + "p": "651,-742532,402792,841,54,204,120,2340,1278,-1,55,203,132,2580,1397,-38,55,201,120,2249,1209,-104,55,190,120,2127,1137,-98,54,180,40,601,455,-10,42,180,52,737,632,-2,41,180,40,567,486,-32,42,179,40,560,479,-32,42,177,40,555,476,-29,42,177,40,548,467,-27,42,173,40,540,460,-28,42,170,40,539,458,-28,42,169,40,533,453,-27,42,166,40,520,440,-26,42,162,40,414,463,-24,14,148,39,-150,475,-4,330,139,41,-353,430,0,328,140,40,-349,431,-31,334,138,51,-151,613,-39,352,134,40,-81,460,-28,352,121,40,-75,409,-23,352,107,31,-53,288,-17,352,101,41,-62,348,-19,352,94,40,-59,330,-20,352,92,40,-59,329,-19,353,95,40,-62,346,-21,352,96,40,-59,323,-17,352,88,40,127,275,-9,41,83,40,277,213,-7,45,83" + }, + { + "k": "a4009e", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UPS208", + "registration": "N357UP", + "type": "B763", + "squawk": "0712" + }, + "p": "651,-740638,421622,453,198,210,40,-314,-710,-41,198,206,40,-310,-707,-26,198,205,40,-302,-692,-20,198,196,40,-283,-648,-20,198,185,40,-268,-611,-18,198,175,31,-197,-454,-12,198,167,41,-246,-564,-16,198,156,40,-227,-521,-17,198,149,40,-218,-501,-15,198,145,40,-216,-496,-15,198,146,40,-218,-504,-17,198,148,40,-216,-500,-16,198,145,40,-214,-501,-12,198,146,72,-387,-899,1,198,147,40,-216,-503,0,198,146,40,-213,-497,0,198,145,40,-213,-499,0,198,145,40,-210,-491,0,198,144,40,-213,-500,0,197,147,40,-100,-522,-3,184,147,40,-46,-525,-10,184,145,40,-46,-522,-9,184,144,40,-47,-507,-9,184,140,39,-36,-505,0,180,144,41,34,-523,-6,171,144,40,211,-479,-14,158,137,51,327,-580,-15,157,137,40,253,-453,-10,157,137,40,247,-445,-15,157,133,31,183,-330,-11,157,125,41,247,-396,-13,139,113,40,450,-87,-9,73,99,40,438,93,-3,73,94,40,409,109,0,59,90,39,194,269,0,27,80,41,161,252,-10,26,76,40,151,240,-16,26,74" + }, + { + "k": "a79bdb", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "TFF959", + "registration": "N59JE", + "type": "GLF5", + "squawk": "4274", + "ladd": true, + "country": "United States" + }, + "p": "651,-737233,408120,137,131,137,40,476,-305,-10,130,123,40,411,-264,-7,130,108,40,380,-245,-10,130,104,40,373,-240,-10,130,102,40,407,-144,-24,105,96,31,340,-75,-20,106,93,40,381,-116,-13,128,85,41,313,-200,-1,131,85,40,275,-17,-9,57,55,40,190,129,-4,47,55,40,22,183,-4,345,57,40,-102,193,-2,328,59,40,-200,154,-18,313,61" + }, + { + "k": "acbe63", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "TAI568", + "registration": "N920CG", + "type": "A20N", + "squawk": "7451", + "country": "United States" + }, + "p": "651,-735933,405533,56,10,95,40,-241,255,0,305,92,40,-371,173,0,301,87,40,-330,150,-18,301,77,40,-285,130,-14,301,70,40,-283,129,-16,301,71,31,-226,102,-8,301,70,40,-149,68,0,301,11,79,-6,-20,0,121,8,40,42,-19,0,121,12,42,55,-24,0,121,10,100,-3,-58,0,211,8" + }, + { + "k": "274eb6", + "m": { "kind": "aircraft", "layer": "flights", "callsign": "~274eb6" }, + "p": "649,-735033,407819,162,90,90,42,445,16,72,89,88,40,416,15,-96,88,89,38,402,14,84,88,89,42,434,-5,-76,99,88,40,386,-42,-72,98,83,51,462,-32,17,81,75,36,326,3,30,91,76" + }, + { + "k": "a8d845", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "GTX323", + "registration": "N66919", + "type": "BE36", + "squawk": "2777" + }, + "p": "651,-734188,407675,56,339,47,40,-91,158,17,336,48,40,-98,165,17,336,53,40,-148,154,17,283,64,40,-291,-72,19,247,65,40,-305,-101,5,247,78,31,-244,-145,0,228,87,41,-302,-201,13,229,78,40,-253,-171,24,228,66,40,-237,-157,15,230,69,40,-264,-168,9,230,76,40,-296,-186,0,231,87,40,-325,-204,0,230,89,40,-318,-203,1,230,89,72,-631,-324,-1,245,89,40,-376,-142,1,243,88,40,-369,-140,0,244,88,40,-375,-141,-1,244,90,40,-385,-144,1,243,90,40,-379,-146,0,243,90,40,-378,-140,0,244,89,40,-378,-141,0,244,89,40,-371,-140,0,244,88,40,-374,-141,0,244,89,39,-374,-143,0,243,89,41,-376,-143,0,244,89,40,-376,-143,0,243,89,51,-481,-183,0,243,90,40,-378,-143,0,244,88,40,-375,-144,0,243,88,32,-289,-111,0,243,88,40,-376,-146,0,243,88,40,-373,-144,0,244,90,40,-374,-143,0,243,89,40,-374,-144,0,243,89,40,-376,-145,0,244,89,40,-371,-143,0,243,88,40,-369,-144,0,243,88" + }, + { + "k": "a544ee", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DAL226", + "registration": "N439DX", + "type": "A339", + "squawk": "6077", + "country": "United States" + }, + "p": "651,-733993,401695,226,348,135,40,-134,465,-29,347,131,40,-144,454,-52,346,130,40,-154,467,-31,345,133,40,-181,443,-20,337,131,40,-286,420,-8,332,130,31,-219,308,-4,331,118,41,-257,357,-10,331,106,40,-234,312,-12,330,94,40,-211,280,-3,330,88,40,-213,273,-1,321,90,40,-355,198,0,300,94,40,-359,163,0,300,84,40,-314,144,-16,301,71,72,-512,233,-28,301,70,39,-279,126,-12,301,70,40,-186,84,0,301,18,81,15,11,0,121,8,39,37,-22,0,124,11,40,49,-22,0,121,12,40,44,-20,0,121,12" + }, + { + "k": "ad6ec5", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AMX025", + "registration": "N965AM", + "type": "B788", + "squawk": "3220", + "country": "United States" + }, + "p": "651,-733028,408777,1212,51,257,120,2841,1761,0,51,258,132,3142,1927,0,51,260,120,2879,1750,-1,51,258,120,2883,1735,0,51,258,132,3218,1917,-1,52,261,120,2961,1746,0,52,260,120,2970,1735,0,52,262" + }, + { + "k": "7380ca", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ELY003", + "registration": "4X-EDL", + "type": "B789", + "squawk": "0710", + "country": "Israel" + }, + "p": "651,-730821,406750,277,254,140,40,-633,-138,-31,254,141,40,-650,-141,-33,254,143,40,-644,-139,-29,254,142,40,-643,-141,-29,254,142,40,-633,-137,-23,254,139,31,-496,-111,-15,254,135,41,-588,-129,-2,254,122,40,-532,-116,-17,254,113,40,-474,61,-16,301,105,40,-409,192,-25,301,95,40,-351,160,-19,301,77,40,-304,138,-17,301,74,40,-301,137,-15,301,75,69,-343,155,-6,312,8,183,50,-44,0,120,9" + }, + { + "k": "ab3c0d", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL293", + "registration": "N823AN", + "type": "B789", + "squawk": "0711", + "country": "United States" + }, + "p": "651,-726840,410669,417,213,189,40,-479,-570,-34,213,186,40,-456,-547,-15,212,173,40,-443,-493,-6,216,160,40,-436,-453,0,216,158,40,-440,-460,0,216,158,31,-349,-365,-2,216,158,41,-444,-465,-26,216,157,40,-454,-427,-25,233,149,40,-637,-175,-26,254,140,40,-631,-136,-27,254,140,40,-643,-139,-31,254,143,40,-655,-141,-27,254,143,40,-646,-143,-25,254,141,72,-1141,-248,-37,254,138,40,-618,-138,-16,254,131,40,-573,-93,-25,280,118,40,-467,194,-28,302,105,40,-380,176,-21,301,84,40,-311,142,-16,301,74,40,-301,137,-17,301,74,40,-298,135,-13,301,74" + }, + { + "k": "4d22a0", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AIZ993", + "registration": "9H-HFA", + "type": "A333", + "squawk": "0715" + }, + "p": "651,-717150,421744,1072,214,246,120,-1892,-2131,-115,213,232,132,-2081,-2364,-132,213,232,120,-1761,-2017,-113,213,221,120,-1719,-1984,-107,213,211,40,-530,-615,-25,213,202,52,-696,-810,-75,213,208,40,-538,-627,-40,213,205,39,-515,-603,-37,213,200,41,-514,-602,-36,213,193,40,-467,-548,-25,213,173,40,-476,-464,-3,222,158,40,-507,-423,-1,222,158,40,-503,-420,0,222,158,40,-498,-420,0,222,157,40,-501,-421,0,222,158,39,-499,-418,1,222,158,41,-504,-424,-1,222,158,40,-582,-317,-25,259,148,51,-785,196,-58,294,133,40,-582,195,-61,293,134,40,-560,154,-29,277,123,31,-384,-162,-32,215,130,41,-283,-412,-22,207,123,40,-438,-232,-24,251,115,40,-510,-128,-24,252,111,40,-477,-49,0,291,101,40,-404,178,-22,301,97,40,-372,168,-19,301,85,40,-313,143,-18,301,70" + }, + { + "k": "a18284", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DAL960", + "registration": "N197DN", + "type": "B763", + "squawk": "7722" + }, + "p": "691,-764883,414975,1213,110,248,120,3329,-925,-51,110,250,132,3737,-1058,-208,111,252,120,3256,-1041,-172,114,237,120,3023,-1020,-66,114,233,132,3365,-1030,-8,101,231,120,3115,-367,-58,99,218,120,3009,-362,-49,99,213,40,983,-197,-11,114,217,39,815,-478,1,140,227,41,478,-747,-1,167,227,40,214,-789,0,168,227,51,285,-1024,-1,168,227,40,224,-792,-51,167,220,40,232,-762,-66,167,213,31,170,-561,-41,167,203,41,262,-675,-35,149,181,40,632,-324,-26,96,157,40,599,218,-49,34,141,40,347,431,-57,32,141,40,330,417,-33,31,126,40,73,403,-36,346,111,40,-115,360,-43,345,97" + }, + { + "k": "a09fc4", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL2222", + "registration": "N13954", + "type": "B789", + "squawk": "3412" + }, + "p": "691,-712332,416130,989,269,238,120,-3384,-34,2,269,237,132,-3756,-52,0,269,238,120,-3438,-57,1,269,240,120,-3392,-66,-72,268,233,132,-3616,-81,-107,268,226,120,-3126,191,-132,285,209,100,-2366,430,-90,276,206,40,-1002,-50,0,259,213,40,-999,-138,0,260,213,40,-1007,-139,0,259,213,40,-1004,-140,-32,260,207,40,-937,-134,-92,259,196,31,-720,-101,-87,259,197,40,-902,-127,-63,259,178,40,-762,-112,-28,259,149,31,-504,-138,-21,232,149,41,-327,-485,-24,198,153,40,-225,-521,-24,198,150,40,-221,-517,-11,198,153,40,-226,-524,0,198,153,40,-225,-523,1,198,152,40,-223,-521,0,198,151,40,-221,-516,0,198,150" + }, + { + "k": "a1ac91", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AVA042", + "registration": "N207FR", + "type": "A320", + "squawk": "1411" + }, + "p": "943,-743420,394233,639,19,216,40,336,748,-74,19,213,40,323,705,-48,24,207,40,568,606,-51,40,208,40,621,567,-50,40,201,40,598,543,-27,40,201,40,606,549,-21,41,201,52,709,748,-27,29,194,40,432,608,-6,29,185,39,385,542,1,29,161,41,345,485,-1,29,146,40,341,451,-1,33,146,40,367,449,1,32,146,40,362,444,-13,33,145,40,368,444,-38,32,145,40,349,435,-32,31,142,40,327,431,-33,30,138,39,314,425,-31,29,135,41,304,420,-31,28,130,40,286,424,-41,25,133,51,0,546,-21,341,114,40,-164,352,-7,340,95,40,-152,317,-1,340,92,32,-177,224,1,308,100,40,-392,182,-22,301,89,40,-323,148,-19,301,71,40,-272,124,-13,301,65,39,-262,119,-15,301,65,41,-265,120,-13,300,65,40,-252,114,-6,301,46" + }, + { + "k": "a2a915", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL148", + "registration": "N27015", + "type": "B772", + "squawk": "6065" + }, + "p": "1083,-736746,394270,389,330,177,40,-405,547,-36,330,172,40,-395,534,-35,330,168,72,-657,887,-39,330,144,39,-321,432,-19,330,136,41,-317,426,-29,330,135,40,-312,421,-21,330,134,40,-317,414,0,324,135,40,-431,347,-18,315,135,40,-448,336,-13,313,132,40,-443,327,0,314,133,40,-451,336,0,314,134,40,-444,332,0,314,134,39,-449,334,0,314,134,41,-457,341,1,314,133,40,-449,332,-1,314,133,51,-567,436,1,326,135,40,-67,470,0,10,135,40,118,475,0,11,133,31,94,365,0,11,133,41,118,469,-22,11,132,40,114,465,-22,11,128,40,108,442,-19,11,122,40,108,429,-22,11,118,40,97,387,-6,11,102,40,89,357,-1,11,100,40,116,327,1,25,82" + }, + { + "k": "a460d1", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UPS1070", + "registration": "N3818P", + "type": "B763", + "squawk": "6606" + }, + "p": "1103,-760391,394088,972,51,240,132,2840,1773,-206,51,229,120,2266,1568,-150,43,208,40,642,533,-48,43,203,40,646,540,-54,43,202,40,636,523,-48,43,198,40,629,518,-48,43,194,40,616,505,-45,43,191,40,589,483,-22,43,178,40,540,443,-11,43,161,40,493,404,-13,43,148,40,463,378,-22,43,142,51,567,460,-25,43,134,40,429,344,-20,46,130,40,459,329,-19,47,133,31,356,253,0,47,134,41,538,266,0,65,137,40,579,211,0,65,137,40,581,207,-18,65,133,40,558,199,-25,65,131,39,556,197,-24,65,130,41,562,198,-24,65,127,40,530,189,-16,65,122" + }, + { + "k": "a11fc7", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL427", + "registration": "N17139", + "type": "B752", + "squawk": "6752" + }, + "p": "1143,-764911,412023,880,107,247,131,3526,-801,-155,107,225,120,2933,-678,-134,107,207,41,928,-215,-44,107,201,40,925,-216,-52,107,200,40,892,-210,-44,107,197,40,888,-210,-44,107,192,40,854,-201,-43,107,188,39,831,-198,-42,108,184,41,803,-192,-13,107,166,40,721,-172,-14,108,154,51,871,-218,-24,111,152,40,663,-246,0,124,156,40,586,-340,0,128,156,31,457,-270,-2,128,156,41,582,-344,-27,128,152,40,559,-333,-25,128,148,40,550,-328,-28,128,146,40,533,-318,-27,128,144,40,513,-308,-14,128,128,40,427,-255,1,128,104,40,396,-237,0,128,106" + }, + { + "k": "76cce7", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "SIA22", + "registration": "9V-SGG", + "type": "A359", + "squawk": "7447" + }, + "p": "1235,-755665,421794,674,122,215,80,1734,-805,-79,122,207,40,842,-386,-38,118,201,40,854,-319,-30,117,194,40,816,-335,-23,128,193,40,650,-500,-31,136,195,40,661,-500,-31,135,193,40,643,-487,-31,136,188,40,628,-482,-31,136,187,39,549,-512,-32,160,186,41,262,-640,-32,162,180,40,258,-592,-16,162,167,51,304,-702,-15,162,157,40,237,-546,-10,162,156,40,228,-531,-11,162,156,31,178,-414,-7,162,155,41,232,-541,-10,162,154,40,227,-529,-10,162,154,40,222,-521,-11,162,153,40,223,-522,-10,162,151,40,222,-519,-6,162,150,40,216,-508,-15,162,149,40,74,-524,-16,186,147" + }, + { + "k": "a27f7f", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "FDX1073", + "registration": "N260FE", + "type": "B763", + "squawk": "3140" + }, + "p": "1315,-758925,394251,1000,41,241,120,2125,1885,-173,41,215,120,1933,1642,-157,43,196,60,921,763,-80,43,190,40,615,507,-62,43,192,40,598,495,-55,43,186,40,581,477,-51,43,180,31,448,366,-41,43,178,40,567,463,-38,43,170,40,511,420,-10,43,151,31,370,305,-17,43,145,41,460,373,-22,43,138,40,439,357,-20,43,136,40,451,350,-20,47,135,40,458,326,-14,47,134,40,493,308,0,60,138,40,589,221,0,65,139,40,592,213,0,65,139" + }, + { + "k": "a64ce6", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "DAL1114", + "registration": "N505DZ", + "type": "A21N", + "squawk": "1643" + }, + "p": "1355,-764662,403465,660,115,203,80,1681,-613,-74,115,188,40,794,-291,-50,116,189,40,794,-290,-38,116,184,40,767,-282,-37,116,179,40,762,-225,-28,104,168,40,736,-148,-19,105,161,40,728,-146,-12,105,160,40,725,-147,-13,105,159,51,925,-188,-13,105,160,40,724,-147,-24,104,158,40,718,-148,-34,105,156,31,544,-110,-25,105,154,41,701,-144,-31,105,151,40,678,-142,-27,105,148,40,650,-135,-28,105,143,40,642,-106,-35,97,140,40,663,-54,-31,96,138,40,611,-50,-12,100,125,40,394,-276,-17,167,120" + }, + { + "k": "ad7ab8", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "JBU16", + "registration": "N968JT", + "type": "A321", + "squawk": "3201" + }, + "p": "1395,-764763,414944,998,110,244,120,3294,-916,-60,110,247,120,3315,-940,-35,111,247,131,3587,-1138,-50,114,246,132,3403,-1147,-124,114,229,120,2926,-900,-49,98,215,120,2982,-346,-38,99,209" + }, + { + "k": "ace5bd", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AVA153", + "registration": "N930AV", + "type": "A20N", + "squawk": "1654" + }, + "p": "1415,-737745,406292,0,301,31,40,-273,123,11,299,83,40,-385,-22,39,228,101,40,-358,-312,29,214,123,40,32,-412,46,154,127,40,205,-469,37,174,148,40,152,-525,56,147,151,40,632,-194,49,84,151,40,722,84,48,81,159,31,578,69,42,81,163,40,819,105,7,80,180,40,816,-153,4,129,188,31,345,-452,35,166,193,41,-150,-686,44,204,196,40,-347,-651,51,202,197,40,-370,-660,47,205,201,40,-411,-655,43,206,204,120,-1288,-2114,91,205,227" + }, + { + "k": "abe212", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "GTI8084", + "registration": "N865GT", + "type": "B748", + "squawk": "2422" + }, + "p": "1475,-764846,409872,1028,64,258,120,3305,1221,-2,64,256,120,3285,1200,1,64,255,131,3601,1299,-1,65,255,132,3620,1291,0,65,255,120,3293,1196,-1,60,254" + }, + { + "k": "0d1236", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AMX007", + "squawk": "3427" + }, + "p": "1475,-756414,394141,1154,48,252,120,2634,1836,0,48,254,120,2648,1830,0,48,254,131,2930,2010,-3,49,257,132,3029,1930,2,50,256,140,3245,2062,-1,50,257" + }, + { + "k": "c038ac", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ACA97", + "registration": "C-FVLZ", + "type": "B789", + "squawk": "6060" + }, + "p": "1475,-720901,394267,1181,346,230,120,-803,2406,-1,345,229,120,-796,2373,1,345,226,131,-874,2580,0,345,227,132,-891,2613,-1,345,228,120,-821,2384,0,345,229" + }, + { + "k": "0d07a8", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "VOI504", + "registration": "XA-VOY", + "type": "A320", + "squawk": "4261" + }, + "p": "1594,-759491,394097,910,44,226,121,2116,1667,-133,45,204,131,2050,1640,-134,43,183,52,730,608,-50,43,178,40,567,468,-40,43,175,40,551,456,-39,43,173,40,549,452,-38,43,170,40,537,442,-39,43,166,40,526,432,-35,43,163,40,516,422,-38,43,161,40,511,417,-25,43,152" + }, + { + "k": "78029e", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "CSS181", + "registration": "B-2425", + "type": "B744", + "squawk": "7254" + }, + "p": "1595,-753366,421891,978,115,260,120,3364,-1181,-61,115,253,131,3586,-1277,-49,116,246,132,3053,-1697,-59,156,248,120,1418,-2378,-124,156,233" + }, + { + "k": "a4f08d", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "N4170V", + "registration": "N4170V", + "type": "P32R", + "squawk": "2746" + }, + "p": "1674,-762976,401207,0,239,10,40,2,-15,0,118,10,204,56,-11,0,298,13,40,-160,68,15,299,50,40,-222,83,19,293,53,40,-144,124,19,8,46,40,96,145,18,28,46,40,102,145,18,29,47,40,109,153,14,28,52" + }, + { + "k": "7380c7", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "ELY017", + "registration": "4X-EDI", + "type": "B789", + "squawk": "0716" + }, + "p": "1715,-732626,421904,1243,207,247,131,-1779,-2615,1,207,248,132,-1770,-2624,-1,207,250,120,-1608,-2407,1,207,250" + }, + { + "k": "a25f6e", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "FDX1700", + "registration": "N252FE", + "type": "B763", + "squawk": "6672" + }, + "p": "1898,-764470,407490,864,86,244,120,3311,190,-147,86,225,100,2579,141,-119,86,212,40,995,53,-49,86,208" + }, + { + "k": "a6aaf0", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "KOW529", + "registration": "N529FX", + "type": "CL30", + "squawk": "4256" + }, + "p": "1937,-741677,406984,0,191,8,61,-20,-46,0,188,9,59,-29,-51,0,211,12" + }, + { + "k": "a12f6f", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL1745", + "registration": "N17593", + "type": "B39M", + "squawk": "3250" + }, + "p": "1978,-764825,412603,755,110,226,120,2925,-792,-134,110,211,40,939,-255,-44,110,207,40,912,-248,-16,110,202" + }, + { + "k": "a599a8", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "AAL1188", + "registration": "N460AN", + "type": "A21N", + "squawk": "0747" + }, + "p": "1998,-764704,401240,609,94,199,40,916,-50,-43,94,196,39,902,-51,-49,94,194,41,905,-51,-42,94,190,40,869,-49,-40,94,185" + }, + { + "k": "aa92fc", + "m": { + "kind": "aircraft", + "layer": "flights", + "callsign": "UAL2482", + "registration": "N78005", + "type": "B772", + "squawk": "3542" + }, + "p": "2058,-764949,412637,764,110,228,120,2997,-811,-56,110,217" + } + ] +} diff --git a/mobile/demo/moments/empire-state.jpg b/mobile/demo/moments/empire-state.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3354693904f59842db557b82801e23cfb9098f2f GIT binary patch literal 145914 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 VSzJnmwV=EAi%tn6(*DCg|Jg0XoSXmv literal 0 HcmV?d00001 diff --git a/mobile/globe/API.md b/mobile/globe/API.md index 16464157e..7bf8f16d8 100644 --- a/mobile/globe/API.md +++ b/mobile/globe/API.md @@ -280,3 +280,40 @@ globe.skyNow({ lon, lat } = viewer) → Promise<{ ## Dev harness `mobile/globe/dev.html?moment=empire-state&speed=30` plays a Moment on load and prints its events in the HUD. `globe.debug` exposes `{ recorder, detector, stage, ghosts }` for tests. It is not part of the contract. + +--- + +# Polish round + +Additive. Nothing above changes. + +## Bundled recording (the time machine always has ghosts) + +`mobile/demo/history/{nyc,london,gulf}.json` hold a real recording of every aircraft over the New York area, London and the North Sea approaches, and the Gulf of Mexico, captured by `node mobile/demo/capture-history.mjs` (adsb.lol point snapshots around each region's anchors, the dev server's `/api/flights` and `/api/military` as fallbacks; one fix per 30 s below 6 km, per 120 s in cruise). Positions are quantised to 1e-4° and 10 m and delta-encoded (`format: 'gev-history/1'`). Timestamps are the true capture times and are **never shifted**: the time machine shows the recording where it happened. + +The engine loads it about 5 s after the first frame into a second recorder (no expiry) and reads both through one view: ghosts, `setTime` history mode, `entity()`, `trackOf()` and `search()` see the recording; on a key present in both, the device's own recorder wins. + +```js +globe.history().archive → { start, end, regions: [{ id, label, bbox, source, start, end, tracks, + busiest: { t, aircraft } }] } | null +globe.loadHistory() → Promise // resolves once it is loaded +globe.historyNear(t, lon, lat, km = 100) + → [{ id /* entity id */, key, kind, title, lon, lat, altM }] // recorded contacts at t, nearest first +// event 'history' → history(), once the recording is loaded +``` + +The time ribbon shades the recording in teal (`RECORDING · 23 OCT`) next to the device's own `RECORDED` range, and its readout names the day when the playhead is on another UTC day. + +## Camera + +```js +globe.flyTo({ lon, lat, height, heading, pitch, eye: true }); // eye: lon/lat/height place the camera itself +``` + +## Night close-ups + +Below ~400 km, where Cesium's lighting is faded out, a night-side view grades the Esri mosaic toward night (darker, desaturated, slightly cooler) with a soft glow of the real Black Marble lights above ~40 km; the strength follows the sun's elevation under the camera at the **scene clock**, so a Moment keeps the lighting of its own time (the hero is daylight). A terrain watchdog falls back to the flat ellipsoid when the keyless terrain host stalls (the globe would otherwise show only the star field). + +## Dossiers + +`privacy` is set only for real privacy programmes (`'pia'`, `'ladd'` flags). An airframe with no public registry record gets `registryMissing: true` instead, and `identity.operator` falls back to the callsign's ICAO airline prefix (`mobile/globe/airlines.js`, about 150 operators). diff --git a/mobile/globe/airlines.js b/mobile/globe/airlines.js new file mode 100644 index 000000000..e8e528b49 --- /dev/null +++ b/mobile/globe/airlines.js @@ -0,0 +1,169 @@ +/** + * ICAO airline designators (the three letters that start an airline + * callsign, e.g. AMX021 → Aeroméxico) for about 150 of the world's busiest + * operators. Used to name the operator of a flight when the community + * registry has no record for its airframe. Source: ICAO Doc 8585 designators + * as published by the airlines; names are the common trading names. + */ +const AIRLINES = { + AAL: 'American Airlines', + AAR: 'Asiana Airlines', + ABX: 'ABX Air', + ACA: 'Air Canada', + ADR: 'Air Serbia', + AEA: 'Air Europa', + AEE: 'Aegean Airlines', + AFL: 'Aeroflot', + AFR: 'Air France', + AIC: 'Air India', + AJX: 'Air Japan', + ALK: 'SriLankan Airlines', + AMX: 'Aeroméxico', + ANA: 'All Nippon Airways', + ANZ: 'Air New Zealand', + ASA: 'Alaska Airlines', + ASH: 'Mesa Airlines', + AUA: 'Austrian Airlines', + AVA: 'Avianca', + AWE: 'American Airlines (US Airways)', + AXM: 'AirAsia', + AZA: 'ITA Airways', + AZU: 'Azul', + BAW: 'British Airways', + BCS: 'European Air Transport (DHL)', + BEL: 'Brussels Airlines', + BTI: 'airBaltic', + BOX: 'AeroLogic', + CAL: 'China Airlines', + CCA: 'Air China', + CES: 'China Eastern Airlines', + CFG: 'Condor', + CHH: 'Hainan Airlines', + CKS: 'Kalitta Air', + CLX: 'Cargolux', + CMP: 'Copa Airlines', + CPA: 'Cathay Pacific', + CPZ: 'Compass Airlines', + CSN: 'China Southern Airlines', + CSZ: 'Shenzhen Airlines', + CTN: 'Croatia Airlines', + CXA: 'Xiamen Airlines', + DAL: 'Delta Air Lines', + DHK: 'DHL Air', + DLH: 'Lufthansa', + EDV: 'Endeavor Air', + EIN: 'Aer Lingus', + EJA: 'NetJets', + EJU: 'easyJet Europe', + ELY: 'El Al', + ENY: 'Envoy Air', + ETD: 'Etihad Airways', + ETH: 'Ethiopian Airlines', + EVA: 'EVA Air', + EWG: 'Eurowings', + EXS: 'Jet2', + EZS: 'easyJet Switzerland', + EZY: 'easyJet', + FDX: 'FedEx Express', + FFT: 'Frontier Airlines', + FIN: 'Finnair', + FJI: 'Fiji Airways', + FLE: 'Flair Airlines', + GEC: 'Lufthansa Cargo', + GFA: 'Gulf Air', + GJS: 'GoJet Airlines', + GLO: 'Gol', + GTI: 'Atlas Air', + HAL: 'Hawaiian Airlines', + HVN: 'Vietnam Airlines', + IBE: 'Iberia', + IBS: 'Iberia Express', + ICE: 'Icelandair', + IGO: 'IndiGo', + JAL: 'Japan Airlines', + JBU: 'JetBlue', + JIA: 'PSA Airlines', + JJP: 'Jetstar Japan', + JST: 'Jetstar', + JZA: 'Jazz Aviation (Air Canada Express)', + KAL: 'Korean Air', + KLM: 'KLM Royal Dutch Airlines', + KQA: 'Kenya Airways', + LAN: 'LATAM Airlines', + LDM: 'Lauda Europe', + LOG: 'Loganair', + LOT: 'LOT Polish Airlines', + LXJ: 'Flexjet', + MAS: 'Malaysia Airlines', + MEA: 'Middle East Airlines', + MSR: 'EgyptAir', + NAX: 'Norwegian', + NJE: 'NetJets Europe', + NKS: 'Spirit Airlines', + NOZ: 'Norwegian', + NWG: 'Airwork', + OAW: 'Helvetic Airways', + OMA: 'Oman Air', + PAL: 'Philippine Airlines', + PAC: 'Polar Air Cargo', + PDT: 'Piedmont Airlines', + PGT: 'Pegasus Airlines', + POE: 'Porter Airlines', + QFA: 'Qantas', + QTR: 'Qatar Airways', + QXE: 'Horizon Air', + RAM: 'Royal Air Maroc', + RJA: 'Royal Jordanian', + ROU: 'Air Canada Rouge', + RPA: 'Republic Airways', + RYR: 'Ryanair', + RZO: 'Azores Airlines', + SAS: 'Scandinavian Airlines', + SAA: 'South African Airways', + SBI: 'S7 Airlines', + SCX: 'Sun Country Airlines', + SIA: 'Singapore Airlines', + SKW: 'SkyWest Airlines', + SLK: 'SilkAir', + SVA: 'Saudia', + SWA: 'Southwest Airlines', + SWR: 'Swiss', + SXS: 'SunExpress', + TAM: 'LATAM Brasil', + TAP: 'TAP Air Portugal', + TAR: 'Tunisair', + TCX: 'Thomas Cook Airlines', + THA: 'Thai Airways', + THY: 'Turkish Airlines', + TOM: 'TUI Airways', + TRA: 'Transavia', + TSC: 'Air Transat', + TVF: 'Transavia France', + TVS: 'Smartwings', + UAE: 'Emirates', + UAL: 'United Airlines', + UPS: 'UPS Airlines', + UZB: 'Uzbekistan Airways', + VIR: 'Virgin Atlantic', + VJT: 'VistaJet', + VLG: 'Vueling', + VOI: 'Volaris', + VOZ: 'Virgin Australia', + VTI: 'Vistara', + WJA: 'WestJet', + WIF: 'Widerøe', + WMT: 'Wizz Air Malta', + WUK: 'Wizz Air UK', + WZZ: 'Wizz Air', + XLF: 'XL Airways', +}; + +/** Operator name from a callsign's ICAO airline prefix, or null. */ +export function airlineFromCallsign(callsign) { + const m = /^([A-Z]{3})\d/.exec( + String(callsign || '') + .trim() + .toUpperCase(), + ); + return m ? AIRLINES[m[1]] || null : null; +} diff --git a/mobile/globe/archive.js b/mobile/globe/archive.js new file mode 100644 index 000000000..2c9dcb6f1 --- /dev/null +++ b/mobile/globe/archive.js @@ -0,0 +1,171 @@ +/** + * The bundled recording (DESIGN.md §12.5): a few hours of real recorded + * positions over the busiest regions, captured with + * `node mobile/demo/capture-history.mjs` into mobile/demo/history/*.json. + * + * It ships so the time machine always has real ghosts to replay, even on a + * first run when the device's own recorder holds only minutes. Timestamps + * are the true capture times and are never shifted: the time machine shows + * the recording where it really happened (the director navigates there). + * + * The archive is a second recorder (no expiry, no persistence). `history` + * is a read-only view over both that ghosts, the dossier and search use; on + * a key present in both, the device's own recorder wins. + */ +import { createRecorder } from './recorder.js'; + +// Literal URLs so Vite copies the files into the production build. +const FILES = [ + new URL('../demo/history/nyc.json', import.meta.url).href, + new URL('../demo/history/london.json', import.meta.url).href, + new URL('../demo/history/gulf.json', import.meta.url).href, +]; + +/** Decode one `gev-history/1` file into [{ key, meta, points }]. */ +export function decodeHistory(j) { + if (j?.format !== 'gev-history/1' || !Array.isArray(j.tracks)) return []; + const out = []; + for (const tr of j.tracks) { + const p = typeof tr.p === 'string' ? tr.p.split(',').map(Number) : tr.p; + if (!Array.isArray(p) || p.length < 12) continue; + let t = j.t0; + let lon = 0; + let lat = 0; + let alt = 0; + const points = []; + for (let i = 0; i + 5 < p.length; i += 6) { + t += p[i]; + lon += p[i + 1]; + lat += p[i + 2]; + alt += p[i + 3]; + points.push({ + t: t * 1000, + lon: lon / 1e4, + lat: lat / 1e4, + altM: alt * 10, + headingDeg: p[i + 4], + speed: p[i + 5], + }); + } + out.push({ key: String(tr.k), meta: tr.m || { kind: 'aircraft' }, points }); + } + return out; +} + +export function createArchive() { + const rec = createRecorder({ + persist: false, + archive: true, + windowMs: Infinity, + maxInterpGapS: 11 * 60, + }); + const regions = []; + let loading = null; + + function load() { + if (loading) return loading; + loading = Promise.all( + FILES.map((url) => + fetch(url) + .then((r) => (r.ok ? r.json() : null)) + .catch(() => null), + ), + ).then((files) => { + for (const j of files) { + if (!j) continue; + const tracks = decodeHistory(j); + let start = Infinity; + let end = -Infinity; + for (const tr of tracks) { + rec.merge(tr.key, tr.points, tr.meta); + start = Math.min(start, tr.points[0].t); + end = Math.max(end, tr.points[tr.points.length - 1].t); + } + if (!tracks.length) continue; + regions.push({ + id: j.region, + label: j.label, + bbox: j.bbox, + source: j.source, + start, + end, + tracks: tracks.length, + busiest: busiestInstant(tracks, start, end), + }); + } + return regions; + }); + return loading; + } + + return { + recorder: rec, + load, + get loaded() { + return regions.length > 0; + }, + regions: () => regions.slice(), + range() { + if (!regions.length) return null; + return { + start: Math.min(...regions.map((r) => r.start)), + end: Math.max(...regions.map((r) => r.end)), + regions: regions.map((r) => ({ ...r })), + }; + }, + }; +} + +/** The 5-minute bucket with the most aircraft in the air. */ +function busiestInstant(tracks, start, end) { + const B = 5 * 60_000; + const n = Math.max(1, Math.ceil((end - start) / B)); + const counts = new Array(n).fill(0); + for (const tr of tracks) { + const a = Math.floor((tr.points[0].t - start) / B); + const b = Math.floor((tr.points[tr.points.length - 1].t - start) / B); + for (let i = Math.max(0, a); i <= Math.min(n - 1, b); i++) counts[i]++; + } + let best = 0; + for (let i = 1; i < n; i++) if (counts[i] > counts[best]) best = i; + return { t: start + best * B + B / 2, aircraft: counts[best] }; +} + +/** + * A read-only view over the device's recorder and the archive, with the + * recorder's query surface (covers, snapshotAt, trail, samples, stateAt…). + */ +export function historyView(live, archive) { + const a = archive.recorder; + const pick = (key) => (live.has(key) ? live : a.has(key) ? a : null); + return { + covers: (ms, slack) => live.covers(ms, slack) || a.covers(ms, slack), + has: (key) => live.has(key) || a.has(key), + meta: (key) => live.meta(key) || a.meta(key), + *keys() { + yield* live.keys(); + for (const k of a.keys()) if (!live.has(k)) yield k; + }, + samples(key, from, to) { + const own = live.samples(key, from, to); + return own.length ? own : a.samples(key, from, to); + }, + stateAt(key, ms, opts) { + return live.stateAt(key, ms, opts) || a.stateAt(key, ms, opts); + }, + snapshotAt(ms, opts) { + const own = live.snapshotAt(ms, opts); + if (!a.covers(ms, 60_000)) return own; + const seen = new Set(own.map((s) => s.key)); + for (const s of a.snapshotAt(ms, opts)) if (!seen.has(s.key)) own.push(s); + return own; + }, + trail(key, from, to, max) { + const r = live.trail(key, from, to, max); + return r.length >= 2 ? r : a.trail(key, from, to, max); + }, + events: () => live.events(), + range: () => live.range(), + source: (key) => (pick(key) === a ? 'archive' : 'device'), + }; +} diff --git a/mobile/globe/entities.js b/mobile/globe/entities.js index f0ba2e511..a3d176b5f 100644 --- a/mobile/globe/entities.js +++ b/mobile/globe/entities.js @@ -12,6 +12,7 @@ * owners opted out (PIA / LADD) or that have no public registration are not * named beyond what their transponder broadcasts. */ +import { airlineFromCallsign } from './airlines.js'; import { twoline2satrec } from 'satellite.js'; import { findNextIssPass, lookAnglesAt } from '../../src/data/issPass.js'; import { satPosition } from './layers/orbit.js'; @@ -324,13 +325,13 @@ export function createEntities(env) { const ladd = Boolean(r?.ladd || meta.ladd); const identity = pia || ladd ? null : await aircraftIdentity(key, callsign); const hasPublic = Boolean(identity?.type?.registration || r?.registration); - const privacy = pia - ? 'pia' - : ladd - ? 'ladd' - : identity?.typeFetched && !hasPublic - ? 'no-public-identity' - : null; + // Only real privacy programmes (PIA / LADD flags) withhold identity. A + // missing registry record is just that, and is said neutrally. + const privacy = pia ? 'pia' : ladd ? 'ladd' : null; + const registryMissing = Boolean( + !privacy && identity?.typeFetched && !hasPublic, + ); + const prefixOperator = privacy ? null : airlineFromCallsign(callsign); // The server's full track can be slow (or down): the dossier waits at // most 2.5 s for it, then uses the recorder's own samples. const recorded = recorder.samples(key); @@ -396,10 +397,12 @@ export function createEntities(env) { kind, title: callsign || key.toUpperCase(), subtitle: [ - privacy ? null : identity?.route?.airline, + privacy ? null : identity?.route?.airline || prefixOperator, typeName, reg, - altM != null ? `${Math.round((altM * M_TO_FT) / 100) * 100} ft` : null, + altM != null + ? `${Math.round((Math.max(0, altM) * M_TO_FT) / 100) * 100} ft` + : null, ] .filter(Boolean) .join(' · '), @@ -413,7 +416,9 @@ export function createEntities(env) { : {}), ...(identity?.route?.airline && !privacy ? { operator: identity.route.airline } - : {}), + : prefixOperator + ? { operator: prefixOperator } + : {}), ...(identity?.route && !privacy ? { route: `${identity.route.origin.code} → ${identity.route.destination.code}`, @@ -457,6 +462,7 @@ export function createEntities(env) { sources, ...(trackPending ? { trackPending: true } : {}), ...(privacy ? { privacy } : {}), + ...(registryMissing ? { registryMissing: true } : {}), }; } @@ -954,6 +960,31 @@ export function createEntities(env) { relation: 'in moment', }, ...others, + // The sealed captures that caught it, and the place it flew over. + ...(m.captures || []) + .filter((c) => + new RegExp( + `${tr.label.split(/[\s(-]/)[0]}|${tr.kind === 'helicopter' ? 'helicopter|helo' : 'aircraft'}`, + 'i', + ).test(`${c.title} ${c.place || ''}`), + ) + .slice(0, 3) + .map((c) => ({ + id: `capture:${m.id}:${c.id}`, + kind: 'capture', + title: c.title, + relation: 'seen in sealed capture', + })), + ...(Number.isFinite(cur?.lat) + ? [ + { + id: `place:${slug(localPlace(cur.lat, cur.lon).name)}`, + kind: 'place', + title: localPlace(cur.lat, cur.lon).name, + relation: 'over', + }, + ] + : []), ], sources: [ { diff --git a/mobile/globe/imagery.js b/mobile/globe/imagery.js index 2d9407301..f2fb3e4d3 100644 --- a/mobile/globe/imagery.js +++ b/mobile/globe/imagery.js @@ -9,6 +9,7 @@ import * as Cesium from 'cesium'; import { createEsriImagery } from '../../src/maps/imagery.js'; import { createKeylessTerrain } from '../../src/maps/terrain.js'; import { loadPhotorealisticTileset } from '../../src/maps/google3d.js'; +import { subsolarPoint } from './geo.js'; /** NASA GIBS VIIRS Black Marble (2016), Web Mercator, keyless, CORS-enabled. */ export const BLACK_MARBLE_URL = @@ -20,6 +21,28 @@ const LIGHT_FULL_ABOVE_M = 2_500_000; /** Cesium's night side keeps 0.3 of the lit colour (GlobeFS diffuse floor). */ const NIGHT_DIFFUSE_FLOOR = 0.3; const NIGHT_LIGHTS_GAIN = 1.3; +/** + * Close-in night grade. Below ~400 km Cesium's lighting is faded out and the + * 500 m Black Marble mosaic is only a blur, so a night-side close-up shows the + * Esri day mosaic graded toward night (darker, desaturated, cooler) with a + * soft glow of the real city lights over it: the city stays readable at any + * hour. The sun is taken from the scene clock, so a Moment keeps the lighting + * of its own time. + */ +const GRADE = Object.freeze({ + brightness: 0.5, + contrast: 1.18, + saturation: 0.38, + gamma: 0.9, + hue: 0.04, + glow: 0.3, +}); +/** + * Terrain watchdog: when the globe has had nothing to draw for this long + * while it is on screen (the keyless terrain host throttles under load, and + * Cesium then shows only the star field), fall back to the flat ellipsoid. + */ +const TERRAIN_STALL_MS = 5000; export const BASE_CREDITS = Object.freeze([ { @@ -104,15 +127,45 @@ export function createImagery(viewer, { terrain = true, google = {} } = {}) { ), }; + let stallTimer = 0; if (terrain) { createKeylessTerrain().then(({ provider, fallback }) => { if (viewer.isDestroyed()) return; viewer.terrainProvider = provider; state.terrainCredit = !fallback; scene.requestRender(); + if (!fallback) watchTerrain(provider); }); } + function watchTerrain(provider) { + let emptySince = 0; + stallTimer = setInterval(() => { + if (viewer.isDestroyed() || viewer.terrainProvider !== provider) + return clearInterval(stallTimer); + // Only while the globe is on screen (a paused globe proves nothing). + if (document.hidden || !globe.show || !viewer.useDefaultRenderLoop) { + emptySince = 0; + return; + } + // Private, read defensively: how many tiles the globe could draw. + const n = globe._surface?._tilesToRender?.length; + if (n == null || n > 0) { + emptySince = 0; + return; + } + scene.requestRender(); + if (!emptySince) emptySince = performance.now(); + else if (performance.now() - emptySince > TERRAIN_STALL_MS) { + clearInterval(stallTimer); + console.warn('[globe] terrain stalled; using the flat ellipsoid'); + viewer.terrainProvider = new Cesium.EllipsoidTerrainProvider(); + state.terrainCredit = false; + scene.requestRender(); + } + }, 1500); + } + async function ensureGoogle() { if (!state.googleWanted || state.google || state.googleLoading) return; state.googleLoading = loadPhotorealisticTileset(Cesium, { @@ -162,10 +215,74 @@ export function createImagery(viewer, { terrain = true, google = {} } = {}) { night.nightAlpha = Math.min(1, Math.max(0, (h - 300_000) / 700_000)); } + /** + * Night grade for close-in views (see GRADE): strength follows the sun's + * elevation under the camera and fades out as Cesium's own lighting fades + * in with altitude. + */ + let gradeK = -1; + let gradeStrength = 0; + function grade() { + if (state.nightMode) return; + // The camera's own height, every frame (the view handler is throttled). + const h = scene.camera.positionCartographic.height; + const close = + 1 - + Math.min( + 1, + Math.max( + 0, + (h - LIGHT_FULL_BELOW_M) / (LIGHT_FULL_ABOVE_M - LIGHT_FULL_BELOW_M), + ), + ); + let k = 0; + if (close > 0) { + const c = scene.camera.positionCartographic; + const ms = Cesium.JulianDate.toDate(viewer.clock.currentTime).getTime(); + const sun = subsolarPoint(ms); + const D = Math.PI / 180; + const lat = c.latitude; + const dLon = c.longitude - sun.lon * D; + const sinEl = + Math.sin(lat) * Math.sin(sun.lat * D) + + Math.cos(lat) * Math.cos(sun.lat * D) * Math.cos(dLon); + const el = Math.asin(Math.max(-1, Math.min(1, sinEl))) / D; + // Civil twilight: full grade once the sun is 8° down, none at +4°. + const night = Math.min(1, Math.max(0, (4 - el) / 12)); + k = Math.round(night * close * 50) / 50; + } + const glow = GRADE.glow * k * Math.min(1, Math.max(0, (h - 40e3) / 160e3)); + const key = k * 1000 + Math.round(glow * 50); + if (key === gradeK) return; + gradeK = key; + gradeStrength = k; + const mix = (a, b) => a + (b - a) * k; + day.brightness = mix(1, GRADE.brightness); + day.contrast = mix(1, GRADE.contrast); + day.saturation = mix(1, GRADE.saturation); + day.gamma = mix(1, GRADE.gamma); + day.hue = mix(0, GRADE.hue); + if (k > 0) { + // Lighting is faded out this close: one glow alpha for both sides. + // Below ~150 km a whole lit city is one 500 m blur, so the glow fades + // out and the graded day mosaic carries the night alone. + night.dayAlpha = glow; + night.nightAlpha = glow; + night.brightness = 1.6; + } else { + night.dayAlpha = 0; + tuneNight(); + } + scene.requestRender(); + } + const removeGradeListener = scene.preRender.addEventListener(grade); + /** Swap globe ↔ photorealistic tiles by camera height. */ function onHeight(heightM) { state.heightM = heightM; + gradeK = -1; tuneNight(); + grade(); if (!state.googleWanted) return; const close = heightM < GOOGLE_3D_MAX_HEIGHT_M; if (close) ensureGoogle(); @@ -180,11 +297,22 @@ export function createImagery(viewer, { terrain = true, google = {} } = {}) { /** Night mode: Black Marble everywhere, unshaded (lighting off). */ function setNightMode(on) { state.nightMode = Boolean(on); + if (on) { + day.brightness = 1; + day.contrast = 1; + day.saturation = 1; + day.gamma = 1; + day.hue = 0; + } + gradeK = -1; globe.enableLighting = !on; night.dayAlpha = on ? 1 : 0; night.nightAlpha = 1; night.brightness = on ? 1.25 : night.brightness; - if (!on) tuneNight(); + if (!on) { + tuneNight(); + grade(); + } scene.requestRender(); } @@ -208,6 +336,14 @@ export function createImagery(viewer, { terrain = true, google = {} } = {}) { onHeight, setNightMode, credits, + /** Night-grade strength 0..1 (0 by day or from orbit). */ + get nightGrade() { + return gradeStrength; + }, + destroy() { + removeGradeListener(); + clearInterval(stallTimer); + }, get googleActive() { return Boolean(state.google?.show); }, diff --git a/mobile/globe/index.js b/mobile/globe/index.js index d2efcc24f..fb58ebff3 100644 --- a/mobile/globe/index.js +++ b/mobile/globe/index.js @@ -85,6 +85,7 @@ import { createCompositor } from './compositor.js'; import { haversineKm } from './geo.js'; import { applyModelAtmosphereWorkaround } from '../../src/app/atmosphereCompat.js'; import { createRecorder } from './recorder.js'; +import { createArchive, historyView } from './archive.js'; import { createDetector } from './detect.js'; import { circlingCard, quakeClusterCard } from './detectCards.js'; import { createGhosts } from './ghosts.js'; @@ -255,7 +256,7 @@ function tuneScene(viewer) { globe.depthTestAgainstTerrain = false; globe.preloadSiblings = false; globe.loadingDescendantLimit = 12; - globe.tileCacheSize = 120; + globe.tileCacheSize = 320; globe.showSkirts = true; const ssc = scene.screenSpaceCameraController; @@ -392,12 +393,15 @@ export async function createGlobe(container, options = {}) { }; // ── Recorder, detector, history, Moments ───────────────────────── const recorder = createRecorder({ persist: opts.record !== false }); + // The bundled real recording, so the time machine always has ghosts. + const archive = createArchive(); + const history = historyView(recorder, archive); const detector = createDetector(recorder); let momentState = null; // { moment, idx, prevT, restore } let momentToken = 0; function timeMode(ms, isLive) { if (momentState) return 'moment'; - if (!isLive && recorder.covers(ms, 90_000)) return 'history'; + if (!isLive && history.covers(ms, 90_000)) return 'history'; return 'none'; } const ingestFeed = (feed, kind) => @@ -465,7 +469,7 @@ export async function createGlobe(container, options = {}) { const layers = buildLayers(ctx, feeds); const pins = createPins({ scene, requestRender }); const compositor = createCompositor({ feeds }); - const ghosts = createGhosts({ scene, recorder, requestRender }); + const ghosts = createGhosts({ scene, recorder: history, requestRender }); const stage = createStage({ scene, requestRender, emit }); const reactions = createReactions({ host, @@ -487,6 +491,13 @@ export async function createGlobe(container, options = {}) { ]) f.get().catch(() => {}); }, 4000); + // The bundled recording loads after the first frame (≈ 3 MB of JSON). + setTimeout(() => { + archive + .load() + .then(() => emit('history', api.history())) + .catch(() => {}); + }, 5000); let viewerPos = opts.observer ? { lon: opts.observer.lon, lat: opts.observer.lat } : null; @@ -725,7 +736,9 @@ export async function createGlobe(container, options = {}) { pitch = -90, duration, targetHeight, + eye = false, } = {}) { + // eye: lon/lat/height place the camera itself (not the point it looks at). if (!Number.isFinite(lon) || !Number.isFinite(lat)) return Promise.reject(new TypeError('flyTo needs lon and lat')); const reduceMotion = globalThis.matchMedia?.( @@ -739,7 +752,7 @@ export async function createGlobe(container, options = {}) { updateView(); resolve(); }; - if (pitch <= -89.5) { + if (pitch <= -89.5 || eye) { camera.flyTo({ destination: Cesium.Cartesian3.fromDegrees(lon, lat, height), orientation: { heading: h, pitch: p, roll: 0 }, @@ -1152,6 +1165,13 @@ export async function createGlobe(container, options = {}) { const trackCache = new Map(); async function trackOf(key, layer) { key = String(key).toLowerCase(); + // A contact known only from the bundled recording: its recorded track + // (a server track would describe today's flight, not that one). + if (!recorder.has(key) && archive.recorder.has(key)) { + const pts = archive.recorder.samples(key); + pts.source = 'Bundled recording (real positions, see capture time)'; + return pts; + } const cached = trackCache.get(key); // A failed fetch is remembered for 5 min so a dead route costs nothing. const ttl = cached?.points?.length ? 60_000 : 5 * 60_000; @@ -1216,7 +1236,7 @@ export async function createGlobe(container, options = {}) { } const entities = createEntities({ feeds, - recorder, + recorder: history, detector, situations: () => { const m = new Map(lastSituations); @@ -1464,9 +1484,49 @@ export async function createGlobe(container, options = {}) { entities: r.entities, points: r.points, bytes: r.bytes, + // The bundled real recording: { start, end, regions: [{ id, label, + // bbox, start, end, tracks, busiest: { t, aircraft } }] } or null. + archive: archive.range(), }; }, + /** + * Recorded contacts near a point at an instant (device recorder and the + * bundled recording): [{ id, key, kind, title, lon, lat, altM }]. + */ + historyNear(ms, lon, lat, km = 100) { + const dLat = km / 111; + const dLon = km / (111 * Math.max(0.2, Math.cos((lat * Math.PI) / 180))); + const rect = { + west: lon - dLon, + east: lon + dLon, + south: lat - dLat, + north: lat + dLat, + }; + return history + .snapshotAt(ms, { rect }) + .map((s) => ({ + id: `${s.meta?.layer || 'flights'}:${s.key}`, + key: s.key, + kind: s.meta?.kind || 'aircraft', + title: s.meta?.callsign || s.meta?.title || s.key.toUpperCase(), + lon: s.lon, + lat: s.lat, + altM: s.altM, + d: Math.hypot( + s.lat - lat, + (s.lon - lon) * Math.cos((lat * Math.PI) / 180), + ), + })) + .sort((a, b) => a.d - b.d); + }, + + /** Resolves once the bundled recording is loaded → history().archive. */ + async loadHistory() { + await archive.load(); + return archive.range(); + }, + trackOf(entityId) { const ref = entities.parseRef(entityId); return trackOf(ref?.key ?? entityId, ref?.layer); @@ -1941,7 +2001,7 @@ export async function createGlobe(container, options = {}) { /** Internals for dev harnesses and tests (not part of the contract). */ get debug() { - return { recorder, detector, stage, ghosts }; + return { recorder, archive, detector, stage, ghosts }; }, get viewer() { diff --git a/mobile/globe/quality.js b/mobile/globe/quality.js index 4c673b903..f8211f964 100644 --- a/mobile/globe/quality.js +++ b/mobile/globe/quality.js @@ -48,7 +48,7 @@ export function createGovernor( Math.min(viewer.canvas.clientWidth, viewer.canvas.clientHeight) < 600; const base = mode === 'high' ? 1.5 : compact ? 2 : 1.5; globe.maximumScreenSpaceError = base * Math.max(1, scale); - globe.tileCacheSize = mode === 'low' || lowPower ? 60 : 120; + globe.tileCacheSize = mode === 'low' || lowPower ? 100 : 320; // The first step down keeps bloom; the second (or being slow at the // floor) drops it. post?.setBloomAllowed( diff --git a/mobile/globe/recorder.js b/mobile/globe/recorder.js index 6f06c0ed4..171420da7 100644 --- a/mobile/globe/recorder.js +++ b/mobile/globe/recorder.js @@ -154,6 +154,8 @@ export function createRecorder({ windowMs = 6 * 3600_000, maxSamples = 1_200_000, persist = true, + archive = false, + maxInterpGapS = MAX_INTERP_GAP_S, } = {}) { const tracks = new Map(); let total = 0; @@ -313,6 +315,8 @@ export function createRecorder({ } function compactAll() { + // An archive (a bundled recording) is already sparse and never expires. + if (archive) return; const nowS = Math.floor(Date.now() / 1000); let dropBefore = nowS - Math.floor(windowMs / 1000); const fineFrom = nowS - FINE_WINDOW_S; @@ -402,12 +406,14 @@ export function createRecorder({ return loading; } - const flushTimer = setInterval(() => flush().catch(() => {}), 60_000); - const compactTimer = setInterval(compactAll, 5 * 60_000); + const flushTimer = archive + ? 0 + : setInterval(() => flush().catch(() => {}), 60_000); + const compactTimer = archive ? 0 : setInterval(compactAll, 5 * 60_000); const onHide = () => { if (document.visibilityState === 'hidden') flush().catch(() => {}); }; - document.addEventListener('visibilitychange', onHide); + if (!archive) document.addEventListener('visibilitychange', onHide); /** Interpolated state of one track at `ms`, or null outside its record. */ function stateAt(tr, ms, { holdMs = 45_000 } = {}) { @@ -434,7 +440,7 @@ export function createRecorder({ const a = tr.sample(i - 1); const b = tr.sample(i); const gap = (b.t - a.t) / 1000; - if (gap > MAX_INTERP_GAP_S) return null; + if (gap > maxInterpGapS) return null; const f = (ms - a.t) / (b.t - a.t || 1); return { t: ms, diff --git a/mobile/main.js b/mobile/main.js index 8ea1ce7c8..3f9782235 100644 --- a/mobile/main.js +++ b/mobile/main.js @@ -38,7 +38,7 @@ import { createMomentPlayer } from './ui/moment.js'; import { createDirector } from './ui/director.js'; import { social, callSocial } from './ui/socialBridge.js'; import { PLACES } from './ui/shim3.js'; -import { distKm, llShort, fmtKm } from './ui/bands.js'; +import { distKm, llShort } from './ui/bands.js'; const app = $('#app'); const stage = $('#stage'); @@ -309,7 +309,7 @@ const fetchJson = (url) => .catch(() => null); // No snapshot on this device yet: the bundled one (real data, see capturedAt). if (!snap) - fetchJson('/mobile/demo/snapshot.json').then((j) => { + fetchJson(new URL('./demo/snapshot.json', import.meta.url).href).then((j) => { const list = Array.isArray(j) ? j : j?.situations; if (!list?.length || situationsCache) return; const at = j?.capturedAt || null; @@ -325,9 +325,9 @@ if (!snap) } }); // Today's Moment paints from the bundle before the globe is up. -fetchJson('/mobile/demo/moments/empire-state.json').then( - (m) => m?.tracks && today.setMoment(m), -); +fetchJson( + new URL('./demo/moments/empire-state.json', import.meta.url).href, +).then((m) => m?.tracks && today.setMoment(m)); // Distances appear by themselves when location was already granted. navigator.permissions @@ -463,10 +463,21 @@ async function clipMoment({ start, end }) { const g = await globeReady; const c = lastCam || { lon: -73.98, lat: 40.75, height: 400e3 }; const radius = Math.max(15, Math.min(600, (c.height || 400e3) / 1000 / 1.5)); - const near = g - .contactsNear(c.lon, c.lat, radius) - .filter((x) => /aircraft|helicopter|military|ship|vessel/.test(x.kind)) - .slice(0, 6); + // What the recorder (or the bundled recording) holds for that range, + // else whatever is live around the camera. + const recorded = g + .historyNear((start + end) / 2, c.lon, c.lat, radius) + .slice(0, 12); + const fromRecord = recorded.length >= 2; + const near = fromRecord + ? recorded + : g + .contactsNear(c.lon, c.lat, radius) + .filter((x) => /aircraft|helicopter|military|ship|vessel/.test(x.kind)) + .slice(0, 6); + const archive = g.history()?.archive; + const inArchive = + archive && start >= archive.start - 60e3 && end <= archive.end + 60e3; const tracks = ( await Promise.all( near.map(async (x) => { @@ -500,8 +511,21 @@ async function clipMoment({ start, end }) { let place = PLACES.map((p) => ({ p, d: distKm(c, p) })).sort( (a, b) => a.d - b.d, )[0]; + // Name the clip honestly: a landmark only when the view is that close, + // else the recording's region, else coordinates. + const region = inArchive + ? archive.regions?.find( + (r) => + c.lat >= r.bbox.south && + c.lat <= r.bbox.north && + c.lon >= r.bbox.west && + c.lon <= r.bbox.east, + ) + : null; const placeName = - place && place.d < radius ? place.p.name : llShort(c.lat, c.lon, 2); + place && place.d < Math.min(radius, 25) + ? place.p.name + : region?.label || llShort(c.lat, c.lon, 2); const m = { id: `clip-${Math.round(start / 1000).toString(36)}`, title: `Clip · ${placeName}`, @@ -533,7 +557,11 @@ async function clipMoment({ start, end }) { { name: g.isStub ? 'Simulated recorder (offline stub)' - : 'On-device recorder', + : inArchive + ? 'Bundled recording (real positions, captured ' + + new Date(archive.start).toISOString().slice(0, 10) + + ')' + : 'On-device recorder', detail: `${tracks.length} tracks · ${evts.length} events · ${new Date(start).toISOString().slice(11, 16)}–${new Date(end).toISOString().slice(11, 16)}Z`, }, ], @@ -677,25 +705,18 @@ globeReady applyTab('live'); } const subj = s.moment?.subject; - const c = subj - ? { lon: subj.lon, lat: subj.lat, height: 4200 } - : s.camera || {}; - const height = Math.max(2500, Math.min(c.height || 3000, 6000)); - // On a phone the room sheet covers the lower half: lift the place - // into the visible top of the map so the hearts rise in view. - let lat = c.lat ?? s.lat; - if (!isTwoPane()) { - const r = stage.getBoundingClientRect(); - const mPerPx = (height * 0.364) / (Math.min(r.width, r.height) / 2); - lat -= (mPerPx * r.height * 0.27) / 111320; - } - g.flyTo({ - lon: c.lon ?? s.lon, - lat, - height, - pitch: -40, - duration: 1.8, - }); + const c = subj ? { lon: subj.lon, lat: subj.lat } : s.camera || {}; + const lon = c.lon ?? s.lon; + const lat = c.lat ?? s.lat; + if (!Number.isFinite(lon) || !Number.isFinite(lat)) return; + frameForSheet( + { lon, lat }, + { + distM: subj + ? 3000 + : Math.max(2500, Math.min((c.height || 3000) * 0.9, 6000)), + }, + ); }, onCredits: () => chrome.openCredits(), onLocate: () => locate(), @@ -814,6 +835,10 @@ globeReady today.setSituations(cached); } } + // The director is ready as soon as the shell is: a presenter must never + // wait on the first live situations() call (it can take a minute). + director = buildDirector(g); + director.bindTripleTap(feed.titleEl); today.setGlobe(g); await feed.load({ quiet: primed }); const sits = await getSituations(); @@ -837,8 +862,6 @@ globeReady .evaluate({ quiet: true }) .then(() => setTimeout(() => watch.evaluate(), 4000)); applyTab(current); - director = buildDirector(g); - director.bindTripleTap(feed.titleEl); // Deep links: #s=, #m=, #e= const hs = /#s=([^&]+)/.exec(location.hash); @@ -941,8 +964,91 @@ async function openThreadFor(s) { }); } +/** + * An oblique view of a place, framed into the part of the map a sheet leaves + * visible: on a phone the medium sheet covers the lower half, so the place + * sits in the upper third; on iPad (sheets in the leading pane) a little + * below the centre, leaving room above for rising reactions. + */ +function frameForSheet( + { lon, lat }, + { distM = 3000, rayDeg = 30, heading = 32, duration = 1.6 } = {}, +) { + if (!globe) return Promise.resolve(); + const r = stage.getBoundingClientRect(); + const W = r.width || 1; + const H = r.height || 1; + const fov = globe.raw?.viewer?.camera?.frustum?.fov ?? Math.PI / 3; + const tanHalfV = W > H ? (Math.tan(fov / 2) * H) / W : Math.tan(fov / 2); + const yFrac = isTwoPane() ? 0.56 : 0.27; + const above = Math.atan((0.5 - yFrac) * 2 * tanHalfV) * (180 / Math.PI); + const pitch = Math.max(-88, -rayDeg - above); + const ray = (rayDeg * Math.PI) / 180; + const back = distM * Math.cos(ray); + const hd = ((heading + 180) * Math.PI) / 180; + return globe.flyTo({ + lon: + lon + (back * Math.sin(hd)) / (111320 * Math.cos((lat * Math.PI) / 180)), + lat: lat + (back * Math.cos(hd)) / 111320, + height: 12 + distM * Math.sin(ray), + heading, + pitch, + eye: true, + duration, + }); +} + +/** + * The busiest region of the bundled recording: a camera over it and the + * instant to start replaying (20 min before its busiest 5 minutes). + */ +async function busiestRecording(g) { + const arch = (await g.loadHistory()) || g.history()?.archive; + const regions = arch?.regions || []; + if (!regions.length) return null; + const r = regions + .slice() + .sort((a, b) => (b.busiest?.aircraft || 0) - (a.busiest?.aircraft || 0))[0]; + const b = r.bbox; + const lat = (b.south + b.north) / 2; + const widthKm = + (b.east - b.west) * 111 * Math.cos((lat * Math.PI) / 180) * 0.62; + return { + label: r.label, + from: Math.max(r.start, (r.busiest?.t ?? r.start) - 20 * 60e3), + camera: { + lon: (b.west + b.east) / 2, + // A little south: the ribbon and tab bar cover the bottom of the map. + lat: lat - (b.north - b.south) * 0.12, + height: Math.max(160e3, Math.min(700e3, widthKm * 1000 * 0.9)), + }, + }; +} + +/** Director: a steady stream of reactions rising from a place. */ +let reactTimer = 0; +function reactionStream(g, { lon, lat }, ms = 15000) { + clearInterval(reactTimer); + const kinds = ['heart', 'heart', 'fire', 'heart', 'eyes', 'wow', 'heart']; + const until = Date.now() + ms; + let i = 0; + reactTimer = setInterval(() => { + if (Date.now() > until) return clearInterval(reactTimer); + g.react({ + lon: lon + (Math.random() - 0.5) * 0.006, + lat: lat + (Math.random() - 0.5) * 0.005, + kind: kinds[i++ % kinds.length], + count: 2 + Math.round(Math.random() * 2), + }); + }, 650); +} + /* ---------------- Director (demo mode) ---------------- */ function closeAll() { + clearInterval(reactTimer); + // Capture covers the globe (and on iPad the whole stage): leave it. + if (current === 'capture') applyTab(isTwoPane() ? 'today' : 'live'); + watch.clearBanners(); player?.close(); dossier?.close(); sky?.close(); @@ -1012,16 +1118,15 @@ function buildDirector(g) { run: async () => { closeAll(); const m = await hero(); - // Show the globe first, then the Live lane over it. - const sit = - (await getSituations()).find((x) => x.momentId === m.id) || m; + // The Live lane over the globe: the room frames Midtown above the + // sheet (onShowGlobe) and hearts rise from the city. + // Never wait on a cold live situations() call. + const list = + situationsCache || + (await Promise.race([getSituations(), settle(1500)])) || + []; + const sit = list.find((x) => x.momentId === m.id) || m; if (!isTwoPane()) selectTab('live'); - await g.flyTo({ - lon: m.lon, - lat: m.lat - 0.004, - height: 4200, - duration: 1.2, - }); const ok = ( await callSocial('openRoom', sit, { lane: 'live', @@ -1029,17 +1134,10 @@ function buildDirector(g) { }) ).ok; if (!ok) await openRoom(m, { lane: 'live' }); - for (let i = 0; i < 6; i += 1) - setTimeout( - () => - g.react({ - lon: m.lon + (Math.random() - 0.5) * 0.02, - lat: m.lat + (Math.random() - 0.5) * 0.02, - kind: ['heart', 'fire', 'heart', 'eyes', 'heart', 'wow'][i], - count: 3, - }), - 300 + i * 260, - ); + const subj = m.subject || { lon: m.lon, lat: m.lat }; + await settle(300); + await frameForSheet(subj, { distM: 3000, duration: 1.2 }); + reactionStream(g, subj); }, }, { @@ -1109,18 +1207,33 @@ function buildDirector(g) { }, }, { - title: 'Time machine: −3 h at 60×', - note: 'The recorder replays where everything actually was', + title: 'Time machine at 60×', + note: 'Replays a real recording: where everything actually was', icon: 'clock', run: async () => { closeAll(); selectTab('live'); - g.flyTo({ lon: -62, lat: 38, height: 4200e3, duration: 1.4 }); + const r = await busiestRecording(g); + if (r) { + await g.flyTo({ ...r.camera, duration: 1.4 }); + await settle(300); + chrome.ribbon.jump(r.from, { play: true, speed: 60 }); + toast( + `Replaying a real recording · ${r.label} · ${new Date(r.from).toUTCString().slice(5, 11)}`, + { icon: icon('clock') }, + ); + return; + } + // No bundled recording: the true start of this device's history. + const h = g.history(); + g.flyTo({ lon: -73.98, lat: 40.2, height: 420e3, duration: 1.4 }); await settle(450); - chrome.ribbon.jump(Date.now() - 3 * 3600e3, { - play: true, - speed: 60, - }); + chrome.ribbon.jump( + Number.isFinite(h?.start) + ? Math.max(h.start, Date.now() - 3 * 3600e3) + : Date.now() - 15 * 60e3, + { play: true, speed: 60 }, + ); }, }, { @@ -1130,14 +1243,19 @@ function buildDirector(g) { run: async () => { closeAll(); selectTab('live'); - await g.flyTo({ + const r = await busiestRecording(g); + const cam = r?.camera || { lon: -73.95, lat: 40.72, height: 260e3, + }; + await g.flyTo({ + ...cam, + height: Math.min(cam.height, 300e3), duration: 1.2, }); await settle(350); - const t0 = Date.now() - 50 * 60e3; + const t0 = r ? r.from + 6 * 60e3 : Date.now() - 50 * 60e3; chrome.ribbon.jump(t0 + 9 * 60e3); chrome.ribbon.selectRange(t0, t0 + 18 * 60e3); }, @@ -1149,26 +1267,22 @@ function buildDirector(g) { run: async () => { closeAll(); applyTab('today'); - const s = (await getSituations()).find((x) => - /squawk/.test(x.kind || ''), - ); - const home = watch.home(); - const d = s ? distKm(home, s) : NaN; - watch.banner({ - title: s?.title || 'Squawk 7700', - body: `${s?.place || 'Emergency squawk'}${Number.isFinite(d) ? ` · ${fmtKm(d)} from ${home.label || home.name}` : ''} · your rule: any emergency squawk`, - band: 'sky', - onTap: () => s && openSituation(s), - }); + await settle(250); + await watch.demoAlert(); }, }, { title: 'Search to dossier', - note: '“7700”, “ISS”, “Piccadilly”', + note: '“7700” when a squawk is live, else “ISS”; then any result', icon: 'search', run: async () => { closeAll(); - search.open('7700'); + // “7700” only reads well while an aircraft is squawking it. + const hits = await g.search('7700').catch(() => []); + const squawk = hits.some((x) => + /aircraft|helicopter|military/.test(x.kind), + ); + search.open(squawk ? '7700' : 'ISS'); }, }, ], diff --git a/mobile/styles/moment.css b/mobile/styles/moment.css index dc59c14b2..30f514677 100644 --- a/mobile/styles/moment.css +++ b/mobile/styles/moment.css @@ -794,3 +794,187 @@ visibility: hidden; } } + +/* ------------------------------------------------------------------ */ +/* Tablet leading pane: header · on the record · chat (DESIGN §12.4) */ +/* ------------------------------------------------------------------ */ + +.mp-feed, +.mp-ch { + display: none; +} + +.mp-fh { + display: flex; +} + +.mp-fh, +.mp-ch { + align-items: center; + justify-content: space-between; + gap: 8px; + padding: 0 16px; + color: var(--ink-3); + font-size: 0.5625rem; + font-weight: 700; + letter-spacing: 0.1em; +} + +.mp-fh > span:first-child, +.mp-ch > span:first-child { + display: inline-flex; + align-items: center; + gap: 6px; + color: var(--ink-2); +} + +.mp-fh .i { + font-size: 0.85rem; +} + +.mp-feed-list { + display: grid; + gap: 8px; + padding: 8px 14px 12px; + overflow-y: auto; + overscroll-behavior: contain; + scrollbar-width: thin; +} + +.mp-fi.in { + animation: msg-in 420ms var(--spring) both; +} + +.mp-fcap { + display: flex; + gap: 10px; + width: 100%; + padding: 6px; + border-radius: 14px; + text-align: left; + color: var(--ink); + background: rgba(235, 199, 119, 0.06); + box-shadow: inset 0 0 0 0.5px rgba(235, 199, 119, 0.35); +} + +.mp-fcap.first { + background: rgba(235, 199, 119, 0.1); + box-shadow: + inset 0 0 0 1px rgba(235, 199, 119, 0.8), + 0 0 22px rgba(235, 199, 119, 0.14); +} + +.mp-fcap .cone-thumb { + flex: none; + width: 96px; + border-radius: 10px; +} + +.mp-fbody { + flex: 1; + min-width: 0; + display: flex; + flex-direction: column; + justify-content: center; + gap: 3px; +} + +.mp-fbody .fe { + display: inline-flex; + align-items: center; + gap: 5px; + color: var(--b-inside); + font-size: 0.5625rem; + font-weight: 700; + letter-spacing: 0.1em; + --seal-ink: #2a1a00; +} + +.mp-fbody b { + font-size: var(--t-foot); + font-weight: 650; + line-height: 1.25; +} + +.mp-fbody small { + font-family: var(--mono); + font-size: 0.5625rem; + color: var(--ink-3); +} + +@media (min-width: 600px) { + .mp-side-title { + flex: none; + } + + .mp-feed { + display: flex; + flex-direction: column; + flex: 0 1 auto; + min-height: 0; + max-height: 46%; + margin-top: 6px; + border-top: 0.5px solid var(--hairline); + padding-top: 12px; + } + + .mp-ch { + display: flex; + flex: none; + padding-top: 12px; + border-top: 0.5px solid var(--hairline); + } + + /* Everything at once on a tablet: no segmented switch. */ + .mp-side-head, + .mp-pane[data-pane='record'], + .mp-pane[data-pane='captures'] { + display: none !important; + } + + .mp-pane[data-pane='chat'] { + display: flex !important; + flex-direction: column; + -webkit-mask-image: none; + mask-image: none; + padding-top: 6px; + } + + .mp-pane[data-pane='chat'] .mp-chat, + .mp-pane[data-pane='chat'] .mp-ext { + flex: 1; + min-height: 0; + } + + /* Chat reads from the top, newest at the bottom. */ + .mp-chat { + justify-content: flex-start; + padding-top: 4px; + } + + .mp-ext { + display: flex; + flex-direction: column; + } + + .co.co-tall { + flex: 1; + min-height: 0; + justify-content: flex-start; + } + + .co.co-tall .co-list { + flex: 1; + min-height: 0; + justify-content: flex-start; + overflow-y: auto; + scrollbar-width: none; + pointer-events: auto; + -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 18px); + mask-image: linear-gradient(to bottom, transparent 0, #000 18px); + } + + .co.co-tall .cl.old { + opacity: 0.7; + } +} diff --git a/mobile/styles/shell.css b/mobile/styles/shell.css index d3f58d176..e2e4ad5e4 100644 --- a/mobile/styles/shell.css +++ b/mobile/styles/shell.css @@ -1003,3 +1003,52 @@ input[type='range'].slider::-moz-range-thumb { opacity: 0; } } + +/* Content scrolls under the floating glass: a soft scrim behind the tab bar + (and its accessory) keeps the last rows legible as they pass beneath. */ +.app:is([data-tab='today'], [data-tab='rooms'], [data-tab='you']) + .tabbar::before { + content: ''; + position: absolute; + z-index: -1; + left: calc(-12px - var(--safe-l)); + right: calc(-12px - var(--safe-r)); + bottom: calc(-1 * var(--tabbar-gap)); + height: calc(var(--tabbar-h) + var(--tabbar-gap) + 46px); + background: linear-gradient( + to top, + rgba(5, 7, 11, 0.92) 0, + rgba(5, 7, 11, 0.7) 45%, + rgba(5, 7, 11, 0) 100% + ); + pointer-events: none; +} + +.app:is([data-tab='today'], [data-tab='rooms'], [data-tab='you']) + .tabbar.has-accessory::before { + height: calc(var(--tabbar-h) + var(--tabbar-gap) + 104px); +} + +/* On a tablet the Globe tab's leading pane is a scrolling list too. */ +@media (min-width: 600px) { + .app[data-tab='live'] .tabbar::before { + content: ''; + position: absolute; + z-index: -1; + left: calc(-12px - var(--safe-l)); + right: calc(-12px - var(--safe-r)); + bottom: calc(-1 * var(--tabbar-gap)); + height: calc(var(--tabbar-h) + var(--tabbar-gap) + 46px); + background: linear-gradient( + to top, + rgba(5, 7, 11, 0.92) 0, + rgba(5, 7, 11, 0.7) 45%, + rgba(5, 7, 11, 0) 100% + ); + pointer-events: none; + } + + .app[data-tab='live'] .tabbar.has-accessory::before { + height: calc(var(--tabbar-h) + var(--tabbar-gap) + 104px); + } +} diff --git a/mobile/styles/timemachine.css b/mobile/styles/timemachine.css index 4f63cd20c..46111f626 100644 --- a/mobile/styles/timemachine.css +++ b/mobile/styles/timemachine.css @@ -186,10 +186,12 @@ animation: none; } +/* Floats above the whole time machine, so it never covers the readout. */ .tm-callout { position: absolute; + z-index: 2; left: 50%; - bottom: calc(100% + 6px); + bottom: calc(100% + 8px); transform: translateX(-50%); max-width: 82%; padding: 5px 9px; @@ -283,3 +285,47 @@ white-space: normal; line-height: 1.35; } + +/* NOW snap: a ring pulses out of the playhead and the NOW pill. */ +.ribbon.tm.snap .tm-head::after { + content: ''; + position: absolute; + top: 50%; + left: 50%; + width: 10px; + height: 10px; + margin: -5px 0 0 -5px; + border-radius: 50%; + box-shadow: 0 0 0 2px rgba(255, 69, 58, 0.9); + animation: tm-snap 760ms var(--ease-out) both; + pointer-events: none; +} + +.ribbon.tm.snap .tm-now { + animation: tm-now-pop 520ms var(--spring) both; +} + +@keyframes tm-snap { + from { + opacity: 1; + transform: scale(0.6); + } + to { + opacity: 0; + transform: scale(6); + } +} + +@keyframes tm-now-pop { + 40% { + transform: scale(1.12); + box-shadow: 0 0 0 4px rgba(255, 69, 58, 0.28); + } +} + +@media (prefers-reduced-motion: reduce) { + .ribbon.tm.snap .tm-head::after, + .ribbon.tm.snap .tm-now { + animation: none; + } +} diff --git a/mobile/ui/dossier.js b/mobile/ui/dossier.js index ea20a0653..b612e76cf 100644 --- a/mobile/ui/dossier.js +++ b/mobile/ui/dossier.js @@ -247,7 +247,7 @@ export function createDossier({ - ${d.privacy ? `
${icon('lock')}Owner privacy (${esc(String(d.privacy).toUpperCase())}) Identity is limited to what the transponder broadcasts. We never name aircraft on privacy lists.
` : ''} + ${d.privacy ? `
${icon('lock')}Owner privacy (${esc(String(d.privacy).toUpperCase())}) Identity is limited to what the transponder broadcasts. We never name aircraft on privacy lists.
` : d.registryMissing ? `
${icon('info')}No public registry record found for this airframe.${d.identity?.operator ? ` Operator from the callsign’s airline prefix.` : ''}
` : ''} ${trackHtml(d)} ${ident.length ? `

Identity

${ident.map(([k, v]) => `
${esc(ID_LABEL[k] || cap(k))}
${esc(v)}
`).join('')}
` : ''} ${ diff --git a/mobile/ui/feed.js b/mobile/ui/feed.js index e22af663e..107107cb2 100644 --- a/mobile/ui/feed.js +++ b/mobile/ui/feed.js @@ -155,14 +155,28 @@ export function createFeed( const hd = $('[data-utc]', view); if (hd) hd.textContent = u; const dt = $('[data-date]', view); - if (dt) - dt.textContent = now + if (dt) { + // The kicker greets the hour: what the planet is doing for you now. + const hr = now.getHours(); + const greet = + hr < 5 + ? 'Up late' + : hr < 12 + ? 'Good morning' + : hr < 17 + ? 'Good afternoon' + : hr < 22 + ? 'Good evening' + : 'Tonight'; + const txt = `${now .toLocaleDateString('en-GB', { weekday: 'long', day: 'numeric', month: 'long', }) - .toUpperCase(); + .toUpperCase()} · ${greet.toUpperCase()}`; + if (dt.textContent !== txt) dt.textContent = txt; + } const lt = $('[data-localtime]', view); if (lt) { const txt = now.toLocaleTimeString('en-US', { diff --git a/mobile/ui/globeHost.js b/mobile/ui/globeHost.js index 9ecb5521b..d7e18f47a 100644 --- a/mobile/ui/globeHost.js +++ b/mobile/ui/globeHost.js @@ -198,6 +198,11 @@ function guard(engine, kind) { }, cachedThumbnail: (s) => call('cachedThumbnail', null, s), history: () => call('history', null), + loadHistory: () => asyncCall('loadHistory', null), + historyNear: (ms, lon, lat, km) => { + const v = call('historyNear', [], ms, lon, lat, km); + return Array.isArray(v) ? v : []; + }, trackOf: (id) => asyncCall('trackOf', [], id), playback: { play: (o) => { diff --git a/mobile/ui/liveChat.js b/mobile/ui/liveChat.js index 42868a19f..f1dae4550 100644 --- a/mobile/ui/liveChat.js +++ b/mobile/ui/liveChat.js @@ -956,6 +956,8 @@ export function mountChatOverlay(core, el, ctx = {}) { let seqN = 0; let driven = false; // a player calls push(): ignore the engine's own clock const full = ctx.moment || null; + const maxLines = ctx.maxLines || 9; + if (maxLines > 9) root.classList.add('co-tall'); function line(m, { quiet = false } = {}) { const key = m.id || `${m.t}|${m.handle}`; @@ -980,7 +982,8 @@ export function mountChatOverlay(core, el, ctx = {}) { const node = h(lineHtml(msg, core.rt.me.handle)); if (!quiet) node.classList.add('in'); list.appendChild(node); - while (list.childElementCount > 9) list.firstElementChild.remove(); + while (list.childElementCount > maxLines) list.firstElementChild.remove(); + if (maxLines > 9) list.scrollTop = list.scrollHeight; // Lines fade after a while, as on a stream overlay. setTimeout(() => node.classList.add('old'), 9000); // Chat and hearts go together. @@ -1062,7 +1065,7 @@ export function mountChatOverlay(core, el, ctx = {}) { // Lines already said: show the last few, quietly. const said = Array.isArray(m?.chat) ? m.chat : []; for (const c of said) shown.add(c.id || `${c.t}|${c.handle}`); - for (const c of said.slice(-6)) { + for (const c of said.slice(maxLines > 9 ? -24 : -6)) { shown.delete(c.id || `${c.t}|${c.handle}`); line(c, { quiet: true }); } diff --git a/mobile/ui/moment.js b/mobile/ui/moment.js index 6282a081a..dbac3e2e4 100644 --- a/mobile/ui/moment.js +++ b/mobile/ui/moment.js @@ -158,6 +158,11 @@ export function createMomentPlayer({