English | 日本語

Portal DB

面向 Niantic Ingress Intel 地图的 IITC 本地 Portal 数据库插件。

Portal DB 会在你浏览 Intel 地图时被动收集 Portal 记录,存入 IndexedDB,检测 Portal 位移,并为其它 IITC 插件提供可靠的坐标与阵营数据来源。

适合哪些用户

Portal DB 特别适合需要在屏幕之外继续引用 Portal 信息的特工与插件开发者。如果你的工作流依赖 Portal 历史、位移检测,或需要稳定的本地数据层来支持规划和分析,这个插件会非常有用。

核心功能

工作原理

这个插件会拦截 Intel 地图中的原始实体数据,并将其转化为本地 Portal 记录集合。随后,其他插件就可以把这层持久化数据当作 Portal 查询服务,即便目标 Portal 当前不在视野中也能调用。

因此,Portal DB 在 IITC 生态里更像一个后端型基础设施插件,而不只是单独的可视化工具。

API 参考

Portal DB 通过 window.plugin.portalDB 暴露功能。所有访问方法都是异步的,并返回 Promise

getPortal(guid)

根据 GUID 获取单个 Portal 记录。

// 示例:检查 Portal 是否存在并输出坐标
window.plugin.portalDB.getPortal('your-portal-guid')
  .then(portal => {
    if (portal) {
      console.log(`找到: ${portal.latE6}, ${portal.lngE6}`);
    } else {
      console.log('本地数据库中未找到该 Portal');
    }
  });

getPortalsInBounds(bounds)

获取指定地图范围内的全部已存储 Portal。

// 示例:查找当前视野内的所有已存储 Portal
const bounds = map.getBounds(); // Leaflet LatLngBounds
window.plugin.portalDB.getPortalsInBounds(bounds)
  .then(results => {
    console.log(`在此区域找到 ${results.length} 个 Portal。`);
    results.forEach(p => console.log(p.guid, p.team));
  });

返回对象结构

方法会返回如下标准格式的 Portal 对象:

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

如何使用

  1. 像平时一样浏览 Intel 地图,让插件在后台自动收集 Portal 数据。
  2. 当你需要查看位移 Portal 或审阅本地记录时,打开工具箱中的 Portal DB
  3. 使用 ExportImport 进行本地数据库的备份与迁移。
  4. 如果你在开发其它 IITC 插件,可以直接调用暴露出的 API 来查询视野外的 Portal。

开发者提示: 如果你的 IITC 插件需要回答“这个 GUID 对应的 Portal 在哪里”,而它当前又没有渲染在屏幕上,那么 Portal DB 就是最合适的本地数据源。

常见问题

更新日志

版本 0.3.0

版本 0.2.0

版本 0.1.2