exclude-concurrent-hunks.patch 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. diff --git a/src/modules/cockpit/services/cesiumEngine.js b/src/modules/cockpit/services/cesiumEngine.js
  2. --- a/src/modules/cockpit/services/cesiumEngine.js
  3. +++ b/src/modules/cockpit/services/cesiumEngine.js
  4. @@ -100,12 +100,28 @@ function createBaseLayer(plan) {
  5. /**
  6. * 在宿主要素上创建 Viewer。
  7. + *
  8. + * **署名容器(票 25)**:`creditContainer` **不是开关,是「放哪个容器」**——
  9. + * Cesium 的 Viewer 构造写死 `defined(options.creditContainer) ? options.creditContainer : bottomContainer`,
  10. + * 随后 CesiumWidget **两条路径都会**建 CreditDisplay
  11. + * (`creditContainer.appendChild(innerCreditContainer)`)。
  12. + * 所以传 `false`/`''` 既关不掉、还会让 `getElement()` 拿到 null 而崩。
  13. + * 真正能生效的做法是**自己给一个不进 DOM 的容器**:Cesium 照旧把署名写进去,
  14. + * 但它不在文档流里,屏幕上不出现,destroy 时 Cesium 也会自行摘掉内部节点。
  15. + *
  16. + * 合法性前提(本部署已核实,勿轻易推翻):地形走 `CesiumTerrainProvider.fromUrl(本地 URL)`、
  17. + * 影像走内置 TMS 与 `UrlTemplateImageryProvider`、3D Tiles 走 `Cesium3DTileset.fromUrl(本地 URL)`,
  18. + * **全链路无 Cesium ion 服务与 ion 资产**。ion 署名义务只在用到 ion 资产时成立,
  19. + * 故此处隐藏署名不构成违约;自有数据源署名由地图信息面板在业务界面另行展示。
  20. + *
  21. * @param {Element} host 宿主要素(`.map-canvas`)
  22. * @param {object} [basemapPlan] `domain/basemap.js` 的底图计划(票 29);缺省 = 不配底图
  23. * @returns {Viewer}
  24. */
  25. export function createViewer(host, basemapPlan) {
  26. - const viewer = new Viewer(host, { ...VIEWER_OPTIONS, baseLayer: createBaseLayer(basemapPlan) })
  27. + // 票 25:离屏署名容器 —— 故意不 appendChild,署名因此不上屏。
  28. + const creditContainer = document.createElement('div')
  29. + const viewer = new Viewer(host, { ...VIEWER_OPTIONS, creditContainer, baseLayer: createBaseLayer(basemapPlan) })
  30. const controller = viewer.scene.screenSpaceCameraController
  31. controller.enableRotate = false
  32. @@ -399,7 +415,7 @@ function tilesetOptions(plan) {
  33. foveatedTimeDelay: 0.6,
  34. foveatedMinimumScreenSpaceErrorRelaxation: 0,
  35. // 普通 SSE 根据瓦片误差与相机到瓦片的距离决定细化,保持配置的质量取舍。
  36. - maximumScreenSpaceError: Number.isFinite(plan.maximumScreenSpaceError) ? plan.maximumScreenSpaceError : 96,
  37. + maximumScreenSpaceError: Number.isFinite(plan.maximumScreenSpaceError) ? plan.maximumScreenSpaceError : 64,
  38. cacheBytes: TILESET_CACHE_BYTES,
  39. maximumCacheOverflowBytes: TILESET_CACHE_OVERFLOW_BYTES,
  40. }