Skip to Content
構成設定API

構成 API リファレンス

Tracelet は、Tracelet.ready(Config) に渡される単一の Config オブジェクトを使用して完全に構成されます。このオブジェクトには、ネストされたすべてのサブ構成が含まれています。

ユースケースに最適なセットアップを構築できるように、ここではパラメータを列挙するだけではありません。これらが存在する理由と、現実世界でそれらを使用する必要がある*場合について説明します。


GeoConfig オブジェクト (config.geo)

すべての物理的な位置、精度、サンプリング ロジックを処理します。

翻訳されない

  • デフォルト: DesiredAccuracy.high (GPS)
  • 内容: 位置ハードウェアの目標精度。
  • オーバーライドする場合: ユーザーがいる都市を知ることだけが必要な天気予報アプリを構築している場合は、これを DesiredAccuracy.low (セルラー/Wi-Fi) にオーバーライドします。 high を使用するには物理 GPS チップが必要となり、バッテリーの消耗が 10 倍早くなります。

翻訳されない

  • デフォルト: 10.0 (メートル)
  • 内容: 新しいポイントが記録される前にデバイスが移動する必要がある最小水平距離。
  • オーバーライドする場合: 大西洋を渡る海上貨物船を追跡している場合は、これを 1000.0 (1 km) に設定します。船は急に 10 メートル旋回することはありません。10 メートルごとにポイントを保存すると、データベースに何十億もの無駄な行が作成されます。

翻訳されない

  • デフォルト: 25.0 (メートル)
  • 内容: ユーザーが「静止している」とみなされる最後の既知の点の周囲の半径。
  • オーバーライドする場合: 密集した都市環境では、GPS が高層ビルから「反射」します。ユーザーがカフェに座っている場合、GPS は通りから 40 メートル離れたところで反射する可能性があります。 stationaryRadius が小さすぎる場合、Tracelet はユーザーが歩いていると判断して GPS をオンにし、バッテリーを消耗します。ニューヨークや東京などの都市では、これを 50.0 に設定します。

翻訳されない

  • デフォルト: false
  • 内容: ネイティブ OS ジオコーダー (Apple Maps / Google Play Services) を自動的に呼び出して、座標を人間が判読できる住所に逆ジオコーディングします。
  • オーバーライドする場合: アプリが旅行の開始と終了を正確にユーザーに表示する必要がある走行距離トラッカーの場合は、これを true に設定します。ただし注意してください。リバース ジオコーディングにはライブ インターネット接続が必要で、位置情報パイプラインに HTTP 遅延が追加されます。 5 秒ごとにポイントを記録する場合は、OS によってレート制限がかかるため、これを使用しないでください。

disableElasticity & elasticityMultiplier

  • デフォルト: false1.0
  • 内容: ユーザーの速度に基づいて distanceFilter を動的に拡張します。
  • オーバーライドする場合: 時速 300 km で走行する高速列車を追跡している場合、デバイスはほんの一瞬で 10 メートルを移動します。 Tracelet は距離フィルターに速度を自然に乗算します。高速でのポイントをさらに少なくしたい場合は、elasticityMultiplier2.0 に増やします。速度に関係なく、正確な 10 メートルのドット トレイルが 必要 な場合 (ストリートビュー画像の描画など)、disableElasticity: true を設定します。

翻訳されない

  • デフォルト: 0.0 (無効)
  • 内容: 1 時間あたりの目標最大バッテリー消耗率。
  • オーバーライドする場合: 企業クライアントから、アプリが昼食時間までにドライバーの携帯電話を停止させると苦情が寄せられている場合は、これを 1.5 (1 時間あたり 1.5% の消費) に設定します。 Tracelet はバッテリー API を自動的に監視します。ドレインが 1.5% を超えると、desiredAccuracy のグレードがダウンし、電力を節約するために distanceFilter が動的に増加します。

AndroidConfig オブジェクト (config.android)

Android 固有の OS の制約と最適化。

翻訳されない

  • デフォルト: false
  • 概要: デバイスが完全に静止状態になると、OEM Wakelock をドロップします (MotionDetectionMode.smart を使用する場合にのみ適用されます)。
  • オーバーライドする場合: レストラン内で 30 分間料理を待つ配達ドライバーがアプリを使用する場合。ウェイクロックを解放すると、携帯電話の CPU がディープ スリープに入り、大量のバッテリーを節約しながら、ドライバーが車に戻り始めた瞬間にハードウェア加速度計に依存して即座に CPU を目覚めさせることができます。

LocationFilter オブジェクト (config.geo.filter)

不正な GPS データがデータベースに到達する前にクリーンアップします。

翻訳されない

  • デフォルト: 80 (m/s)
  • 内容: ユーザーがこの速度よりも速く移動していることを示唆する位置ジャンプを拒否します。
  • オーバーライドする場合: 80 m/s はおよそ 288 km/h に相当します (ほとんどの車よりも速い)。民間航空便を追跡している場合、ジェット機は時速 900 km で飛行します。これを 300 m/s に増やさなければなりません。そうしないと、Tracelet はすべてのロケーション ポイントを不具合だと判断し、それを破棄します。

翻訳されない

  • デフォルト: 50 (メートル)
  • 内容: この値よりも精度が悪いポイントは、総走行距離計に加算されません。
  • オーバーライドする場合: ギグエコノミーのドライバーにマイル単位で給料を払っている場合、GPS が川を渡って 500 メートル反射すると、ドライバーの給料が不当に膨らむことになります。このしきい値を厳密に維持すると (例: 30)、証明可能な高精度の距離に対してのみ料金を支払うことが保証されます。

翻訳されない

  • デフォルト: false
  • 内容: ユーザーが偽の GPS スプーファー アプリを使用しているかどうかを検出します。
  • オーバーライドする場合: Pokémon GO クローンまたはライドシェア アプリを構築している場合、ユーザーはシステムを騙すために位置情報を偽装しようとします。これを true に設定すると、偽の座標が即座に破棄されます。

AppConfig オブジェクト (config.app)

アプリのライフサイクル動作を制御します。

翻訳されない

  • デフォルト: true
  • 内容: ユーザーが最近使用したアプリのリストからアプリをスワイプしたときに追跡を停止する必要がありますか?
  • オーバーライドする場合: ソーシャル アプリ (友達を探す) の場合、ユーザーはアプリを強制終了すると追跡が停止することを期待します。企業の車両追跡では、ドライバーは関係なく追跡されなければなりません。フリート追跡に stopOnTerminate: false を設定すると、ユーザーがアプリを強制終了すると、Tracelet がバックグラウンドで即座に再起動します。

エンタープライズ構成

翻訳されない

  • 内容: SQLCipher を使用して、保管時のローカル SQLite データベースを暗号化します。
  • 使用する場合: HIPAA 準拠の患者追跡または軍人の追跡を行っている場合、デバイスへのローカルの物理的アクセスにより、過去のルートが侵害される可能性があります。暗号化キーを提供すると、デバイスが盗難された場合にデータベースが使用できなくなります。
  • リクエスト/使用方法: Tracelet は暗号化ヘルパーを提供します。 await tl.Tracelet.generateEncryptionKey() を呼び出して、最初のアプリ起動時に安全なランダムな 256 ビット キーを生成し、それを安全に保存し (例: flutter_secure_storage を使用)、その後の起動時にそれを Config に渡します。
    // 1. Generate & store on first run final secureKey = await tl.Tracelet.generateEncryptionKey(); await secureStorage.write(key: 'db_key', value: secureKey); // 2. Pass to config final config = tl.Config( security: tl.SecurityConfig(encryptionKey: secureKey), );

翻訳されない

  • 内容: 追跡が自動的に無効になる地理的ポリゴンを定義します。
  • 使用する場合: ヨーロッパの多くの国では、労働組合の規定により、雇用主が自宅や労働組合会館で昼休みをとる配送ドライバーを追跡することを禁止しています。組合ホールを PolygonZone として定義すると、Tracelet は彼らが中にいる間は追跡をブラックアウトし、彼らが退出したときにのみ再開します。
  • 作成方法: tl.PolygonZone オブジェクトのリストを PrivacyConfig に渡します。
    final config = tl.Config( privacy: tl.PrivacyConfig( zones: [ tl.PolygonZone( id: 'union_hall', points: [ tl.LatLng(48.8566, 2.3522), tl.LatLng(48.8568, 2.3525), tl.LatLng(48.8563, 2.3530), ] ) ] ) );