一个基于 Vue 3 + Vite + Go + SQLite 的战术地图工具复刻版,参考了《三角洲行动》地图工具的交互模型:
frontend/ Vue 3 前端
backend/ Go API 与 SQLite
backend/web/dist/ 前端构建产物
Vue 3、Vite、Leafletmodernc.org/sqlite烽火地带 / 全面战场 两套模式先安装依赖:
make install
启动后端:
make backend
启动前端开发环境:
make frontend
生产构建:
make build
Docker 启动:
make docker-up
或:
docker compose up --build
说明:
backend/data/dktool.seed.dbseed 库复制到可写的运行库,再继续把新访问到的图片写入该运行库前端开发默认代理到 http://localhost:8080。
洛克王国首屏瓦片/图标预热到 SQLite:
node scripts/warm_rocom_initial_assets.mjs
按真实浏览器初始视图预热常用地图资产到 SQLite:
make warm-assets
按真实浏览器执行“平移 + 缩放”的覆盖式扫图,把更多瓦片批量沉淀到 SQLite:
make warm-coverage
可选 scope:
node scripts/warm_backend_assets.mjs rocom
node scripts/warm_backend_assets.mjs warfare
node scripts/warm_backend_assets.mjs extraction,warfare
说明:
Go 后端SQLite 资产缓存的 preview-shimDKTOOL_ALLOW_PREVIEW_WARM=1DKTOOL_WARM_DETAIL_IMAGES=1 可额外预热洛克王国点位详情图DKTOOL_WARM_TILE_COVERAGE=1 会在页面内自动巡航扫图,而不是只抓首屏DKTOOL_WARM_SKIP_DIRECT_ASSETS=1 可在覆盖式扫图时跳过已存在的直链资源预热DKTOOL_WARM_TILE_SETTLE_MS 控制每一步平移/缩放后的停留时间可选环境变量:
DKTOOL_BASE_URL:默认 http://127.0.0.1:8080DKTOOL_WARM_CONCURRENCY:默认 8DKTOOL_WARM_VIRTUAL_TIME_BUDGET:默认 5000DKTOOL_CHROME_BIN:指定 Chrome / Chromium 可执行文件路径DKTOOL_DB_PATH:指定运行时 SQLite 路径;未设置时优先使用 backend/data/dktool.db,不存在则回退到 backend/data/dktool.seed.db健康检查。
返回当前 SQLite 资产缓存统计。接入 SQLite 资产缓存的 preview-shim 也会提供这组统计。
字段:
counttotalBytesbootstrapEnabled返回当前视图所需的完整数据。
支持参数:
modemapvariantflooreventsearchlayers示例:
curl 'http://localhost:8080/api/map-view?mode=extraction&map=zero-dam&variant=regular'
SQLite 中包含这些核心表:
modesmapsmap_variantsmap_floorsmap_regionsmap_eventslayer_groupslayerspoints数据库文件默认位于:
backend/data/dktool.db
当前版本重点复刻了原站的信息架构、视觉语气和核心交互,点位数据为本地 SQLite 种子数据。地图瓦片与图标可在访问或预热后沉淀到本地 assets 表,后续访问不再依赖第三方线上瓦片地址。
MIT 协议开源。17173 的洛克王国地图数据。本项目采用 MIT 协议开源,详见 LICENSE。