地図上で設定したルートを、任意の速度で移動する疑似的な位置情報として、NMEA・緯度経度・平面直角座標の各フォーマットでTCP/UDP送信できるGNSS/GPSシミュレーターを作りました。
位置情報を使うアプリは、ナビゲーション系に限りません。取得した位置情報を単純に地図上へ描画するだけのアプリや、対象の位置を監視して条件に応じて通知を出す侵入監視系のアプリなど、GNSS/GPSの入力を前提にしたアプリは色々あります。ただこの手のアプリの開発・デバッグは、実機を持って実際に外を移動しながら確認する、あるいは実際に対象が動くのを待つ、といった非効率な検証にならざるを得ないことが多くあります。
GnssSimulatorは、地図上でルートを設定し、任意の速度で移動する疑似的な位置情報を送信することで、この検証作業を机の上で完結させるためのツールです。送信フォーマットはNMEAだけでなく、緯度経度・平面直角座標のカンマ区切りやJSONも用意しているので、対象アプリが自社独自のフォーマットしか受け付けない場合でも、この出力を中継して変換する簡易ブリッジアプリを一つ挟めば、位置情報を必要とするあらゆるアプリのデバッグに応用できます。
ルートは地図をクリックして頂点を打つだけで作成でき、TCP/UDPでの送信、速度・送信間隔の設定、シミュレーション中の地図の自動追従にも対応しています。
自己完結型で配布しているので、.NET Desktop Runtimeのインストールなしでそのまま動きます。
GitHubにソースを公開しています。よければ覗いてみてください。