航班二氧化碳计算器

此插件提供了一组类,可用于

  • OpenFlights.org 数据集 加载机场列表。
  • 根据整个机场数据集查找匹配搜索查询的机场。
  • 计算航班的距离和二氧化碳排放量。

你可以用它来做什么

构建一个类似这样的航班二氧化碳计算器应用程序

FlightCalculator-screenshots

如何使用它

加载数据

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

创建一个 `AirportLookup` 服务

final airportLookup = AirportLookup(airports: airports);

搜索匹配查询的机场

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

计算距离和二氧化碳排放量

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` 文件夹中。

GitHub

https://github.com/bizz84/flight_co2_calculator_flutter