本文へスキップ

車載ディスプレイのための地図と速度警告

現在の速度、制限速度、 そして実際に走っている道路。

Z-Maps Car は、すでに車に付いている Android ヘッドユニット上で OpenStreetMap のデータを使って動きます。Google Play 開発者サービスも API キーも追加機器も不要 — APK を入れれば走り出せます。

  • Android 6.0 以降
  • Google Play 開発者サービス不要
  • API キー不要・利用量制限なし
  • モバイル通信が切れても動き続けます

400 mグエン・ヴァン・リン通りを右折12 分 ・ 8.4 km

62km/h

国道1号線 — ダナン市ホアヴァン

42.8 km走行距離
54 km/h平均
88 km/h最高

GPS 良好 ・ 速度は測位から算出

実機の画面で

ひと目で読める表示

モックアップではなく、実機のスクリーンショットです。

運転中
運転中速度、制限速度標識、道路名。フロントガラス越しに一瞬で読める大きさで。
目的地を探す
目的地を探すベトナム語の発音記号なしで入力しても見つかります。圏外でも動作します。
先の道を確認
先の道を確認地図を動かして先を見た後、自動で自車の追従に戻ります。
0登録が必要な API キーOpenFreeMap のタイル、利用量制限なし
512 MB端末上の地図キャッシュ一度走った道はオフラインでも表示されます
10 MB32bit 機向け APKarm64 は 13 MB
46通過している単体テスト速度、制限、警告、走行記録

できること

画面に出るものはすべて GPS と地図から

本アプリは車の ECU から何も読み取りません。表示はすべて測位と地図データから導かれます — だからこそ、APK を入れるだけで設定は完了です。

GPS が弱い機種でも速度を出す

市販ヘッドユニットには速度をずっと 0 と報告するものが少なくありません。本アプリはそれを検知し、連続する測位から速度を自分で計算する方式に切り替えます。

通達 31/2019 に基づく制限速度

データに maxspeed があればそれを使います。ない場合は道路種別と市街地かどうかから推定し、推定であることが分かるよう「~ 推定値」を明示します。

うるさくならない警告

3 km/h のヒステリシスにより、制限速度付近を走っているときに GPS のゆらぎで警告が点滅することを防ぎます。重大度に応じて 30/20/12 秒の間隔 — ただし悪化したときは即座に知らせます。

電波が切れても地図は残る

MapLibre が走った道を 512 MB までキャッシュします。通信のない状態で通い慣れた道を走っても、地図はそのまま表示されます。

制限速度が違う? その場で直せます

推定が外れている場所は運転画面から修正できます。入力した数値はその区間に記憶され、次に通るときに使われます。

走行記録を保存

距離、時間、平均速度と最高速度、超過回数を走行ごとに保存します。300 m 未満の移動は記録しません。

技術選定

何を選び、何を選ばなかったか

以下の各行は、別の選択肢もあり得た箇所です。何をインストールすることになるのかが分かるよう、明記しています。

領域採用理由
対象端末minSdk 23 → targetSdk 35新しい機種だけでなく、古い中国製ヘッドユニットも対象に含めるため。
地図描画MapLibre Native 11.11ベクタータイル、GPU 描画、深いカスタマイズが可能な本格的な Android SDK。
タイル配信元OpenFreeMap (liberty)OpenMapTiles スキーマ、API キーも利用量制限も不要 — 誰も登録手続きをしなくて済みます。
オフライン512 MB のアンビエントキャッシュ走った分をキャッシュします。県全体を先にダウンロードしなくても、途中で電波が切れて地図が残ります。
位置と速度素の LocationManagerFused Location は Google Play 開発者サービスのない端末では無反応で、それが主要な対象層だからです。
制限速度OSM の maxspeed → 道路種別からの推定ベトナムの道路は maxspeed タグが欠けていることが非常に多く、公開タイルはそもそも保持していません。

バージョン 0.1.0

ヘッドユニットへの導入は約 5 分

お使いの機種のチップに合う APK をダウンロードし、提供元不明のアプリのインストールを許可して、位置情報を許可するだけです。手順はガイドで一つずつ説明しています。