| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- {
- "_readme": [
- "驾驶舱部署配置模板。用法:复制成同目录的 config.json 再按环境填写 —— config.json 不入库(见根 .gitignore)。",
- "分层覆盖顺序(后者覆盖前者):内置默认 → 构建期 VITE_COCKPIT_* → 本文件 → 宿主注入的 globalThis.__COCKPIT_CONFIG__。",
- "启用本文件(默认不探测,免得每页刷 404):宿主页加一行 window.__COCKPIT_CONFIG_URL__ = 'auto',或构建期设 VITE_COCKPIT_CONFIG_URL=auto(也可以给绝对 URL 从后端拉)。",
- "dataSource 默认 mock:只有显式写 real 才会请求真实后端,mock 与真接口走同一个适配层(services/cockpitApi.js)。",
- "api.token / ws.token 是给开发与联调用的只读令牌;生产环境应由网关/反向代理在转发时补 Authorization 头,这里留空即可。",
- "本项目优先用内网离线数据:底图默认 natural-earth(Cesium 自带离线影像,无需账号/外网/密钥)。在线源(tianditu 需 tk、arcgis-imagery 免 key)只作为可选项。",
- "map.basemap.source 取值:none(不配底图)/ natural-earth(离线,推荐)/ xyz(任意 {z}/{x}/{y} 模板,本地或自建瓦片)/ tianditu(需 tk)/ arcgis-imagery(在线,免 key)。",
- "map.terrain.url 指向量化网格 DEM 目录(内含 layer.json);map.overlays[] 叠本地精细影像(TMS 用 {reverseY},bounds 填数据实际范围)。",
- "map.tilesets[] 是 3D Tiles / 倾斜摄影入口,每项一个 tileset.json 的 URL(没有根 tileset.json 的数据先别填;详见 docs/cockpit-deployment.md)。可选 maximumScreenSpaceError 控制几何误差,maximumDistance 控制批次距离剔除,loadDistance 控制批次懒加载距离,eager=false 可避免启动时初始化该批次;模型量大时优先拆成带 viewerRequestVolume 的小瓦片,远景粗模应与精模共用 GIS 足印,避免用道路填充模型代替建筑位置;运行时按距离加载并串行等待内容处理。",
- "map.ui.debug 控制界面形态:null(默认)= 跟随构建模式(开发构建显示诊断信息、生产构建自动收敛成干净形态);写 true 可在生产包里临时打开诊断读数。",
- "map.viewMode.pipeline 可调管线视图的倾角/距离系数/地形与模型的半透明程度。",
- "map.primaryArea.bounds 是主场景区矩形 [西, 南, 东, 北](度),与 map.overlays[].bounds 同口径;顺序必须自己写好(west<east、south<north),运行时不翻转。不填或顺序非法 → 区域限位与自建雾气整体关闭,引擎浮标如实写明原因。下面的坐标是本部署(沅陵县城)的契约示例,换部署请按自己的数据重算。",
- "map.fog 是区内视距雾(只在主场景区内生效)。默认 18000 m 起雾、42000 m 完全遮蔽、#bdcdd6;色值必须是 #rrggbb,且正式色相要偏冷白灰、不得发绿(现场复核)。本模板里的 fadeInMs/fadeOutMs 与高度带是**代码默认(规格取向)**,不是某个部署的现场值 —— 现场按观感调好后请在自己那份 config.json 里覆盖,别改回本模板。altitudeFullM/altitudeZeroM 是相机高度收口的两端:相机高于后者时雾收到 0(否则高空时整个地球会被涂成雾色 —— 退出会「地球变白」)。**必须 altitudeZeroM > altitudeFullM**,写反等于关掉这层保护(配置层会报 issue,但不替你改值)。altitudeSlewMs 是这层收口的**时间限速**,保证雾不会「一瞬间产生或消失」(返回全球时相机 range 跨 1.6e6 倍,不加限速就会跳变)。enabled=false 可整级关掉这层效果(限位不受影响)。",
- "map.handover 是粗→精影像交接:全球/引导态隐藏精细影像,进区后等雾形成保护且瓦片可显示才渐显,返回反向交接(影像先收、雾后撤)。fadeMs 是渐显/收起时长(现为 380 ms:雾是距离雾、盖不住屏幕中心的脚下街区,渐显期间中心是「粗糙底图(陆地偏绿)↔ 精细影像」的混合,窗口越长那段绿越明显,故调短);minEdgeOcclusion 是相机到影像边处要求的雾遮蔽率(0–1,与 map.fog 的距离端点同源);requireTilesLoaded=false 可放宽『等瓦片』这一条。enabled=false 则精细层常显(回到交接之前的行为)。绝不承诺『边缘已被遮住』,那段观感请在真实画面上验收。",
- "map.locate.point/device 可覆盖完整定位视角的 heading/pitch/range(米);缺省点位 0/-55/500、设备 0/-55/150。设备档供后续设备联动票消费。",
- "map.cesium.enabled=false 可以让中央一张图退回临时影像兜底;map.cesium.baseUrl 只在把 Cesium 静态资源放到别处时才填(需绝对 URL)。",
- "ws.url 供票 15 的状态推送使用。"
- ],
- "version": 1,
- "dataSource": "mock",
- "api": {
- "baseUrl": "",
- "token": ""
- },
- "ws": {
- "url": "",
- "token": ""
- },
- "map": {
- "basemap": {
- "source": "natural-earth",
- "url": "",
- "subdomains": [],
- "minimumLevel": null,
- "maximumLevel": null,
- "credit": ""
- },
- "tianditu": {
- "token": "",
- "layer": "img"
- },
- "terrain": {
- "url": "",
- "requestVertexNormals": true
- },
- "overlays": [],
- "tilesets": [],
- "overlap": {
- "maxFan": 10
- },
- "locate": {
- "point": { "heading": 0, "pitch": -55, "range": 500 },
- "device": { "heading": 0, "pitch": -55, "range": 150 }
- },
- "primaryArea": {
- "bounds": [110.328749941417, 28.3917230659234, 110.465779226663, 28.4913038992907]
- },
- "fog": {
- "enabled": true,
- "startDistance": 18000,
- "endDistance": 42000,
- "color": "#bdcdd6",
- "fadeInMs": 800,
- "fadeOutMs": 400,
- "altitudeFullM": 20000,
- "altitudeZeroM": 42000,
- "altitudeSlewMs": 400
- },
- "handover": {
- "enabled": true,
- "fadeMs": 380,
- "minEdgeOcclusion": 0.9,
- "requireTilesLoaded": true
- },
- "ui": {
- "debug": null
- },
- "cesium": {
- "enabled": true,
- "baseUrl": ""
- }
- }
- }
|