Flutter燃油价格查询插件tankerkoenig_dart的使用

Flutter燃油价格查询插件tankerkoenig_dart的使用


Dart pub

这是一个用于从tankerkoenig v4 API获取德国加油站及其燃油价格的Dart包。

功能

  • 通过邮政编码、经纬度或给定ID检索加油站。
  • 检索燃油价格统计数据。

使用

import 'package:tankerkoenig_dart/tankerkoenig_dart.dart';

Future<void> main() async {
  const String apiKey = ''; // 请替换为您的API密钥
  final TankerKoenigApi api = TankerKoenigApi(apiKey);
  
  // 通过邮政编码检索加油站
  print(
    'Station by postal code: ${await api.stationsByPostalCode(postalCode: '24558')}',
  );
  
  // 通过ID检索加油站
  print(
    'Station by id: ${await api.stationById(id: '92f703e8-0b3c-46da-9948-25cb1a6a1514')}',
  );
  
  // 获取统计数据
  print('Statistics: ${await api.statistics()}');
}

完整示例

以下是一个完整的示例代码,展示如何使用tankerkoenig_dart插件来检索德国的燃油价格信息:

import 'package:flutter/material.dart';
import 'package:tankerkoenig_dart/tankerkoenig_dart.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('燃油价格查询'),
        ),
        body: Center(
          child: FutureBuilder(
            future: fetchGasPrices(),
            builder: (context, snapshot) {
              if (snapshot.connectionState == ConnectionState.done) {
                if (snapshot.hasError) {
                  return Text('加载失败: ${snapshot.error}');
                } else {
                  return Text('结果: ${snapshot.data}');
                }
              } else {
                return CircularProgressIndicator();
              }
            },
          ),
        ),
      ),
    );
  }

  Future<String> fetchGasPrices() async {
    const String apiKey = ''; // 请替换为您的API密钥
    final TankerKoenigApi api = TankerKoenigApi(apiKey);

    try {
      // 通过邮政编码检索加油站
      final stationsByPostalCode = await api.stationsByPostalCode(postalCode: '24558');

      // 通过ID检索加油站
      final stationById = await api.stationById(id: '92f703e8-0b3c-46da-9948-25cb1a6a1514');

      // 获取统计数据
      final statistics = await api.statistics();

      return '加油站(邮政编码): $stationsByPostalCode\n加油站(ID): $stationById\n统计数据: $statistics';
    } catch (e) {
      return '发生错误: $e';
    }
  }
}

更多关于Flutter燃油价格查询插件tankerkoenig_dart的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter燃油价格查询插件tankerkoenig_dart的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何使用 tankerkoenig_dart 插件在 Flutter 应用中查询燃油价格的示例代码。这个插件允许你访问 Tankerkönig API 来获取燃油价格信息。

首先,确保你的 Flutter 项目已经添加了 tankerkoenig_dart 依赖。在你的 pubspec.yaml 文件中添加以下依赖:

dependencies:
  flutter:
    sdk: flutter
  tankerkoenig_dart: ^latest_version  # 请替换为最新版本号

然后运行 flutter pub get 来安装依赖。

接下来,创建一个 Flutter 应用并在其中使用 tankerkoenig_dart 插件。以下是一个完整的示例代码:

import 'package:flutter/material.dart';
import 'package:tankerkoenig_dart/tankerkoenig_dart.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Fuel Price Checker',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: FuelPriceScreen(),
    );
  }
}

class FuelPriceScreen extends StatefulWidget {
  @override
  _FuelPriceScreenState createState() => _FuelPriceScreenState();
}

class _FuelPriceScreenState extends State<FuelPriceScreen> {
  final Tankerkoenig _tankerkoenig = Tankerkoenig(apiKey: 'YOUR_API_KEY'); // 替换为你的API Key
  List<Station> _stations = [];
  String _error = '';

  @override
  void initState() {
    super.initState();
    _fetchFuelPrices();
  }

  Future<void> _fetchFuelPrices() async {
    try {
      // 使用附近的位置查询燃油价格
      var response = await _tankerkoenig.getStationsNearBy(
        lat: 52.520008, // 柏林的纬度
        lon: 13.404954, // 柏林的经度
        rad: 1, // 半径,单位为公里
        fuelTypes: [E5100, E1000, DIESEL], // 燃油类型
      );

      setState(() {
        _stations = response.stations;
        _error = '';
      });
    } catch (e) {
      setState(() {
        _error = e.toString();
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Fuel Price Checker'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            if (_error.isNotEmpty)
              Text(
                'Error: $_error',
                style: TextStyle(color: Colors.red),
              ),
            Expanded(
              child: ListView.builder(
                itemCount: _stations.length,
                itemBuilder: (context, index) {
                  var station = _stations[index];
                  return ListTile(
                    title: Text(station.name),
                    subtitle: Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                        for (var price in station.prices)
                          Text(
                            '${price.fuelType.toShortString()}: ${price.price} €',
                            style: TextStyle(fontSize: 16),
                          ),
                      ],
                    ),
                  );
                },
              ),
            ),
          ],
        ),
      ),
    );
  }
}

代码说明:

  1. 依赖导入:导入 tankerkoenig_dart 包。
  2. API Key:在 Tankerkoenig 对象初始化时,使用你的 Tankerkönig API Key。
  3. 数据获取:在 initState 方法中调用 _fetchFuelPrices 方法,从 Tankerkönig API 获取附近的加油站信息。
  4. 错误处理:在 _fetchFuelPrices 方法中捕获并处理任何可能的异常。
  5. UI 显示:使用 ListView.builder 来显示获取的加油站信息和对应的燃油价格。

请确保你已经从 Tankerkönig 网站获取了一个有效的 API Key,并将其替换到代码中的 'YOUR_API_KEY' 位置。

这个示例展示了如何使用 tankerkoenig_dart 插件来获取并显示附近的燃油价格信息。你可以根据需要进一步扩展和自定义这个示例。

回到顶部