Monthly FB NEWS 月刊FBニュース 月刊FBニュースはアマチュア無線の電子WEBマガジン。ベテランから入門まで、楽しく役立つ情報が満載です。

特別寄稿

TraccarとD-PRSで構築するリアルタイム位置表示アプリ

7M4MON 野村秀明

2025年7月15日掲載

位置情報の送信 (HTTP API)

TraccarはHTTPのリクエストで位置情報を受信できます。
例: http://localhost:5055/?id=7M4MON&lat=34.7025&lon=135.4959

このURLをブラウザのアドレスバーに入力すると、Traccarの地図上に「大阪駅」付近に7M4MONのアイコンが表示されます。


無線機の設定

無線機側の設定は以下のようにしてください。キャプチャ画面はID-52のものです。
・  PCとの接続モードを「シリアルポート」に設定


・  USB接続の機能設定は、USBシリアルポート機能の「DVデータ」に設定


・  GPS送信モードを「D-PRS」に設定


・  シンボルは、Traccar側と同じものにしておきます。


パーサーの作成と解説

パーサースクリプト(dprs2traccar.py)の役割は、シリアルポートに接続された無線機からD-PRS形式の電文を受信し、必要な情報(コールサイン、緯度、経度)を抽出してTraccarに送信することです。このパーサーを実行している状態でシリアルポートからD-PRSのデータを受け取ると、Traccar上に送信元の無線機の位置が表示されます。

主な処理内容

●シリアルポートの接続:
COM5ポートに対してボーレート9600bpsで接続し、1行ずつデータを読み取ります。

実際の電文例
$$CRC9396,7M4MON>API705,DSTAR*:/020304h3437.54N/13534.14Eb/

  • ・  電文のフィルタリング: 先頭が「$$CRC」で始まる文字列だけを対象とします。
  • ・  正規表現によるパース: D-PRS 電文から、コールサイン、緯度、経度の文字列を抽出します。
  •      例: 3437.55N → 北緯34度37.55分 13534.15E → 東経135度34.15分
  • ・  10進変換処理: 分単位を小数に変換して、Traccarが受け取れる形式(10進数)にします。
  • ・  HTTPリクエスト送信: 変換した位置情報を、TraccarのAPI(port 5055)へ「GETリクエスト」として送信します。
  •      実際のリクエスト
  •      http://localhost:5055/?id=7M4MON&lat=34.626&lon=135.569
  • ・  例外処理: 読み込みエラーや変換エラーを標準出力に表示してスクリプトが停止しないようにしています。

このプログラム(dprs2traccar.py)は、GitHub上で公開しています。
https://github.com/7m4mon/dprs2traccar

自分の環境に応じてCOMポート番号や送信先のURLを調整してください。

おわりに

D-STAR無線機が出力するGPS情報をTraccarに連携させることで、無料でシンプルな地図表示システムを構築できました。

APRSの位置表示といえばaprs.fiが広く利用されていますが、Traccarを使って自前で構築するのも選択肢の一つです。自分の用途や環境に合わせて柔軟にカスタマイズできる点は大きな魅力になると思います。

2025年7月号トップへ戻る

サイトのご利用について

©2025 月刊FBニュース編集部 All Rights Reserved.