Repository navigation
Nav Waypoints Dataset
🇮🇱 עברית
Reporting points are projected from the layer's route graph. navDataPrefix
selects the graph:
docs/data/cvfr-route-graph.jsondocs/data/lsa-route-graph.jsondocs/data/heli-route-graph.json
navWaypointsFromGraph() in docs/app/route-graph-shapes.js builds the old
shape from nodes, so consumers still see {waypoints: [...]} for CVFR and
{points: [...]} for LSA and helicopter. Records still use
{name, en, he, lat, lng, report}; report distinguishes mandatory and
on-request reporting points.
The CVFR graph holds 195 total nodes: 173 waypoint-kind nodes and 22 minimal
airfield endpoint nodes. Of the waypoint nodes, 172 are CVFR-layer members
and 170 project as active reporting points. Two are excluded by
active: false — ZRANA (רעננה מרכז) and RANNO
(רעננה צפון) are locality labels the chart-image rebuild misread as mandatory
points: they carry the plain locality circle, not the reporting-point triangle,
and no route segment either way. They are kept rather than deleted so the
coordinates and both names survive if a later edition promotes them.
active is absent-means-true, deliberately: a missing or mistyped flag can
only ever show a locality label, never hide a published reporting point.
A node may also carry hotspot, forcing a point on or off the junction list. Without it the
app derives the answer from the graph: a waypoint-kind node with more than two distinct
two-way neighbours is a junction (one-way and blocked segments do not count). An explicit
value always wins, false included — a point that measures as a junction but does not behave
like one can be turned off without touching its segments. ?hotspots=1 rings the whole set on
the map; see Hidden tools.
A node may also carry noSegmentsReason — a published point that legitimately
has no segment in this graph, such as one on a military route. Those look
identical to a locality label in the data, so the reason is required: without
it, an obvious "remove the nodes nothing routes through" pass would delete real
reporting points.
The CVFR source of truth is the published IAA CVFR chart waypoint reference
table (page 113, 2025 edition). The graph retains 22 minimal airfield nodes so
route edges remain connected. Rich ARP, runway, plate, and frequency metadata
lives in docs/data/airfields.json and is excluded from the waypoint projection.
Verify the current count from the repository root:
node -e 'const g=JSON.parse(require("fs").readFileSync("docs/data/cvfr-route-graph.json","utf8"));
const n=Object.values(g.nodes), c=n.filter(x=>x.kind==="waypoint"&&x.layers.includes("cvfr"));
console.log("total",n.length,"| CVFR members",c.length,"| active",c.filter(x=>x.active!==false).length,"| airfields",n.filter(x=>x.kind==="airfield").length)'Both counts are pinned in tests/route-graph.spec.js (layerNodes and
activeNodes), so an accidental deletion and an accidental flip of the flag
fail with different numbers.
When refreshing data, preserve the current wrapper/schema, compare code and
coordinate changes manually, and run the waypoint/dataset Playwright suites.
Open an issue and submit the change through a feature-branch PR to dev.
Deploy rewrites data/*.json?v= cache markers to the commit SHA; do not bump
an individual dataset URL manually.
For pilots
- Quick Start
- Video tutorials · סרטונים
- Features
- The Map
- Auto zoom
- Toolbar
- Phone layout
- Safety notice
- Route and Legs
- Waypoints and Notes
- Inspector
- AI Assistant
- User Guide
- Frequency Changes
- VOR and Radial/DME
- Map Layers
- Bearing dial
- Extra Layers
- Airport charts
- Flight Plan
- Route check
- Flight planning form
- Submit a flight plan
- Fuel
- Print and Export
- Simulator Connect
- Google Earth
- GPS Track Recording
- Comm failure
- Follow me
- Bilingual UI
- Offline and PWA
- Settings and Persistence
- Keyboard and Touch
- FAQ and Troubleshooting
For developers
- Architecture
- Directory Structure
- Tuning Panel
- Hidden Tools
- LocalStorage Schema
- Nav-waypoints dataset
- Airfields dataset
- Service Worker
- Deployment
- Contributing
- Changelog
🇮🇱 עברית
לטייסים
- התחלה מהירה
- תכונות
- עוזר AI
- מדריך למשתמש
- זום אוטומטי
- שינויי תדר
- VOR ו-Radial/DME
- סרגל הכלים
- פריסת הטלפון
- הודעת הבטיחות
- שכבות מפה
- שכבות נוספות
- תוכנית טיסה
- בדיקת מסלול
- טופס תכנון טיסה
- הגשת תוכנית טיסה
- הדפסה וייצוא
- חיבור סימולטור
- Google Earth
- הקלטת מסלול GPS
- תקלת קשר
- עקבו אחריי
- ממשק דו-לשוני
- לא מקוון ו-PWA
- הגדרות ושמירה
- מקלדת ומגע
- שאלות נפוצות ופתרון תקלות
למפתחים
🌐 Live 🧪 Staging 📦 Repo 💡 Ideas / bugs