A range ring is not a circle. Pitch the camera and the ring on the ground becomes an ellipse on the glass. The screen circle a HUD would draw is sized to be right to the north, and the key prints where it really reaches north and east, measured by casting those points back onto the ground. The ground is laid out so that every distance FROM THE CENTRE is true, and the key says only those are. A stale track is dashed, says how old it is and draws no heading; a heading line is a real ten-minute lead at the reported speed; a track off the view or without a position is counted. Pitch stops at 45 degrees. Every track here is simulated.
import 'overscan'
import 'overscan/overscan.css'
<ov-tactical
id="main"
countries="../src/ov-countries.js"
lat="35.47"
lon="-97.52"
range="2400"
pitch="30"
bearing="-18"
ring="800"
fresh="30"
orbit
></ov-tactical>import { OvTactical } from 'overscan/react'
<OvTactical
id="main"
countries="../src/ov-countries.js"
lat="35.47"
lon="-97.52"
range="2400"
pitch="30"
bearing="-18"
ring="800"
fresh="30"
orbit
/>import { OvTactical } from 'overscan/vue'
<OvTactical
id="main"
countries="../src/ov-countries.js"
lat="35.47"
lon="-97.52"
range="2400"
pitch="30"
bearing="-18"
ring="800"
fresh="30"
orbit
/>import OvTactical from 'overscan/svelte/OvTactical.svelte'
<OvTactical
id="main"
countries="../src/ov-countries.js"
lat="35.47"
lon="-97.52"
range="2400"
pitch="30"
bearing="-18"
ring="800"
fresh="30"
orbit
/>Drag to orbit, arrow keys, ctrl-scroll or pinch to zoom. The wheel alone scrolls the page.
Outlines asked for and never given; a source that never answers.