データをアップロードせずに使える
入力ファイルや軌跡データを外部へ送信せずに扱え、主要な処理は使用する端末の中で完結します。
GPX / KMZ / KML を読み込み、地図上で再生し、そのまま 4K mp4 に書き出せます。 地図動画づくりに必要な調整を、ひとつの画面にまとめたブラウザアプリです。
入力ファイルや軌跡データを外部へ送信せずに扱え、主要な処理は使用する端末の中で完結します。
ブラウザで開けば、その場で操作を始められます。会員登録やアカウント作成は不要です。
GPX だけでなく KMZ / KML にも対応。 手元の移動ログを変換し直さず、そのまま動画制作の起点にできます。
カメラ、ラベル、コメント、クレジット、書き出し設定をひとつの UI で扱えます。
国土地理院ベクトル地図をベースに、国内利用で違和感の少ない見た目に寄せています。
地図表現と出典表示を整理しながら、公開や編集に回せる動画へ仕上げられます。
国土地理院の地図を使って4K動画を作れることは、このソフトの大きなメリットです。都道府県名・市区町村名の表示に使う生成済みデータ、山岳地形で使う標高タイル、使用ライブラリの出典とライセンスも整理しているため、公開前の確認を進めやすくなります。
Google Maps は、公式サイト画面をキャプチャーして動画にすることは可能ですが、地図タイルなどを取得して動画素材として保存・出力する使い方は利用条件として認められていません。そのため、Google Maps上に GPS 軌跡を表示して mp4 化するアプリが作成できない課題があります。
地理院地図は、国土地理院コンテンツ利用規約と出典記載ルールに従い、必要な出典を記載して利用できます。出典を示す前提で、商用利用を含む配信・放映における動画素材として扱いやすいのが利点です。この点が、Google Maps と比べたときの大きな違いです。
ブラウザでアプリを開き、UI と設定を初期化し、地図描画コンポーネントを準備します。
ユーザーがローカルの GPX / KML / KMZ を選び、軌跡点、時刻、コメントなどをブラウザ内で解析します。KMZ は ZIP 展開して内部 KML を読みます。
国土地理院の地図表示に必要なデータを実行時に取得し、ベース地図を描画します。山岳地形を有効にした場合は、標高タイルも必要な範囲だけ取得します。
日本沿岸の補完データ(N03 由来)、市区町村本庁座標(P05 由来)、人口順位データ(e-Stat / 令和2年国勢調査 由来)、日本周辺の広域陸地データなど、公的機関や公開データをもとに作成した生成済みデータを読み込みます。
軌跡からカメラ移動を計算し、地図固定モードまたは軌跡追跡モードに応じて表示中心とズームを決定します。あわせて都道府県名・市区町村名、鉄道路線の重ね表示、コメント、クレジットの重ね方を決め、山岳地形が有効な場合は必要な地形タイルの範囲も見積もります。
ベース地図、軌跡、都道府県ラベル、市区町村ラベル、鉄道路線の重ね表示、コメント、クレジットをブラウザ上で合成し、リアルタイムに再生します。山岳地形が有効な場合は、プレビュー用にローカル生成した陰影も重ねます。
同じカメラと重ね表示の構成で再描画し、ブラウザ側でエンコードして mp4 を生成します。山岳地形が有効な場合は、書き出し前に必要な地形タイルだけを抽出し、ローカルで陰影を生成して使います。鉄道路線が有効な場合は、鉄道路線の詳細データを路線ごとにまとめ直した線を同じ構成で重ねます。
生成した mp4 をローカルへ保存します。入力ファイルも出力動画も、主要な処理はブラウザ内で完結します。
%%{init: {'flowchart': {'padding': 4}}}%%
flowchart TD
A["入力と設定"] --> B["地図の表示ルールを準備する"]
A --> G1["画面づくりに使う情報
軌跡データ
再生時刻
カメラ設定"]
B --> C["地図表示の土台を用意する"]
C --> D["海と陸の形を準備する
広域の陸地と日本の詳細な陸地を重ね
粗い輪郭を置き換える"]
C --> E["地図の表示内容を整理する
不要な要素を消し
道路や県境やラベルの対象を決める"]
C --> F["山岳地形を準備する
有効な場合は標高データから陰影を作る"]
C --> R["鉄道路線の重ね表示を準備する
鉄道路線の詳細データを路線ごとにまとめ直し
表示したい路線だけを描画対象にする"]
G1 --> G["その時点の地図の状態を計算する"]
G --> H["その時点の位置と拡大率に地図を合わせる"]
H --> I["地図本体を描画する"]
D --> Z["画面を描画する"]
E --> Z
I --> Z
F --> Z
R --> Z
G --> J["地図の上に重ねる情報を準備する
地名ラベル
軌跡表示
補助情報"]
J --> Z
Z --> O["プレビュー画面または書き出し画像として出力する"]
%%{init: {'themeVariables': {'fontSize': '12px'}, 'flowchart': {'padding': 4}}}%%
flowchart TD
A["国土地理院の標高タイルを取得"] --> B["標高データを読み込む"]
B --> C["欠損や空白を埋めて、扱いやすい地形面を作る"]
C --> D["地形の傾きと向きを調べる
平地か山地かを見分ける"]
C --> E["近距離の起伏を作る
細かい尾根や谷の強さを見る"]
C --> F["広域の起伏を作る
山塊の大きなうねりを見る"]
D --> G["複数方向から光を当てたような陰影を作る
4方向の光を合成する"]
E --> H["細かい山地らしさを判定する
細い尾根や谷があるかを見る"]
F --> I["大きな山塊らしさを判定する
広い範囲で山が盛り上がっているかを見る"]
C --> J["標高の高さを参照する
標高 180〜760m は山地判定に使う
70m 未満は白寄りに抑える"]
H --> K["山岳地帯マスクを作る
細かい起伏・広い起伏・傾き・標高を組み合わせる"]
I --> K
J --> K
G --> L["淡い緑の基本色を作る
平地は白寄り
山地だけ色を乗せる"]
K --> L
G --> M["尾根の白い筋を強調する
尾根らしい細部だけを白くする"]
J --> N["高いピークを白点で強調する
標高 650〜1500m のピークを目立たせる"]
L --> O["色と陰影を合成する
最後に少しだけぼかしてなじませる"]
M --> O
N --> O
O --> P["1枚の山岳地形タイル画像として出力"]
%%{init: {'themeVariables': {'fontSize': '12px'}, 'flowchart': {'padding': 4}}}%%
flowchart TD
A["入力と設定"] --> B["書き出し条件を決める
動画サイズ
フレームレート
画質と保存先"]
B --> C["書き出し前の準備をする"]
C --> C1["動画全体の長さとフレーム数を決める"]
C --> C2["山岳地形が有効なら
標高データから陰影を事前計算する"]
C --> C3["市区町村ラベルが有効なら
表示計画を事前に準備する"]
C --> C4["鉄道路線が有効なら
鉄道路線の詳細データを路線ごとにまとめ直す"]
C --> C5["動画エンコーダを準備する"]
C1 --> D["各フレームの描画処理"]
C2 --> D
C3 --> D
C4 --> D
C5 --> D
D --> E["その時点の地図の状態を計算する
再生時刻
軌跡位置
カメラ設定"]
E --> F["その時点の位置と拡大率に地図を合わせる"]
F --> G["地図本体を描画する"]
G --> H["必要なら山岳地形を重ねる"]
H --> I["地図の上に重ねる情報を描く
地名ラベル
鉄道路線の重ね表示
軌跡表示
補助情報"]
I --> J["1フレーム分の画像を完成させる"]
J --> K["動画エンコーダへ渡す"]
K --> M["全フレーム完了か判定する"]
M -->|いいえ| D
M -->|はい| N["動画を仕上げる"]
N --> O["MP4 ファイルとして保存する"]
地図描画や KMZ 展開、山岳地形のローカル生成、mp4 出力には、MapLibre GL JS、JSZip、pako、Mediabunny などのオープンソースライブラリと、WebCodecs、fetch、Canvas 2D などのブラウザ標準機能を利用しています。
使用データとして、国土地理院、国土地理院 DEM / 陰影起伏図、国土数値情報(N03・P05)、e-Stat、Natural Earth を使用しています。使用データの利用条件確認は利用者責任となります。