# albar965/littlenavmap architecture

> Architecture diagram of the GitHub repository albar965/littlenavmap, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/albar965/littlenavmap
- Repository: https://github.com/albar965/littlenavmap

## Overview

Little Navmap is a desktop flight-planning and navigation application for flight simulators. The central workflow is to load simulator and navigation data, search for locations and procedures, assemble and calculate a flight plan, then inspect it on the moving map and export it. Major companion capabilities include airport information, weather and online traffic, aircraft performance, logbook recording, user-defined map features, and a web interface. The graph combines README-described features with sampled query, route, performance, and controller behavior; some subsystem wiring is therefore intentionally not shown.

Main entry points: [`src/gui/mainwindow.cpp`](https://github.com/albar965/littlenavmap/blob/master/src/gui/mainwindow.cpp) (Desktop application), [`src/query/querymanager.cpp`](https://github.com/albar965/littlenavmap/blob/master/src/query/querymanager.cpp) (Navigation queries), [`src/route/routecontroller.cpp`](https://github.com/albar965/littlenavmap/blob/master/src/route/routecontroller.cpp) (Flight plan editor), [`src/mapgui/mapwidget.cpp`](https://github.com/albar965/littlenavmap/blob/master/src/mapgui/mapwidget.cpp) (Moving map)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_planning["Flight planning"]
  node_routecontroller["Flight plan editor"]
  node_route["Route and legs<br/>[route.cpp]"]
  node_routeparse["Route text import"]
  node_routeexport["Plan export<br/>[routeexport.cpp]"]
  node_routealtitude["Altitude profile<br/>[routealtitude.cpp]"]
end

subgraph group_navigation["Navigation and map"]
  node_mapwidget["Moving map<br/>[mapwidget.cpp]"]
  node_mappainter["Map rendering<br/>[mappainter.cpp]"]
  node_infocontroller["Airport information<br/>[infocontroller.cpp]"]
  node_weather["Weather reports"]
  node_tracks["Oceanic tracks<br/>[trackmanager.cpp]"]
end

subgraph group_data["Data and search"]
  node_dbmanager["Database manager"]
  node_navdb[("Simulator and nav data")]
  node_querymanager["Navigation queries<br/>[querymanager.cpp]"]
  node_search["Search"]
end

subgraph group_flighttools["Flight tools"]
  node_performance["Aircraft performance"]
  node_logbook["Logbook"]
  node_userdata["User map features"]
end

subgraph group_interfaces["External interfaces"]
  node_mainwindow["Desktop application<br/>[mainwindow.cpp]"]
  node_online["Online traffic"]
  node_web["Web interface<br/>[webcontroller.cpp]"]
  node_webapi["Web API"]
end

node_pilot(("Pilot"))
node_simulator(("Flight simulator"))
node_online_networks(("Online networks"))

node_pilot -->|"uses"| node_mainwindow
node_simulator -.->|"provides scenery"| node_dbmanager
node_dbmanager -->|"loads and updates"| node_navdb
node_querymanager -->|"queries"| node_navdb
node_search -->|"searches data"| node_querymanager
node_mainwindow -->|"offers search"| node_search
node_mainwindow -->|"edits plan"| node_routecontroller
node_routecontroller -->|"updates route"| node_route
node_routecontroller -->|"resolves procedures"| node_querymanager
node_routeparse -->|"resolves route items"| node_querymanager
node_routecontroller -->|"imports route text"| node_routeparse
node_routeexport -->|"exports plan"| node_route
node_route -->|"provides route"| node_routealtitude
node_mainwindow -->|"shows map"| node_mapwidget
node_mapwidget -->|"renders map"| node_mappainter
node_mappainter -->|"displays navigation data"| node_navdb
node_mainwindow -->|"shows information"| node_infocontroller
node_infocontroller -->|"queries airport data"| node_querymanager
node_weather -->|"supplies reports"| node_infocontroller
node_simulator -.->|"provides aircraft state"| node_online
node_online_networks -.->|"provides traffic feeds"| node_online
node_online -->|"supplies traffic"| node_mapwidget
node_mainwindow -->|"manages performance"| node_performance
node_performance -->|"uses route profile"| node_routealtitude
node_mainwindow -->|"manages logbook"| node_logbook
node_simulator -.->|"provides flight data"| node_logbook
node_mainwindow -->|"manages map features"| node_userdata
node_userdata -->|"supplies map features"| node_mapwidget
node_tracks -->|"reads navigation references"| node_navdb
node_tracks -->|"resolves track routes"| node_querymanager
node_mainwindow -->|"offers web access"| node_web
node_web -->|"dispatches requests"| node_webapi

click node_mainwindow "https://github.com/albar965/littlenavmap/blob/master/src/gui/mainwindow.cpp"
click node_dbmanager "https://github.com/albar965/littlenavmap/blob/master/src/db/databasemanager.cpp"
click node_navdb "https://github.com/albar965/littlenavmap/blob/master/src/db/databasemanager.cpp"
click node_querymanager "https://github.com/albar965/littlenavmap/blob/master/src/query/querymanager.cpp"
click node_search "https://github.com/albar965/littlenavmap/blob/master/src/search/searchcontroller.cpp"
click node_routecontroller "https://github.com/albar965/littlenavmap/blob/master/src/route/routecontroller.cpp"
click node_route "https://github.com/albar965/littlenavmap/blob/master/src/route/route.cpp"
click node_routeparse "https://github.com/albar965/littlenavmap/blob/master/src/routestring/routestringreader.cpp"
click node_routeexport "https://github.com/albar965/littlenavmap/blob/master/src/routeexport/routeexport.cpp"
click node_routealtitude "https://github.com/albar965/littlenavmap/blob/master/src/route/routealtitude.cpp"
click node_mapwidget "https://github.com/albar965/littlenavmap/blob/master/src/mapgui/mapwidget.cpp"
click node_mappainter "https://github.com/albar965/littlenavmap/blob/master/src/mappainter/mappainter.cpp"
click node_infocontroller "https://github.com/albar965/littlenavmap/blob/master/src/info/infocontroller.cpp"
click node_weather "https://github.com/albar965/littlenavmap/blob/master/src/weather/weatherreporter.cpp"
click node_online "https://github.com/albar965/littlenavmap/blob/master/src/online/onlinedatacontroller.cpp"
click node_performance "https://github.com/albar965/littlenavmap/blob/master/src/perf/aircraftperfcontroller.cpp"
click node_logbook "https://github.com/albar965/littlenavmap/blob/master/src/logbook/logdatacontroller.cpp"
click node_userdata "https://github.com/albar965/littlenavmap/blob/master/src/userdata/userdatacontroller.cpp"
click node_tracks "https://github.com/albar965/littlenavmap/blob/master/src/track/trackmanager.cpp"
click node_web "https://github.com/albar965/littlenavmap/blob/master/src/web/webcontroller.cpp"
click node_webapi "https://github.com/albar965/littlenavmap/blob/master/src/webapi/webapicontroller.cpp"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_routecontroller,node_route,node_routeparse,node_routeexport,node_routealtitude toneBlue
class node_mapwidget,node_mappainter,node_infocontroller,node_weather,node_tracks toneAmber
class node_dbmanager,node_navdb,node_querymanager,node_search toneMint
class node_performance,node_logbook,node_userdata toneRose
class node_mainwindow,node_online,node_web,node_webapi,node_pilot,node_simulator,node_online_networks toneIndigo
```

## Components

### Flight planning

- [Flight plan editor](https://github.com/albar965/littlenavmap/blob/master/src/route/routecontroller.cpp): `src/route/routecontroller.cpp`
- [Route and legs](https://github.com/albar965/littlenavmap/blob/master/src/route/route.cpp): `src/route/route.cpp`
- [Route text import](https://github.com/albar965/littlenavmap/blob/master/src/routestring/routestringreader.cpp): `src/routestring/routestringreader.cpp`
- [Plan export](https://github.com/albar965/littlenavmap/blob/master/src/routeexport/routeexport.cpp): `src/routeexport/routeexport.cpp`
- [Altitude profile](https://github.com/albar965/littlenavmap/blob/master/src/route/routealtitude.cpp): `src/route/routealtitude.cpp`

### Navigation and map

- [Moving map](https://github.com/albar965/littlenavmap/blob/master/src/mapgui/mapwidget.cpp): `src/mapgui/mapwidget.cpp`
- [Map rendering](https://github.com/albar965/littlenavmap/blob/master/src/mappainter/mappainter.cpp): `src/mappainter/mappainter.cpp`
- [Airport information](https://github.com/albar965/littlenavmap/blob/master/src/info/infocontroller.cpp): `src/info/infocontroller.cpp`
- [Weather reports](https://github.com/albar965/littlenavmap/blob/master/src/weather/weatherreporter.cpp): `src/weather/weatherreporter.cpp`
- [Oceanic tracks](https://github.com/albar965/littlenavmap/blob/master/src/track/trackmanager.cpp): `src/track/trackmanager.cpp`

### Data and search

- [Database manager](https://github.com/albar965/littlenavmap/blob/master/src/db/databasemanager.cpp): `src/db/databasemanager.cpp`
- [Simulator and nav data](https://github.com/albar965/littlenavmap/blob/master/src/db/databasemanager.cpp): `src/db/databasemanager.cpp`
- [Navigation queries](https://github.com/albar965/littlenavmap/blob/master/src/query/querymanager.cpp): `src/query/querymanager.cpp`
- [Search](https://github.com/albar965/littlenavmap/blob/master/src/search/searchcontroller.cpp): `src/search/searchcontroller.cpp`

### Flight tools

- [Aircraft performance](https://github.com/albar965/littlenavmap/blob/master/src/perf/aircraftperfcontroller.cpp): `src/perf/aircraftperfcontroller.cpp`
- [Logbook](https://github.com/albar965/littlenavmap/blob/master/src/logbook/logdatacontroller.cpp): `src/logbook/logdatacontroller.cpp`
- [User map features](https://github.com/albar965/littlenavmap/blob/master/src/userdata/userdatacontroller.cpp): `src/userdata/userdatacontroller.cpp`

### External interfaces

- [Desktop application](https://github.com/albar965/littlenavmap/blob/master/src/gui/mainwindow.cpp): `src/gui/mainwindow.cpp`
- [Online traffic](https://github.com/albar965/littlenavmap/blob/master/src/online/onlinedatacontroller.cpp): `src/online/onlinedatacontroller.cpp`
- [Web interface](https://github.com/albar965/littlenavmap/blob/master/src/web/webcontroller.cpp): `src/web/webcontroller.cpp`
- [Web API](https://github.com/albar965/littlenavmap/blob/master/src/webapi/webapicontroller.cpp): `src/webapi/webapicontroller.cpp`

### Other components

- **Pilot**
- **Flight simulator**
- **Online networks**

## Connections

- Pilot → Desktop application: uses
- Flight simulator → Database manager: provides scenery
- Database manager → Simulator and nav data: loads and updates
- Navigation queries → Simulator and nav data: queries
- Search → Navigation queries: searches data
- Desktop application → Search: offers search
- Desktop application → Flight plan editor: edits plan
- Flight plan editor → Route and legs: updates route
- Flight plan editor → Navigation queries: resolves procedures
- Route text import → Navigation queries: resolves route items
- Flight plan editor → Route text import: imports route text
- Plan export → Route and legs: exports plan
- Route and legs → Altitude profile: provides route
- Desktop application → Moving map: shows map
- Moving map → Map rendering: renders map
- Map rendering → Simulator and nav data: displays navigation data
- Desktop application → Airport information: shows information
- Airport information → Navigation queries: queries airport data
- Weather reports → Airport information: supplies reports
- Flight simulator → Online traffic: provides aircraft state
- Online networks → Online traffic: provides traffic feeds
- Online traffic → Moving map: supplies traffic
- Desktop application → Aircraft performance: manages performance
- Aircraft performance → Altitude profile: uses route profile
- Desktop application → Logbook: manages logbook
- Flight simulator → Logbook: provides flight data
- Desktop application → User map features: manages map features
- User map features → Moving map: supplies map features
- Oceanic tracks → Simulator and nav data: reads navigation references
- Oceanic tracks → Navigation queries: resolves track routes
- Desktop application → Web interface: offers web access
- Web interface → Web API: dispatches requests
