All Projects → bizz84 → flight_co2_calculator_flutter

bizz84 / flight_co2_calculator_flutter

Licence: MIT license
Flutter package and sample app to calculate Flight CO2 emissions

Programming Languages

dart
5743 projects
ruby
36898 projects - #4 most used programming language
kotlin
9241 projects
swift
15916 projects
objective c
16641 projects - #2 most used programming language

Flight CO2 Calculator

About

This plugin provides a collection of classes that can be used to:

  • Load a list of airports from the OpenFlights.org dataset.
  • Lookup airports matching a search query against the entire data-set of airports.
  • Calculate the distance and CO2 emissions from flights.

What you can do with this

Build a Flight CO2 Calculator app such as this:

How to use it

Load data:

List<Airport> airports = await AirportDataReader.load('data/airports.dat');

Create an AirportLookup service:

final airportLookup = AirportLookup(airports: airports);

Search for airports matching a query:

List<Airport> results = airportLookup.searchString(query);

Calculate distance and CO2 emissions:

class FlightCalculationData {
  FlightCalculationData({this.distanceKm, this.co2e});
  final double distanceKm;
  final double co2e;
}

FlightCalculationData _calculate(FlightDetails flightDetails) {
  double distanceKm;
  double co2e;
  Airport departure = flightDetails.departure;
  Airport arrival = flightDetails.arrival;
  if (departure != null && arrival != null) {
    double multiplier =
        flightDetails.flightType == FlightType.oneWay ? 1.0 : 2.0;
    distanceKm = DistanceCalculator.distanceInKmBetween(
        departure.location, arrival.location);
    distanceKm = CO2Calculator.correctedDistanceKm(distanceKm);
    co2e =
        CO2Calculator.calculateCO2e(distanceKm, flightDetails.flightClass) *
            multiplier;
  }
  return FlightCalculationData(distanceKm: distanceKm, co2e: co2e);
}

Example

See the sample Flight CO2 Calculator app bundled with the project in the example folder.

License: MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].