MaplatTransform は Maplat で生成された座標変換定義を使用して、2つの平面座標系間で 座標変換を実行する JavaScript ライブラリです。Maplat エコシステムの実行時変換エンジン であり、姉妹パッケージの @maplat/tin が TIN 定義を生成し、MaplatTransform がそれを実行時に適用します。
MaplatTransform は Apache License 2.0(バージョン 0.5.3 以降)のオープンソースソフトウェアです。
英語版はこちら / Read this document in English
- Maplat 生成の TIN 定義を用いた2平面座標系間の座標変換(双方向・トポロジー維持)
- V2/V3 コンパイル済みフォーマット対応(V3 は N 境界頂点で高精度)
- 標準直交座標系・Y軸反転座標系・鳥瞰図歪座標系など複数座標系サポート
- サブマップ選択・ビューポート変換・地図間ビューポート同期(処理2〜4)
- 変換状態の保存・復元
特定リリースに紐づく情報(ADR-0012)。下記のバージョン
0.5.3は現在の リリース値です。リリースごとに更新してください。
# pnpm(推奨)
pnpm add @maplat/transform
# npm
npm install @maplat/transformimport { Transform } from '@maplat/transform';
// Maplat で生成されたコンパイル済み変換定義を適用
const transform = new Transform();
transform.setCompiled(compiledData);
// 順方向の変換(ソース座標系 → ターゲット座標系)
const transformed = transform.transform([100, 100], false);
// 逆方向の変換(ターゲット座標系 → ソース座標系)
const restored = transform.transform(transformed, true);厳密モードでの変換エラー時、逆変換が許可されていない状態での逆変換実行時、 不正なデータ構造での変換実行時にエラーをスローする場合があります。 エラーが発生した場合は変換定義自体の修正が必要です。変換定義の修正は @maplat/tin を使って行ってください。
<script src="https://cdn.jsdelivr.net/npm/@maplat/transform@0.5.3/dist/maplat_transform.umd.js"></script>サブマップ選択・ビューポート変換・地図間ビューポート同期については Wiki Tutorials を参照してください。
- API シグネチャ(リリース依存):
docs/api/を参照 - 概念解説(リリース非依存): Wiki API-Reference を参照
- Transform Internals(実行時ノート): docs/transform-internals.ja.md を参照
pnpm test
package.jsonのenginesフィールドから自動抽出(ADR-0012: 特定リリースに紐づく)。
- Node.js:
>=20以上 - pnpm:
>=9以上(推奨・npm も可)
MaplatTransform は Code for History が運営する Maplat エコシステムの一部です。全容は下記エコシステム図を参照してください。
📖 エコシステム図 — (図は現在外部非公開の計画リポジトリにあります。 公開ビューアからは下記の姉妹リポジトリ表で代替します)
| リポジトリ | ライセンス | npm | 役割 |
|---|---|---|---|
| Maplat | Apache 2.0 | @maplat/ui |
メインビューア |
| MaplatCore | Apache 2.0 | @maplat/core |
コアライブラリ |
| MaplatTin | Apache 2.0 | @maplat/tin |
TIN 変換 |
| MaplatTransform | Apache 2.0 | @maplat/transform |
座標変換 |
| MaplatEditor | Apache 2.0 | — | データ作成ツール(デスクトップ) |
MaplatEditor は上記ビューアライブラリが描画する地図・POI を作成する データ作成ツールです。Maplat エコシステムはエンドツーエンド: MaplatEditor で作成し、いずれかのビューアライブラリで公開、という流れになります。
注記: MaplatTransform は座標変換の実行のみを行います。変換定義の作成・編集は @maplat/tin を使って行ってください。
| 対象 | リンク | 用途 |
|---|---|---|
| プロジェクト情報・機能紹介・事例 | https://www.maplat.jp/ | 製品サイト |
| 支援企業・案件問い合わせ | https://www.nayuta-inc.co.jp/ | コーポレートサイト(那由多社) |
ADR-0013: Apache ライセンスのリポジトリ(本リポジトリ)は両サイトへリンクします。 MIT ライセンスの姉妹リポジトリ(Weiwudi / Quyuan / Chuci)へは那由多社リンクを置きません。
Apache License 2.0 — 詳細は LICENSE を参照。
Copyright 2019-2026 Kohei Otsuka, Code for History / Nayuta, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
特許注記: Maplat の座標変換技術は日本国内で特許登録されています (Patent No. 6684776)。
過去のバージョン: 0.5.3 より前のバージョンは Maplat Limited License 1.1 の もとで配布されていました。Apache 2.0 へのライセンス復帰はバージョン 0.5.3 以降に 適用されます。npmjs.com で公開されている過去のバージョンは、それぞれ元の 制限ライセンスの条件が維持されます。
- Kohei Otsuka
- Code for History
あなたの貢献をお待ちしています。 イシューやプルリクエストは大歓迎です。