技術ブログ

プログラミング、IT関連の記事中心

FlutterでGPSの情報(緯度、経度)の配列から合計移動距離を計算して、キロメートル単位で返却する方法

目次

はじめに

本記事は、「google_maps_flutter」のライブラリで取得した「LocationData」から住所を取得する方法です。
google_maps_flutter」に関しては、以下の記事をご覧ください。

pub.dev

GPSの情報(緯度、経度)の配列から合計移動距離を計算して、キロメートル単位で返却する

pubspec.yaml」に以下を追加します。

dependencies:
  ~~~省略~~~
  geolocator:
  ~~~省略~~~

以下のクラスを作成します。
getTotalOverallDistance」メソッドを実行することで、戻り値に合計距離(km)が返却されます。

import 'package:geolocator/geolocator.dart';

class MapService {
  /// コンストラクタ
  MapService();

  /// GPSの情報(緯度、経度)の配列から合計移動距離を計算して、キロメートル単位で返却する
  double getTotalOverallDistance(
      List<double> _latitude, List<double> _longitude) {
    // 合計移動距離(メートル)
    double resultMeters = 0;
    for (var i = 0; i < _latitude.length - 1; i++) {
      // 緯度経度から移動距離をメートル単位で取得する
      resultMeters += Geolocator.distanceBetween(
          _latitude[i], _longitude[i], _latitude[i + 1], _longitude[i + 1]);
    }
    // 1000で割って、メートルをキロメートルに変換する
    return resultMeters / 1000;
  }
}