Skip to content

Features

Marco edited this page Jun 10, 2026 · 21 revisions

🇮🇱 עברית

Features

A guided tour of what NavAid can do, organised by toolbar section.

Hero overview

NavAid in English

The toolbar (top-left, draggable) is grouped into collapsible sections:

Section Purpose
Build (✏️) Add waypoint, add note, search, reverse, undo, clear, fit, reset all marker positions, reset all waypoint names
View (👁) Base layer, Show Nav-WP / Show Airfields / Show VOR stations + VOR ref / Show/Add Freq Changes, Show cumulative time, Show drift lines, Show mandatory reports, Force snap, magnifier, legend, Show return path, Show leg dist, Highlight diff
Charts (📋) Route templates, flight plan table (+ CSV export), frequency-defaults table, altitude-pairs table, airport approach charts viewer
Export (📤) Export / import JSON / GPX / PLN, ✈️ Google Earth, 🔗 share link
Simulator (✈) Live aircraft position from SimConnect bridge (Little NavMap / MSFS / X-Plane), heading-rotated icon, Follow aircraft toggle — see Simulator Connect
Display (👁) Light mode, waypoint name visibility, label transparency, map opacity, waypoint size, leg arrow size, leg line width, drift line width
Print (🖨) A3 / A4 page frame + ▭/▯ orientation toggle + Save PNG

The language picker (🌐) sits above the sections; it's a quick toggle, not part of any section.

Below the sections you'll see live totals — Waypoints, Legs, Distance, Total time — and the app version.

Routes

  • Add Waypoint — click the map to drop a numbered waypoint; legs are drawn between them automatically.
  • Edit — with no mode active, click or drag any existing waypoint, leg, or note to select it; the inspector opens on the right.
  • Split leg — double-click a route leg to insert a blank WP # waypoint at that exact coordinate. The original leg's speed, altitude pair, return / one-way flags and per-leg VOR reference are copied to both new legs.
  • Reverse Route — invert direction. Each leg's altitude pair swaps and waypoint name text is rotated 180° so a chart held the other way still reads upright.
  • Snap to published points - drop or drag a waypoint near a published Israeli VFR reporting point or airfield and NavAid snaps it to the exact coordinates. Airfields adopt the ICAO code; nav-waypoints adopt the localized name.
  • Fit — frame the entire route in the visible area.
  • Clear map — remove all waypoints and notes (with a confirmation prompt).
  • ↶ Undo (Ctrl-Z) — step back the last edit, move, or delete.
  • ↺ Reset all marker positions — return every leg's info-marker offset (heading / altitude / time kite) to its default spot.
  • ↺ Reset all waypoint names — set each name to its nearest reference point, or clear it when off-grid.
  • 🔍 Magnifier (M) — see Magnifier below.
  • Go to coordinates — click the bottom-right coordinate readout and type or paste a coordinate (e.g. 32°00'17"N 34°43'38"E, or plain decimals) to recentre the map there.

Notes

  • Add Note — drop a free-text annotation box at the click point.
  • Inspector lets you change the shape (rectangle or oval), colour, and text.
  • Notes can be dragged anywhere; their colour follows the same yellow-with-opacity styling as label backgrounds, or you can pick a custom colour.

Map layers

  • CVFR (default) — Israeli combined VFR chart from flight-maps.com.
  • Navigation, Low Alt, Helicopters — additional flight-maps.com chart series.
  • Satellite (Esri) — World Imagery.
  • OpenStreetMap.

The selected layer is remembered across reloads. See Map Layers for details.

Navigation waypoints and airfields

  • Show Navigation Waypoints overlays 256 Israeli VFR reporting points, each with Hebrew + English names.
  • Show Airfields overlays 16 published Israeli airfields as blue triangle markers.
  • Show VOR stations overlays Israeli VOR/DME stations. The adjacent VOR ref selector chooses the reference used for radial/DME readouts, and stays available even when station markers are hidden.
  • Show/Add Freq Changes overlays known ATC-change reporting points with red rings. Matching route waypoints get editable lightning callouts with call sign and frequency text.
  • The Legend sits as a floating Leaflet control (bottom-left) showing airfield triangles, waypoint circles, and freq-change red rings.
  • Labels appear at higher zoom; below that you see only the dot or triangle.
  • A placed waypoint hides any nav-waypoint or airfield marker sharing its position (proximity-based, so it still works after rename).
  • The search opens as a floating overlay (top-center) — press Ctrl-F / Cmd-F anywhere, or click the 🔍 Find button in the Build section. Matches nav-waypoint Hebrew / English names and airfield ICAO / English / Hebrew labels; the 12-result budget is split 6/6 between airfields and nav-WPs. Enter jumps to the first match; Escape closes.
  • Snap-on-drop and snap-on-drag use both datasets; airfields take priority when both are nearby. Force snap toggle (Build section) makes every click snap to the absolute nearest known point regardless of distance.

Floating search overlay

See Nav-waypoints dataset and Airfields dataset for source / update procedures.

VOR and radial/DME

Selecting a VOR ref enables radial/DME readouts across the app:

  • a separate bottom-right VOR readout follows the mouse or map centre;
  • waypoint, nav-waypoint and airfield inspectors show a "From <VOR>" radial/DME row;
  • the Flight Plan table shows Radial and DME columns, calculated to each leg's start point;
  • individual flight-plan legs can override the global VOR reference.

The VOR station overlay is only for showing markers. Radial/DME readouts continue to work when Show VOR stations is off. See VOR and Radial/DME.

Frequency changes

Frequency changes use docs/comm-change.json: a call-sign catalog plus a per-waypoint list of allowed call signs. When Show/Add Freq Changes is enabled, NavAid only adds lightning callouts to route waypoints that are snapped to, or still within about 18 px of, a known comm-change point. The waypoint inspector shows inline editing for the callout (call sign dropdown, frequency input, reset-callout-location) instead of a read-only badge. Deleted callouts survive reload via route-level suppression tracking.

The frequency input is validated to the 118 – 136.975 MHz band, and the 📡 Freq table button in the Charts section opens a searchable editor for local frequency defaults: override any call sign's frequency (persisted in localStorage, applied everywhere it is used), reset a single row, or Restore originals to clear all overrides.

See Frequency Changes for the full behavior.

Airfield charts

Charts toolbar button

The 🗺️ Charts button in the Route section opens a standalone modal listing every airfield that has published charts. Each airfield is a collapsible section; expand it to see chips grouped by category. No waypoint needs to be selected.

Inspector charts panel

Click a waypoint whose name matches an airfield ICAO code (e.g. LLBG, LLHA). If that airfield has published charts in the BYOP dataset, the inspector shows a Charts section with chips grouped by category:

Category Meaning
Approach Instrument approach plates (ILS, LOC, VOR, NDB per runway)
SID Standard Instrument Departures
STAR Standard Terminal Arrivals
Ground Ground movement / parking diagrams
VFR / Airport VFR aerodrome chart, circuit pattern, text info
Other ATC / SMAC documents, misc

Click any chip to open the PDF in a full-screen modal viewer:

  • Close (or Esc) — dismiss the viewer and return to the inspector.
  • Download — save the PDF locally.
  • Open in new tab — open the PDF in a separate browser tab.

The PDFs are served from GitHub Pages CDN (docs/byop/) and rendered in the browser's built-in PDF viewer. Charts are © CAAI / Ministry of Transport.

Airfield charts in inspector

Per-leg controls

The View section has toggle switches that apply to every leg:

  • Show return path — also draws the outbound (reverse-direction) tick / arrow.
  • Show leg dist — yellow distance badge in the middle of each leg.
  • Highlight diff — purple halo on legs whose altitude OR speed differs from the adjacent leg, marking climb / descent / acceleration points.
  • Show cumulative time — a running total-flight-time kite after each leg.
  • Show drift lines — 10° drift reference lines at each leg end (thickness set by the Drift line width slider).
  • Show mandatory reports — badges route waypoints that are mandatory (חובה) reporting points; the inspector also flags mandatory vs on-request points.
  • Force snap — every click snaps to the nearest airfield or nav-waypoint regardless of distance (otherwise snapping uses an 18 px radius).

Magnifier

The 🔍 Magnifying glass (toolbar button or the M key) opens a loupe — a zoomed-in view of the map that follows the cursor, useful for reading dense chart labels. While it's open, + / − adjust the loupe zoom factor; the Magnifier settings panel exposes the same zoom control. Press M again to close.

Route templates

The 🧭 Templates button in the Charts section opens a list of ready-made routes (from data/route-templates.json). Pick one, set a cruise speed, and Build route replaces the current route with the template (with a confirmation prompt if a route already exists).

Display

  • Light mode — switch the toolbar and panels to a light theme (persisted).
  • Show Waypoint names — when off, waypoints render as plain numbered circles. When on, the name (or the sequence number if no name set) is drawn inside the circle. Snapped nav waypoints carry their published name automatically.
  • — rotate all waypoint name labels 90° (useful if you want labels reading along the route).
  • Label Transparency slider - opacity of every label background.
  • Map opacity slider - base map brightness on screen and in PNG export.
  • Waypoint size slider — waypoint name / number font + circle size.
  • Leg arrow size slider — size of each leg's info marker (heading / altitude / time).
  • Leg line width slider — route line thickness.
  • Drift line width slider — thickness of the 10° drift reference lines (when Show drift lines is on).
  • Mag var — magnetic variation in the value-added-to-true convention. Israel ≈ −5°. The hint text shows the conventional (5°E) form.
  • Hidden tuning panel — add ?tune=1 to preview every drawing constant. See Tuning Panel.

Map rotation

A small compass dial sits next to the zoom buttons (Google-Earth-style).

  • Drag the dial — set any bearing.
  • Tap the dial — cycle 0° / 90° / 180° / 270°.
  • The route overlay tracks the rotation. Bearing is persisted across reloads.
  • PNG export preserves the current map bearing and restores normal map interaction after export.

Inspector

Clicking a waypoint, leg label, or note opens the inspector on the right edge of the screen. The title doubles as the editable name. Editing a leg's altitude propagates along the same cruise level until a different altitude already exists.

Minimum safe altitude (MSA)

When a terrain grid is loaded (data/terrain.json), a leg inspector shows an MSA (ft) row = ceil((max terrain along the leg + 1000 ft) / 100) × 100. It turns red when either planned altitude (inbound / outbound) is below it. The grid ships as the Israel area at ~2 km cells, built from SRTM via scripts/build_terrain.py; if no grid is present, no MSA is shown (never a false "safe"). Planning aid only — not terrain avoidance.

Satellite preview / expand

A waypoint inspector shows a small satellite thumbnail. Clicking it (or Expand) opens a real Leaflet map centred on the point: drag to pan, a black-on-white zoom control bottom-right (matching the main map), a layer dropdown (the same base layers as the View section), and a recentre button (⌖) that snaps back to the waypoint. The four flight-maps.com charts are only selectable up to their tile range; past that zoom they're disabled and the view falls back to Satellite. See Map Layers and Inspector.

Flight plan

The 📋 Flight plan button opens a per-leg table modal. Columns:

| # | From | To | Hdg | Dist (NM) | Speed (kt) | Alt (ft) | Time | Fuel | Cum. time | Cum. fuel | Radial | DME |

Speed and altitude are editable inputs; time and totals update live. The modal can be dragged by its title bar, scrolls when tall, and uses a corner to close. With Show return path on, a second sub-table appears below the forward route with reciprocal headings and the inverse altitude pair.

A CSV button on the modal downloads the same table as a spreadsheet file (UTF-8 with BOM so Hebrew opens correctly in Excel). See Print and Export.

Flight Plan modal

Altitude pairs

The 🧭 Alt pairs button in the Charts section opens a searchable table of the learned CVFR altitude pairs (the cruise-altitude conventions NavAid applies as you build a route). Use Copy JSON to copy the dataset to the clipboard.

Export & import

Live in the 📤 Export section:

  • ⬇ Export — a format dropdown: JSON (full route + notes), GPX (route points), or PLN (MSFS / FSX flight plan). The dropdown resets to its placeholder after firing. Filename is timestamped.
  • ⬆ Import — load a route from JSON / GPX / PLN. Strict schema check rejects malformed input with a field-path error; file size is capped at 2 MB before parsing. .pln is parsed from each ATCWaypoint's DMS WorldPosition.
  • 🔗 Share — copies a self-contained URL of the current route to the clipboard. Polyline-encoded coords + base64url names, fits up to 64 waypoints. Recipient pastes the link, NavAid opens with the same route. Toast confirmation (no popup).
  • ✈️ Open route in Google Earth — KML tour (gx:Tour) flying the route at the per-leg altitudes from your flight plan; the route line and waypoints are clamped to the ground. See Google Earth.
  • ⬇ Save PNG (Print section) — A3 / A4 framed map + route as a high-resolution PNG. Orientation picked via the inline ▭/▯ toggle next to A3/A4 (default portrait, persisted). Map opacity is honored, airfields/nav-waypoints are included when enabled, map interaction is locked during export, and flight-maps.com 404 tiles outside chart coverage are skipped silently. Tiles from flight-maps.com are pulled through images.weserv.nl so the export canvas stays CORS-clean; OSM and Esri tiles support CORS directly.
  • The View-section legend is interface chrome and is not included in exported PNG files.

Bilingual UI

NavAid ships a fully translated Hebrew UI (RTL) and English UI. Switch via the language picker in the toolbar. See Bilingual UI.

NavAid Hebrew UI

PWA / Offline

NavAid registers a service worker and a Web App Manifest, so you can install it to your phone or desktop and use it without an internet connection (the app shell + the last-loaded chart tiles are cached). See Offline and PWA.

Clone this wiki locally