Skip to content

Concepts.ja

Kohei Otsuka edited this page Jul 24, 2026 · 1 revision

Concepts(日本語)

MaplatTransform の背景と理論: コンパイル済みフォーマット・strict / loose モード・ トポロジー維持・座標系・処理1〜4 の概念。

目次


V2 / V3 コンパイル済みフォーマット

Transform.setCompiled() が受け付けるコンパイル済み変換定義には2つのモダンバージョンが あります:

  • V2 — マップのバウンディングボックスから算出した固定4点の境界頂点を使用。 シンプルで、多くの長方形地図で十分な精度を出します。
  • V3 — N個(4以上)の境界頂点を使用し、特にマップ端付近の変換精度を向上。

setCompiled() はどちらのフォーマットかを自動判別します。V3 のコンパイル済みデータは バージョン3以降の @maplat/tin で生成されます。

V2 以前の地図との後方互換性のため、レガシーコンパイル済みフォーマットも受け付けます。

Strict / Loose モード

生成された TIN が両方向でトポロジーを維持する場合、MaplatTransform は双方向全単射 (一対一かつ上への写像)の変換を保証します。現在の状態は Transform の静的定数および strict_status プロパティで参照できます。

状態 strict_status 挙動
トポロジー維持 STATUS_STRICT 双方向全単射を保証
トポロジー崩壊・厳密モード STATUS_ERROR 順方向変換のみ。transform(..., true) は例外をスロー
トポロジー崩壊・緩いモード STATUS_LOOSE 双方向変換は可能だが、全単射は保証されない

Transform.MODE_STRICTTransform.MODE_AUTOTransform.MODE_LOOSE は、TIN が トポロジーを維持できない場合にどのモードを採用するかを制御します。 これが、Maplat エコシステムが元の地図画像を歪めずに正確な地図と重ね合わせるための 理論的保証の核です。

トポロジー維持

変換は非線形かつ同相(トポロジーを保存)です。ソース空間で近い2点はターゲット空間でも 近い点へ写り、写像は両方向で連続です。これにより、元の地図を視覚的に歪めることなく、 リアルタイムの重ね合わせや GPS 連動が可能になります。

トポロジーを維持する TIN は任意の対応点から常に構築できるとは限りません。構築できない 場合は Strict / Loose モード で説明する挙動にフォールバックします。

座標系

MaplatTransform は Transform.VERTEX_*Transform.YAXIS_* 静的定数を通じて 複数のソース座標系を扱います:

  • VERTEX_PLAIN — 標準直交平面座標系
  • VERTEX_BIRDEYE — 鳥瞰図のような遠近歪みを持つ座標系
  • YAXIS_FOLLOW — Y軸方向をそのまま維持
  • YAXIS_INVERT — Y軸方向を反転(画面ピクセル空間など)

MapTransform を通じて利用する場合、すべての出力は EPSG:3857(Web Mercator)になります。

処理1〜4

MaplatTransform は座標操作を4つの「処理」に整理しています:

処理 クラス 目的
処理1 Transform 基本座標変換(ピクセルXY <-> ターゲットXY)
処理2 MapTransform サブマップ選択 + 重なり合うTIN間の座標変換
処理3 MapTransform ビューポート変換(ピクセルビューポート <-> EPSG:3857 5点)
処理4 MapTransform 共通の EPSG:3857 空間を中継した地図間ビューポート同期

処理2〜4 は処理1 の上に構築されます。具体的なコードパターンは Tutorials、 ライフサイクル概念は API-Reference を参照してください。 API シグネチャ一覧はリポジトリ内の docs/api/ にあります。


英語版はこちら / Read this page in English

See Also

MaplatTransform

Language / 言語

Pages / ページ

English

日本語

External / 外部

Clone this wiki locally