このリポジトリは KoPpoMai のコンテンツに対して使う移動軌跡データ (Records
) を、GPSBabel で生成された GeoJSON から変換するものです。
- GPSログの取得には Android 端末を用いました
- Google Pixel 8a, Android 15 (Build AP4A.250205.002)
- アプリは GPS Logger を用いて、
.gpx
ファイルとして出力しました
- 続いて .gpx ファイル(XML) を GPSBabel に読み込ませて、GeoJSON に変換します
- Windows 11 23H2 (Build 22635.3737)
- GPSBabel 1.10.0
- 最後に、
src\GPSBabelToKoPpoMaiConverter.ts
を実行します- Node.js 20.11.0
- typescript 5.7.3
- この git リポジトリを git clone コマンドなどでダウンロードします
- Node.js を導入します (npm も同時にインストールされます)
- このリポジトリのディレクトリでターミナルを開き
npm install
を実行します
Note
なお、このリポジトリでの開発には PNPm を利用しています。コードの編集が必要な際はこちらも導入してください。
- GPSBabel を用いて、GPSログを GeoJSON の形式に変換します
- このリポジトリの
GPSBabelToKoPpoMaiConverter.ts
を開き、INPUT_FILE_PATH
に変換後ファイルのパスを入力します - このリポジトリにカレントディレクトリを移動した上で、ターミナルより
tsc
を実行します (/dist
ディレクトリが作成されているはずです) - そのまま
node .\dist\GPSBabelToKoPpoMaiConverter.js
を実行します - 変換後のファイルの出力先が表示されます
Error: properties.created_at がKoPpoMaiの形式ではありません
- GeoBabel で変換後のファイルの
properties.created_at
が存在しないか読み込めない形式であることが原因です。properties
キーの中にcreated_at
キーを作成し、GPSログの作成日時を以下の形式で書いてください。YYYY-MM-DDThh:mm:ssStt:mm
S
は対UTCタイムゾーンの符号ですtt:mm
はUTCタイムゾーンに対する時差の時間と分で、例えばAsia/Tokyo
なら+09:00
です
- 例:
2025-02-03T12:34:56+09:00
Note
KoPpoMai は常にシステムのロケールとファイルに記載された時間が同じになることを前提としていると考えられます。このスクリプトはタイムゾーンを考慮せず変換を行うことに注意してください。
GeoBabel で出力される日付時刻の形式は 2025-02-03T12:34:56T+09:00
のようにタイムゾーンが指定されていますが、このスクリプトを用いて変換を行う場合は Record を読み込ませた先のデバイスのタイムゾーンにおける 2025-02-03T12:34:56
が時刻として利用されます。
Error: ENOENT: no such file or directory
- エラーの通り、GeoBabel で変換後のファイルの場所が間違っています。
src/GPSBabelToKoPpoMaiConverter.ts
において、INPUT_FILE_PATH: string
の値を書き換えてください。- その後
tsc
を実行してください。