# 旧バージョンからの移行

Mini Tokyo 3D の各メジャーリリースでは、いくつかの互換性を損なう変更が行われます。拡張性と使いやすさを向上させるために、後方互換性を手放す必要がありますが、メリットがある場合にのみ行うことを目指しています。

# v4.0.0 への移行

# 互換性を損なう変更

# Mapbox GL JS v3 へのアップグレード

Mini Tokyo 3D は Mapbox GL JS v3 に依存するようになり(従来は v2)、組み込みのマップスタイルもそれに合わせて更新されました。mt3d.mapboxgl 名前空間経由でマップをカスタマイズしている場合や、内部の Mapbox マップを直接操作している場合は、一部の v2 API やスタイルの挙動が変更されているため、Mapbox GL JS v3 移行ガイド (opens new window)を確認してください。

# secrets.tokyochallenge および secrets.challenge2024secrets.challenge に置き換え

かつての東京公共交通オープンデータチャレンジ用の secrets.tokyochallenge と、2024 年チャレンジ用の secrets.challenge2024 は、どちらも廃止されました。以降は年号を含まない secrets.challenge を使用してください(毎年キー名を変更する必要がなくなります)。

const options = {
  /* ... */
  secrets: {
    odpt: '<公共交通オープンデータセンターのアクセストークン>',
    challenge: '<公共交通オープンデータチャレンジのアクセストークン>'
  }
};

詳しくは、Secretsをご覧ください。

# dataSources が組み込みデータソースを置き換え、id が必須に

v3.x では Map コンストラクタの options.dataSources は、組み込みの列車・フライトデータに加えて追加する GTFS データソースを指定するものでした。v4.0.0 では組み込みの ODPT および Mini Tokyo 3D データ自体が dataSources の要素となり、渡した dataSources がそのデフォルトの集合を置き換えます。組み込みデータを残したまま独自のソースを追加するには、dataSources を指定せずに実行時に Map#addDataSource で追加する(組み込みソースは削除されません)か、組み込みソースと独自ソースをまとめて dataSources 配列に含めてください。また、各 DataSource には一意の id が必要になり、Map#addDataSource および Map#removeDataSource のキーとして使われます。id を指定せずに追加したソースは個別に管理できません。

詳しくは、DataSourceをご覧ください。

# getModelPosition()getModelScale()options.center 基準に

相対的なメルカトル座標を計算するための原点は従来、東京駅付近に固定されていました。v4.0.0 では Map コンストラクタの options.center から導出されるため、Map#getModelPositionMap#getModelScale は初期のマップ中心点を基準とした値を返します(スケールはその緯度に依存します)。カスタム three.js レイヤーやプラグインは、東京駅付近を原点と決め打ちせず、これらのメソッドから実行時に位置を計算してください。デフォルトの中心のまま利用している場合は影響ありません。

# マップスタイルとローカライズ辞書を assets に移動

従来 Map コンストラクタの options.dataUrl から配信されていたマップスタイルとローカライズ辞書のファイル(osm-liberty.json および dictionary-<lang>.json)は、v4.0.0 ではバンドルと同じ場所にある assets フォルダから読み込まれるようになりました(style.json および dictionary-<lang>.json)。jsDelivr CDN を使う場合は自動的に配信されます。Mini Tokyo 3D を自分のアプリケーションにバンドルする場合は、dist に含まれる assets フォルダをバンドルと同じ場所に配置してください。gz 圧縮データは引き続き options.dataUrl から読み込まれます。また、新しいスタイルは以前のものと互換性がないため、それをベースにしたカスタムスタイルは作り直す必要があります。

詳しくは、Mini Tokyo 3D の使用をご覧ください。

# v3.0.0 への移行

# 互換性を損なう変更

# MiniTokyo3D クラスではなく mt3d 名前空間をエクスポート

従来の MiniTokyo3D クラスの代わりに、mt3d.Map クラスにコンストラクタオプションを渡して Mini Tokyo 3D マップのオブジェクトを作成します。mt3d 名前空間には Map クラスの他にも複数のクラスや Mapbox GL JS、three.js ライブラリ全体が含まれており、マップのカスタマイズに利用することができます。

const options = {
  container: 'mini-tokyo-3d',
  accessToken: '<Mapbox アクセストークン>'
};
const map = new mt3d.Map(options);

詳しくは、Mini Tokyo 3D の使用をご覧ください。

# プラグインフレームワークを再設計してすべてのプラグインを個別に提供

旧バージョンでは、いくつかのプラグインは Mini Tokyo 3D ライブラリに含まれる形で提供されていましたが、v3.0.0 ではプラグインフレームワークの設計を一から見直すとともに、すべてのプラグインを別モジュールとして提供するようになりました。このため、プラグインを追加する際には Map クラスのコンストラクタオプションとして、明示的に PluginInterface を実装したオブジェクトのリストを指定する必要があります。

const options = {
  /* ... */
  plugins: [mt3dPrecipitation(), mt3dFireworks()]
};
const map = new mt3d.Map(options);

詳しくは、プラグインの追加をご覧ください。

# コンストラクタオプション secrets.mapbox の代わりに accessToken を使用

従来 MiniTokyo3D コンストラクタのオプション secrets.mapbox で指定していた Mapbox アクセストークンは、accessToken に指定して Map オブジェクトを作成します。

const options = {
  /* ... */
  accessToken: '<Mapbox アクセストークン>'
};
const map = new mt3d.Map(options);

詳しくは、Mini Tokyo 3D の使用をご覧ください。

最終更新日時: 2026/7/26 23:34:08