English | 中文

Portal DB

Niantic Ingress Intel マップ向けの IITC ローカルポータルデータベースプラグインです。

Portal DB は Intel マップを閲覧中にポータル記録を受動的に収集し、IndexedDB に保存し、移動ポータルを検知し、他の IITC プラグインに信頼できる座標・陣営データを提供します。

どんなユーザー向けか

Portal DB は、現在画面に表示されていないポータル情報も参照したいエージェントやプラグイン開発者に特に役立ちます。ポータル履歴、移動検知、あるいは安定したローカルデータ層に依存する計画・分析ワークフローに向いています。

主な機能

仕組み

このプラグインは Intel マップ上の生エンティティデータを取り込み、それをローカルのポータル記録セットへ変換します。その結果、他のプラグインは現在の表示範囲外にあるポータルでも、永続化されたデータ層をポータル検索サービスとして利用できます。

そのため Portal DB は、IITC エコシステム内で単なる表示系ツールではなく、バックエンド寄りの基盤プラグインとして機能します。

API リファレンス

Portal DB は window.plugin.portalDB を通じて機能を公開します。すべてのアクセスメソッドは非同期で、Promise を返します。

getPortal(guid)

GUID を指定して単一のポータル記録を取得します。

// 例: ポータルが存在するか確認し、座標を出力する
window.plugin.portalDB.getPortal('your-portal-guid')
  .then(portal => {
    if (portal) {
      console.log(`発見: ${portal.latE6}, ${portal.lngE6}`);
    } else {
      console.log('ローカル DB にポータルが見つかりません');
    }
  });

getPortalsInBounds(bounds)

指定したマップ範囲内の保存済みポータルを取得します。

// 例: 現在の表示範囲内にある保存済みポータルを検索する
const bounds = map.getBounds(); // Leaflet LatLngBounds
window.plugin.portalDB.getPortalsInBounds(bounds)
  .then(results => {
    console.log(`このエリアで ${results.length} 個のポータルを発見しました。`);
    results.forEach(p => console.log(p.guid, p.team));
  });

戻り値の構造

各メソッドは以下の形式のポータルオブジェクトを返します。

{
  "guid": "...",
  "latE6": 35689500,
  "lngE6": 139691700,
  "team": "E",
  "lastSeen": 1707000000
}

使い方

  1. いつも通り Intel マップを閲覧し、プラグインにバックグラウンドでポータルデータを収集させます。
  2. 移動ポータルや保存済み記録を確認したいときは、ツールボックスの Portal DB を開きます。
  3. ExportImport を使ってローカルデータベースをバックアップまたは移行します。
  4. 別の IITC プラグインを開発している場合は、公開 API を使って表示範囲外のポータルも参照できます。

開発者向けメモ: 「この GUID のポータルはどこにあるか?」という問いに、現在描画されていない状態でも答えたいなら、Portal DB が最も適したローカルデータソースです。

よくある質問

変更履歴

バージョン 0.3.0

バージョン 0.2.0

バージョン 0.1.2