GPSを取り付けたRaspberry Piの現在位置をGoogle Mapで表示するには FoxtrotGPS版

GPSモジュールを取り付けたRaspberry Piの現在位置を、Google Map上に表示してみたいと思います。地図を拡大するとこのような感じです。gpsdのTCPソケット通信機能を有効にすれば、1つのデスクトップで複数のRaspberry Piの位置を表示することも可能なようです。

ただし、表示はWeb版のGoogle Mapではなく、Linux用のFoxtrotGPSを使用させて頂きました。

設定方法を記録しておこうと思います。


FoxtrotGPSによる位置情報表示設定手順

Raspbianインストール

OSはRaspbianを使用させて頂きました。

初期設定は、宜しければこちらの記事を御覧ください。

GPSモジュールの取り付けとgpsdサービスの有効化

こちらの記事の内容に従って、GPSモジュールを取り付けてgpsdサービスを有効化しました。

Webブラウザによるデスクトップへアクセス有効化

こちらの記事の内容に従って、noVNCを有効にすることで、スマートフォンや他のPCからWebブラウザでデスクトップへのアクセスが可能になります。

スマートフォンや他のPCでRaspberry Piの現在位置を表示したい場合、基本的にこちらの方法をお勧め致します。

他の方法としまして、Linux PCでFoxtrotGPSを起動、gpsdへTCPソケット接続する方法もあります。そちらの方法は後述致します。

FoxtrotGPSのインストール

aptコマンドでFoxtrotGPSをインストールしました。

FoxtrotGPS設定

画面左上の電球アイコンから、各種情報の表示と設定変更が可能のようです。画面右側の情報表示欄の「←」「→」ボタンをクリックすると、位置情報(トラック)の記録/ロード機能や設定(Configuration)の変更が可能のようです。地図はGoogle Mapsの他、OSMやMaps-for-free.com等の切換が可能のようです。

gpsdのTCPソケット通信有効化設定

FoxtroGPSやgpsmon等TCPソケット通信に対応したgpsdクライアントは、他のPCのgpsdの情報を表示する事が可能です。

そのためには、gpsd(サーバ)側のTCPソケットを有効にする必要があります。次の手順になります。

  1. /lib/systemd/system/gpsd.socketファイルを編集します。

    ListenStream行を変更します。たとえば特定のセグメントに公開する場合は192.168.0.0等の公開対象のIPアドレス、すべてのネットワークに公開する場合は0.0.0.0に変更します。
  2. /etc/default/gpsdファイルを編集し、gpsdの-Gオプションを有効にします。

    GPSD_OPTIONS行を変更します。

  3. gpsd.socket, gpsd.serviceを再起動します。

以上の設定変更で、他のPCからgpsmonやFoxtrotGPSで接続できるようになりました。


Google Mapを使用させて頂く都合上、地図を表示するためには、インターネットに常時接続する必要があります。

GPS付きのRaspberry Piを車載した場合など、インターネット接続できないオフライン環境になる場合、地図が正しく表示できなくなる場合があります。

その場合、FoxtrotGPSのトラッキング(位置情報の記録)機能を使用するか、または地図表示はインターネット接続可能なPCを使用しつつ、Raspberry Piとの通信はgpsdのソケット通信を併用することで、オフラインの状態を補えるかと思います。

このあたりは、使用する状況に応じて、いろいろと設定を調整されると宜しいかと思います。

インターネットが無い環境で地図を表示する記事はこちらになります。

スポンサーリンク

フォローする

スポンサーリンク