GeoJSON インポート
地下鉄などGPSをロストした場合、ポイントがワープする場合があります。 Turbo GPXではTrackのGap機能でワープを除外することができますが、もう1つの方法としてポイントを補完する方法があります。 補完は、編集機能を使用して1点ずつ追加することもできますが、GeoJsonファイルをインポートすることで補完することもできます。
対応ファイルと制約
外部で作成・配布されている GeoJSON ファイルをインポートします。
鉄道・道路・航路などの 線データ を想定しています。
ファイル形式
- GeoJSON(
.geojson/.json) - FeatureCollection 形式
対応ジオメトリ
- LineString
- MultiLineString
以下のデータはインポート対象になりません:
- Point のみのデータ
- Polygon / MultiPolygon のみのデータ
- FeatureCollection ではない単体ジオメトリ
GeoJsonは点・線・面(場所や形)を機械が扱いやすく書いたJSON。
ファイルサイズについて
- 1024KB を超える GeoJSON ファイルはインポートできません
- データ量が多い場合、処理に時間がかかることがあります
データの補正・変換について
インポート時には、以下の処理が行われることがあります:
- 線データのトリミング(駅基準など)
- Point データの線スナップ(距離指定)
- 駅名などの属性情報を Label / Description へ書き込み
- 時刻や数値情報の正規化
これらの処理は、設定内容に応じて自動的に適用されます。
インポートできない場合について
GeoJSON インポート は、内容が仕様に合わない場合、 ファイルを読み込まず処理を中断します。
代表的なケース:
- 対応ジオメトリが含まれていない
- 座標配列が空、または不正
- データ構造が GeoJSON 仕様に沿っていない
- ファイルサイズ制限を超えている
この場合、エラーメッセージが表示されます。
オプション
マップ画面の[Option]タブで設定できます。
| 項目 | 内容 |
|---|---|
| Distance | ポイント→線スナップ許容距離 |
| Trim | 必要区間だけを切り出す |
| Set Start/End Pins | 開始と終了にピンを立てる |
| Set Name to | 名前をセットする場所 |
例えば、駅路線をインポートする場合、駅(ポイント)を路線(線)の位置が一致しない場合があります。それを許容する範囲をDistanceで指定します。Trim設定を有効にすると開始駅、終了駅を指定している場合、開始~終了の範囲外を除外します。Set Start/End Pinsを有効にすると、開始/終了地点にピンを立てます。
注意事項
- GeoJSON の属性(properties)は、すべてが反映されるわけではありません
- 線の向きや分割状態は、元データに依存します
- インポート結果は、後から編集・調整が可能です
GeoJSON と GPX の比較
| 観点 | GeoJSON | GPX |
|---|---|---|
| 目的 | 地理データ汎用(点・線・面) | GPSログ特化(主に軌跡) |
| データ表現 | JSON(FeatureCollection / Feature) | XML(gpx / trk / trkpt) |
| 形状 | Point / LineString / Polygon など | Track / Route / Waypoint(点列中心) |
| 属性(プロパティ) | properties に自由に持てる | name / desc 等+extensions |
| 時刻 | 任意(必須ではない) | trkpt に time を持つのが一般的 |
| 標高 | 任意(属性として保持) | ele が標準で定義 |
| 主な用途 | GIS、地図描画、道路・鉄道・境界 | ラン・登山・サイクリングのログ |
GeoJsonの作成
overpass turbo(https://overpass-turbo.eu/) サイトにアクセス。
次のクエリを入力し[実行]する。
[out:json][timeout:60];
area["name"="Roma"]["boundary"="administrative"]->.a;
(
node(area.a)["railway"="station"]["name"="Ottaviano"];
node(area.a)["railway"="station"]["name"="Manzoni"];
)->.stations;
rel(area.a)["route"="subway"]["ref"="A"]->.r;
way(r.r)->.tracks;
(.stations; .tracks;);
out geom;
[エクスポート]からGeoJsonを選択。