Code Monkey home page Code Monkey logo

fluttair's Introduction

Fluttair

A flutter application for VFR flight planning and navigation.

Overview

Fluttair is destined to VFR pilots who seek a minimalist and free navigation moving map application. It is written in dart using the flutter framework, hence compatible for both Android and iOS.

The development has been halted for now, due to the difficulty of maintaining up-to-date navigational data without renting a server. You are encouraged to re-use ideas and design from the present project according to the terms of the license (GNU GPL v3).

Features and limitations

Fluttair can:

  • display information about airports, airspaces and navigational aids from a SQL database contained in the local storage
  • fetch METAR/TAF data for airports
  • display mapbox-style maps (.mbtiles) contained in the local storage
  • plan a VFR route from a set of steerpoint coordinates
  • display the user's position and the route on the moving map
  • track the user's flight and display it for further debrief

Fluttair cannot:

  • fetch navigational data and maps directly from the internet
  • fetch NOTAMs
  • perform screen-off tracking

You can find a to-do list in the issue tracker.

How-to

In order to get the app working on your phone you need:

Last versions tested:

  • Android SDK v30.0.2
  • Flutter SDK v1.12.13+hotfix.5
  • openaip2sqlite v1.1

Once the Android tools and Flutter are setup:

  1. Download the data
  1. Make database
  • use openaip2sqlite to generate a database containing the navigational data (world.db)
  • rename the map using the format provider_regioncode.mbtiles (e.g. Belgium map file from open flightmaps would write ofm_eb.mbtiles)
  1. Move the database to the local storage
  • world.db goes under /assets/database
  • maps files go under /assets/maps
  1. Connect your phone and compile (flutter run --release)
  2. Enjoy! Any question, feedback or issue? Check the issue tracker or open a new issue!

fluttair's People

Contributors

acrovato avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

fluttair's Issues

Add export/import flight to gpx

This would enable easier briefing/debriefing.

The action buttons are already there (on the flight page) but the feature is not implemented.
Quite easy to do, but requires some coding...

Improve map

Gestures
Add gestures to

  • rotate the map
  • add steerpoints from finger location ("direct to")

Buttons
Add action buttons to

  • orient the map (North or aircraft heading)
  • control which layers are displayed

Layers
From the database, add

  • icons representing airports, VRPs and navigational aids
  • polygon representing airspace boundaries

Base Map
Add base (OpenStreetMaps) maps, on which navigational data from the database would be drawn. The tiles can be obtained from OpenMapTiles servers.

Update NOTAM fetch API

The NOTAMs used to be fetched from PilotWeb, which is now deprecated and has been replaced by FNS Notam Search from the FAA.

The query URL and parameters are quite simple, but requires a recaptcha token. If there is no way to obtain a valid token, then consider using another service (SWIM, EAD, ...).

Refresh tiles when map changes

Only one map can be loaded at a time in the current version of the code. When the map is changed using the dropdown menu or via the settings page, the tiles that are already loaded remain. They need to be cleared and the map needs to be refreshed.
Note that the only way to change the map right now is to via the setting page and restart the app.

There are several issues and PR (619, 584) opened in the flutter_map repository that could solve this issue. If that does not work, consider to load all the maps using a list of layers.

Obtain database from a server

For now, the database needs to be generated by every single user, who should first download the navigational data from openAIP, then process them, and finally re-compile the app. This should be done as often as AIRAC changes, that is every month, and is not practical.

Storing and processing the navigational data on a server, and allowing the app to connect to that server to fetch the database would considerably alleviate the process. It would also allow users (and not only developers) to use the app.

This issue prevents the project from moving froward, and has not been dealt with mainly due to cost issues.

Add screen-off tracking

Screen-off tracking would allow the pilot to switch off the screen and preserve battery, while still receiving and recording GPS data.

For Android, this features is currently implemented using a permanent (ongoing) notification. However, it does not work as expected. Not solution is envisioned for iOS.

Add VRPs to database

Visual Reporting Points (VRPs) are useful, if not mandatory, for VFR flights. They should be added in the database.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.