bruce-cesium 5.7.7 → 5.7.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/package.json +2 -2
  2. package/dist/bruce-cesium.es5.js +0 -32263
  3. package/dist/bruce-cesium.es5.js.map +0 -1
  4. package/dist/bruce-cesium.umd.js +0 -32187
  5. package/dist/bruce-cesium.umd.js.map +0 -1
  6. package/dist/lib/bruce-cesium.js +0 -76
  7. package/dist/lib/bruce-cesium.js.map +0 -1
  8. package/dist/lib/internal/cesium-utils.js +0 -109
  9. package/dist/lib/internal/cesium-utils.js.map +0 -1
  10. package/dist/lib/internal/js-utils.js +0 -22
  11. package/dist/lib/internal/js-utils.js.map +0 -1
  12. package/dist/lib/internal/limited-log.js +0 -17
  13. package/dist/lib/internal/limited-log.js.map +0 -1
  14. package/dist/lib/rendering/cesium-animated-in-out.js +0 -166
  15. package/dist/lib/rendering/cesium-animated-in-out.js.map +0 -1
  16. package/dist/lib/rendering/cesium-animated-property.js +0 -1111
  17. package/dist/lib/rendering/cesium-animated-property.js.map +0 -1
  18. package/dist/lib/rendering/entity-gatherer.js +0 -327
  19. package/dist/lib/rendering/entity-gatherer.js.map +0 -1
  20. package/dist/lib/rendering/entity-render-engine-model3d.js +0 -689
  21. package/dist/lib/rendering/entity-render-engine-model3d.js.map +0 -1
  22. package/dist/lib/rendering/entity-render-engine-point.js +0 -984
  23. package/dist/lib/rendering/entity-render-engine-point.js.map +0 -1
  24. package/dist/lib/rendering/entity-render-engine-polygon.js +0 -669
  25. package/dist/lib/rendering/entity-render-engine-polygon.js.map +0 -1
  26. package/dist/lib/rendering/entity-render-engine-polyline.js +0 -415
  27. package/dist/lib/rendering/entity-render-engine-polyline.js.map +0 -1
  28. package/dist/lib/rendering/entity-render-engine.js +0 -442
  29. package/dist/lib/rendering/entity-render-engine.js.map +0 -1
  30. package/dist/lib/rendering/getters/batched-data-getter.js +0 -91
  31. package/dist/lib/rendering/getters/batched-data-getter.js.map +0 -1
  32. package/dist/lib/rendering/getters/entity-filter-getter.js +0 -634
  33. package/dist/lib/rendering/getters/entity-filter-getter.js.map +0 -1
  34. package/dist/lib/rendering/getters/entity-globe.js +0 -172
  35. package/dist/lib/rendering/getters/entity-globe.js.map +0 -1
  36. package/dist/lib/rendering/menu-item-creator.js +0 -354
  37. package/dist/lib/rendering/menu-item-creator.js.map +0 -1
  38. package/dist/lib/rendering/menu-item-manager.js +0 -464
  39. package/dist/lib/rendering/menu-item-manager.js.map +0 -1
  40. package/dist/lib/rendering/relation-render-engine.js +0 -235
  41. package/dist/lib/rendering/relation-render-engine.js.map +0 -1
  42. package/dist/lib/rendering/render-managers/common/cesium-parabola.js +0 -368
  43. package/dist/lib/rendering/render-managers/common/cesium-parabola.js.map +0 -1
  44. package/dist/lib/rendering/render-managers/common/entity-label.js +0 -703
  45. package/dist/lib/rendering/render-managers/common/entity-label.js.map +0 -1
  46. package/dist/lib/rendering/render-managers/common/point-clustering.js +0 -826
  47. package/dist/lib/rendering/render-managers/common/point-clustering.js.map +0 -1
  48. package/dist/lib/rendering/render-managers/common/shared-getters.js +0 -187
  49. package/dist/lib/rendering/render-managers/common/shared-getters.js.map +0 -1
  50. package/dist/lib/rendering/render-managers/data-source/data-source-static-csv-manager.js +0 -668
  51. package/dist/lib/rendering/render-managers/data-source/data-source-static-csv-manager.js.map +0 -1
  52. package/dist/lib/rendering/render-managers/data-source/data-source-static-kml-manager.js +0 -92
  53. package/dist/lib/rendering/render-managers/data-source/data-source-static-kml-manager.js.map +0 -1
  54. package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js +0 -143
  55. package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js.map +0 -1
  56. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +0 -510
  57. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +0 -1
  58. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +0 -717
  59. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js.map +0 -1
  60. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +0 -999
  61. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +0 -1
  62. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +0 -186
  63. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js.map +0 -1
  64. package/dist/lib/rendering/render-managers/other/assembly-render-manager.js +0 -226
  65. package/dist/lib/rendering/render-managers/other/assembly-render-manager.js.map +0 -1
  66. package/dist/lib/rendering/render-managers/other/google-search-render-manager.js +0 -430
  67. package/dist/lib/rendering/render-managers/other/google-search-render-manager.js.map +0 -1
  68. package/dist/lib/rendering/render-managers/other/legacy-relations-render-manager.js +0 -290
  69. package/dist/lib/rendering/render-managers/other/legacy-relations-render-manager.js.map +0 -1
  70. package/dist/lib/rendering/render-managers/other/relations-render-manager.js +0 -401
  71. package/dist/lib/rendering/render-managers/other/relations-render-manager.js.map +0 -1
  72. package/dist/lib/rendering/render-managers/render-manager.js +0 -276
  73. package/dist/lib/rendering/render-managers/render-manager.js.map +0 -1
  74. package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js +0 -356
  75. package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js.map +0 -1
  76. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +0 -861
  77. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +0 -1
  78. package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js +0 -279
  79. package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js.map +0 -1
  80. package/dist/lib/rendering/render-managers/tilesets/tileset-google-photos-render-manager.js +0 -104
  81. package/dist/lib/rendering/render-managers/tilesets/tileset-google-photos-render-manager.js.map +0 -1
  82. package/dist/lib/rendering/render-managers/tilesets/tileset-i3s-render-manager.js +0 -81
  83. package/dist/lib/rendering/render-managers/tilesets/tileset-i3s-render-manager.js.map +0 -1
  84. package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js +0 -378
  85. package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js.map +0 -1
  86. package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js +0 -140
  87. package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js.map +0 -1
  88. package/dist/lib/rendering/tile-render-engine.js +0 -1328
  89. package/dist/lib/rendering/tile-render-engine.js.map +0 -1
  90. package/dist/lib/rendering/tileset-render-engine.js +0 -588
  91. package/dist/lib/rendering/tileset-render-engine.js.map +0 -1
  92. package/dist/lib/rendering/tileset-styler.js +0 -590
  93. package/dist/lib/rendering/tileset-styler.js.map +0 -1
  94. package/dist/lib/rendering/view-render-engine.js +0 -1004
  95. package/dist/lib/rendering/view-render-engine.js.map +0 -1
  96. package/dist/lib/rendering/visual-register-culler.js +0 -676
  97. package/dist/lib/rendering/visual-register-culler.js.map +0 -1
  98. package/dist/lib/rendering/visuals-register.js +0 -1695
  99. package/dist/lib/rendering/visuals-register.js.map +0 -1
  100. package/dist/lib/utils/cesium-entity-styler.js +0 -915
  101. package/dist/lib/utils/cesium-entity-styler.js.map +0 -1
  102. package/dist/lib/utils/drawing-utils.js +0 -308
  103. package/dist/lib/utils/drawing-utils.js.map +0 -1
  104. package/dist/lib/utils/entity-utils.js +0 -1382
  105. package/dist/lib/utils/entity-utils.js.map +0 -1
  106. package/dist/lib/utils/measure-utils.js +0 -73
  107. package/dist/lib/utils/measure-utils.js.map +0 -1
  108. package/dist/lib/utils/simplify-geometry.js +0 -323
  109. package/dist/lib/utils/simplify-geometry.js.map +0 -1
  110. package/dist/lib/utils/view-utils.js +0 -392
  111. package/dist/lib/utils/view-utils.js.map +0 -1
  112. package/dist/lib/viewer/cesium-view-monitor.js +0 -393
  113. package/dist/lib/viewer/cesium-view-monitor.js.map +0 -1
  114. package/dist/lib/viewer/viewer-event-tracker.js +0 -70
  115. package/dist/lib/viewer/viewer-event-tracker.js.map +0 -1
  116. package/dist/lib/viewer/viewer-utils.js +0 -310
  117. package/dist/lib/viewer/viewer-utils.js.map +0 -1
  118. package/dist/lib/widgets/common/draw-3d-polygon.js +0 -458
  119. package/dist/lib/widgets/common/draw-3d-polygon.js.map +0 -1
  120. package/dist/lib/widgets/common/draw-3d-polyline.js +0 -415
  121. package/dist/lib/widgets/common/draw-3d-polyline.js.map +0 -1
  122. package/dist/lib/widgets/common/measure-creator.js +0 -468
  123. package/dist/lib/widgets/common/measure-creator.js.map +0 -1
  124. package/dist/lib/widgets/common/walkthrough.js +0 -336
  125. package/dist/lib/widgets/common/walkthrough.js.map +0 -1
  126. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-fullscreen.js +0 -36
  127. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-fullscreen.js.map +0 -1
  128. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-search.js +0 -437
  129. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-search.js.map +0 -1
  130. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar.js +0 -38
  131. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar.js.map +0 -1
  132. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-bookmarks.js +0 -219
  133. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-bookmarks.js.map +0 -1
  134. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-user.js +0 -304
  135. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-user.js.map +0 -1
  136. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab.js +0 -29
  137. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab.js.map +0 -1
  138. package/dist/lib/widgets/widget-bookmarks.js +0 -497
  139. package/dist/lib/widgets/widget-bookmarks.js.map +0 -1
  140. package/dist/lib/widgets/widget-branding.js +0 -165
  141. package/dist/lib/widgets/widget-branding.js.map +0 -1
  142. package/dist/lib/widgets/widget-cursorbar.js +0 -1179
  143. package/dist/lib/widgets/widget-cursorbar.js.map +0 -1
  144. package/dist/lib/widgets/widget-embedded-info-view.js +0 -201
  145. package/dist/lib/widgets/widget-embedded-info-view.js.map +0 -1
  146. package/dist/lib/widgets/widget-info-view.js +0 -681
  147. package/dist/lib/widgets/widget-info-view.js.map +0 -1
  148. package/dist/lib/widgets/widget-left-panel.js +0 -548
  149. package/dist/lib/widgets/widget-left-panel.js.map +0 -1
  150. package/dist/lib/widgets/widget-nav-compass.js +0 -469
  151. package/dist/lib/widgets/widget-nav-compass.js.map +0 -1
  152. package/dist/lib/widgets/widget-view-bar.js +0 -284
  153. package/dist/lib/widgets/widget-view-bar.js.map +0 -1
  154. package/dist/lib/widgets/widget.js +0 -66
  155. package/dist/lib/widgets/widget.js.map +0 -1
  156. package/dist/types/bruce-cesium.d.ts +0 -58
  157. package/dist/types/internal/cesium-utils.d.ts +0 -23
  158. package/dist/types/internal/js-utils.d.ts +0 -8
  159. package/dist/types/internal/limited-log.d.ts +0 -6
  160. package/dist/types/rendering/cesium-animated-in-out.d.ts +0 -12
  161. package/dist/types/rendering/cesium-animated-property.d.ts +0 -245
  162. package/dist/types/rendering/entity-gatherer.d.ts +0 -36
  163. package/dist/types/rendering/entity-render-engine-model3d.d.ts +0 -56
  164. package/dist/types/rendering/entity-render-engine-point.d.ts +0 -73
  165. package/dist/types/rendering/entity-render-engine-polygon.d.ts +0 -26
  166. package/dist/types/rendering/entity-render-engine-polyline.d.ts +0 -47
  167. package/dist/types/rendering/entity-render-engine.d.ts +0 -108
  168. package/dist/types/rendering/getters/batched-data-getter.d.ts +0 -28
  169. package/dist/types/rendering/getters/entity-filter-getter.d.ts +0 -104
  170. package/dist/types/rendering/getters/entity-globe.d.ts +0 -21
  171. package/dist/types/rendering/menu-item-creator.d.ts +0 -53
  172. package/dist/types/rendering/menu-item-manager.d.ts +0 -85
  173. package/dist/types/rendering/relation-render-engine.d.ts +0 -32
  174. package/dist/types/rendering/render-managers/common/cesium-parabola.d.ts +0 -39
  175. package/dist/types/rendering/render-managers/common/entity-label.d.ts +0 -82
  176. package/dist/types/rendering/render-managers/common/point-clustering.d.ts +0 -91
  177. package/dist/types/rendering/render-managers/common/shared-getters.d.ts +0 -41
  178. package/dist/types/rendering/render-managers/data-source/data-source-static-csv-manager.d.ts +0 -41
  179. package/dist/types/rendering/render-managers/data-source/data-source-static-kml-manager.d.ts +0 -25
  180. package/dist/types/rendering/render-managers/entities/entities-datalab-render-manager.d.ts +0 -31
  181. package/dist/types/rendering/render-managers/entities/entities-ids-render-manager.d.ts +0 -76
  182. package/dist/types/rendering/render-managers/entities/entities-loaded-render-manager.d.ts +0 -90
  183. package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +0 -90
  184. package/dist/types/rendering/render-managers/entities/entity-render-manager.d.ts +0 -42
  185. package/dist/types/rendering/render-managers/other/assembly-render-manager.d.ts +0 -38
  186. package/dist/types/rendering/render-managers/other/google-search-render-manager.d.ts +0 -45
  187. package/dist/types/rendering/render-managers/other/legacy-relations-render-manager.d.ts +0 -60
  188. package/dist/types/rendering/render-managers/other/relations-render-manager.d.ts +0 -53
  189. package/dist/types/rendering/render-managers/render-manager.d.ts +0 -30
  190. package/dist/types/rendering/render-managers/tilesets/tileset-arb-render-manager.d.ts +0 -37
  191. package/dist/types/rendering/render-managers/tilesets/tileset-cad-render-manager.d.ts +0 -86
  192. package/dist/types/rendering/render-managers/tilesets/tileset-entities-render-manager.d.ts +0 -41
  193. package/dist/types/rendering/render-managers/tilesets/tileset-google-photos-render-manager.d.ts +0 -26
  194. package/dist/types/rendering/render-managers/tilesets/tileset-i3s-render-manager.d.ts +0 -25
  195. package/dist/types/rendering/render-managers/tilesets/tileset-osm-render-manager.d.ts +0 -48
  196. package/dist/types/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.d.ts +0 -27
  197. package/dist/types/rendering/tile-render-engine.d.ts +0 -80
  198. package/dist/types/rendering/tileset-render-engine.d.ts +0 -99
  199. package/dist/types/rendering/tileset-styler.d.ts +0 -86
  200. package/dist/types/rendering/view-render-engine.d.ts +0 -32
  201. package/dist/types/rendering/visual-register-culler.d.ts +0 -18
  202. package/dist/types/rendering/visuals-register.d.ts +0 -351
  203. package/dist/types/utils/cesium-entity-styler.d.ts +0 -103
  204. package/dist/types/utils/drawing-utils.d.ts +0 -59
  205. package/dist/types/utils/entity-utils.d.ts +0 -133
  206. package/dist/types/utils/measure-utils.d.ts +0 -20
  207. package/dist/types/utils/simplify-geometry.d.ts +0 -19
  208. package/dist/types/utils/view-utils.d.ts +0 -101
  209. package/dist/types/viewer/cesium-view-monitor.d.ts +0 -35
  210. package/dist/types/viewer/viewer-event-tracker.d.ts +0 -47
  211. package/dist/types/viewer/viewer-utils.d.ts +0 -88
  212. package/dist/types/widgets/common/draw-3d-polygon.d.ts +0 -62
  213. package/dist/types/widgets/common/draw-3d-polyline.d.ts +0 -50
  214. package/dist/types/widgets/common/measure-creator.d.ts +0 -60
  215. package/dist/types/widgets/common/walkthrough.d.ts +0 -37
  216. package/dist/types/widgets/controls-view-bar/widget-control-view-bar-fullscreen.d.ts +0 -10
  217. package/dist/types/widgets/controls-view-bar/widget-control-view-bar-search.d.ts +0 -18
  218. package/dist/types/widgets/controls-view-bar/widget-control-view-bar.d.ts +0 -23
  219. package/dist/types/widgets/tabs-left-panel/widget-left-panel-tab-bookmarks.d.ts +0 -11
  220. package/dist/types/widgets/tabs-left-panel/widget-left-panel-tab-user.d.ts +0 -24
  221. package/dist/types/widgets/tabs-left-panel/widget-left-panel-tab.d.ts +0 -17
  222. package/dist/types/widgets/widget-bookmarks.d.ts +0 -40
  223. package/dist/types/widgets/widget-branding.d.ts +0 -15
  224. package/dist/types/widgets/widget-cursorbar.d.ts +0 -48
  225. package/dist/types/widgets/widget-embedded-info-view.d.ts +0 -13
  226. package/dist/types/widgets/widget-info-view.d.ts +0 -21
  227. package/dist/types/widgets/widget-left-panel.d.ts +0 -73
  228. package/dist/types/widgets/widget-nav-compass.d.ts +0 -27
  229. package/dist/types/widgets/widget-view-bar.d.ts +0 -37
  230. package/dist/types/widgets/widget.d.ts +0 -29
@@ -1,1328 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TileRenderEngine = void 0;
4
- const bruce_models_1 = require("bruce-models");
5
- const Cesium = require("cesium");
6
- const js_utils_1 = require("../internal/js-utils");
7
- const viewer_utils_1 = require("../viewer/viewer-utils");
8
- const viewer_event_tracker_1 = require("../viewer/viewer-event-tracker");
9
- // Used to track if a current in-progress render is the latest.
10
- // If we're midway through an async function that is rendering 10 imageries and this changes, then we stop the function.
11
- const ITERATION_KEY = "nextspace-tile-render-engine-iteration";
12
- function newIteration(viewer, tile) {
13
- // Create key specific to the kind of tile we're rendering.
14
- const key = ITERATION_KEY + tile;
15
- // Generate a new iteration ID, include the tile type in it so we can identify it easier.
16
- const value = bruce_models_1.ObjectUtils.UId() + tile;
17
- viewer[key] = value;
18
- return value;
19
- }
20
- /**
21
- * Checks if a given iteration is still the active one for a given viewer.
22
- * @param viewer
23
- * @param iteration
24
- */
25
- function assertIteration(viewer, iteration) {
26
- const suffix = iteration.includes("imagery") ? "imagery" : "terrain";
27
- return viewer[ITERATION_KEY + suffix] === iteration;
28
- }
29
- const DEFAULT_STAMEN_KEY = "a652e5f2-8d9e-4706-a9d9-d5daa7d4c89e";
30
- const DEFAULT_THUNDERFOREST_KEY = "c3c1b64fbb5240be8e0d284a01e33107";
31
- const re = /[\0-\x1F\x7F-\x9F\xAD\u0378\u0379\u037F-\u0383\u038B\u038D\u03A2\u0528-\u0530\u0557\u0558\u0560\u0588\u058B-\u058E\u0590\u05C8-\u05CF\u05EB-\u05EF\u05F5-\u0605\u061C\u061D\u06DD\u070E\u070F\u074B\u074C\u07B2-\u07BF\u07FB-\u07FF\u082E\u082F\u083F\u085C\u085D\u085F-\u089F\u08A1\u08AD-\u08E3\u08FF\u0978\u0980\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FC-\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0C00\u0C04\u0C0D\u0C11\u0C29\u0C34\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5A-\u0C5F\u0C64\u0C65\u0C70-\u0C77\u0C80\u0C81\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0D01\u0D04\u0D0D\u0D11\u0D3B\u0D3C\u0D45\u0D49\u0D4F-\u0D56\u0D58-\u0D5F\u0D64\u0D65\u0D76-\u0D78\u0D80\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E86\u0E89\u0E8B\u0E8C\u0E8E-\u0E93\u0E98\u0EA0\u0EA4\u0EA6\u0EA8\u0EA9\u0EAC\u0EBA\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F5-\u13FF\u169D-\u169F\u16F1-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180F\u181A-\u181F\u1878-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191D-\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C80-\u1CBF\u1CC8-\u1CCF\u1CF7-\u1CFF\u1DE7-\u1DFB\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u2072\u2073\u208F\u209D-\u209F\u20BB-\u20CF\u20F1-\u20FF\u218A-\u218F\u23F4-\u23FF\u2427-\u243F\u244B-\u245F\u2700\u2B4D-\u2B4F\u2B5A-\u2BFF\u2C2F\u2C5F\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E3C-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u312E-\u3130\u318F\u31BB-\u31BF\u31E4-\u31EF\u321F\u32FF\u4DB6-\u4DBF\u9FCD-\u9FFF\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA698-\uA69E\uA6F8-\uA6FF\uA78F\uA794-\uA79F\uA7AB-\uA7F7\uA82C-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C5-\uA8CD\uA8DA-\uA8DF\uA8FC-\uA8FF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9E0-\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAA7C-\uAA7F\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F-\uABBF\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFE\uFDFF\uFE1A-\uFE1F\uFE27-\uFE2F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD-\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFFB\uFFFE\uFFFF]/g;
32
- /**
33
- * Prepares a legacy imagery name for comparison.
34
- * Legacy data did not have ids... we do what we can.
35
- * @param name
36
- * @returns
37
- */
38
- function prepLegacyName(name) {
39
- if (!name) {
40
- return "";
41
- }
42
- name = name.replace(/\s/g, "");
43
- name = name.replace(re, "");
44
- name = name.toLowerCase();
45
- if (name === "cwt") {
46
- name = "cesiumworldterrain";
47
- }
48
- return name;
49
- }
50
- /**
51
- * Constructs an terrain provider for a default terrain type.
52
- * Warning: This does not add it to the viewer.
53
- * @param id
54
- * @returns
55
- */
56
- async function renderDefaultTerrTile(id) {
57
- const CESIUM = Cesium;
58
- let provider;
59
- switch (id) {
60
- case bruce_models_1.ProjectViewTile.EDefaultTerrain.CesiumWorldTerrain:
61
- // Handling difference between old and new cesium versions.
62
- if (CESIUM.createWorldTerrainAsync) {
63
- provider = await CESIUM.createWorldTerrainAsync({
64
- requestVertexNormals: true,
65
- requestWaterMask: false
66
- });
67
- }
68
- else if (CESIUM.createWorldTerrain) {
69
- provider = CESIUM.createWorldTerrain({
70
- requestVertexNormals: true,
71
- requestWaterMask: false
72
- });
73
- }
74
- break;
75
- case bruce_models_1.ProjectViewTile.EDefaultTerrain.FlatTerrain:
76
- provider = new Cesium.EllipsoidTerrainProvider();
77
- break;
78
- case bruce_models_1.ProjectViewTile.EDefaultTerrain.LINZ:
79
- // Handling difference between old and new cesium versions.
80
- if (CESIUM.CesiumTerrainProvider.hasOwnProperty("fromUrl")) {
81
- provider = await CESIUM.CesiumTerrainProvider.fromUrl("https://s3-ap-southeast-2.amazonaws.com/digitalnewzealand/PROD/Tilesets/nz-dem", {
82
- requestVertexNormals: true,
83
- requestWaterMask: false,
84
- requestMetadata: false
85
- });
86
- }
87
- else {
88
- provider = new CESIUM.CesiumTerrainProvider({
89
- url: "https://s3-ap-southeast-2.amazonaws.com/digitalnewzealand/PROD/Tilesets/nz-dem",
90
- requestVertexNormals: true,
91
- requestWaterMask: false,
92
- requestMetadata: false
93
- });
94
- }
95
- break;
96
- }
97
- return provider;
98
- }
99
- /**
100
- * Maps a legacy terrain's name to a default terrain id.
101
- * @param name
102
- * @returns
103
- */
104
- function legacyTerrIdToDefaultId(name) {
105
- name = prepLegacyName(name);
106
- switch (name) {
107
- case "cesiumworldterrain":
108
- return bruce_models_1.ProjectViewTile.EDefaultTerrain.CesiumWorldTerrain;
109
- case "linz":
110
- return bruce_models_1.ProjectViewTile.EDefaultTerrain.LINZ;
111
- case "flatterrain":
112
- return bruce_models_1.ProjectViewTile.EDefaultTerrain.FlatTerrain;
113
- }
114
- }
115
- /**
116
- * Returns if a given legacy terrain's name correspondings to a default source.
117
- * @param name
118
- * @returns
119
- */
120
- function isLegacyTerrainDefault(name) {
121
- name = legacyTerrIdToDefaultId(name);
122
- return bruce_models_1.ProjectViewTile.DefaultTerrains.find(x => x.id == name) != null;
123
- }
124
- /**
125
- * Returns a best attempt at a unique id from a given legacy terrain source.
126
- * @param source
127
- * @returns
128
- */
129
- function createLegacyTerrId(source) {
130
- if (!source) {
131
- return "";
132
- }
133
- if (isLegacyTerrainDefault(source.Name)) {
134
- return source.Name;
135
- }
136
- if (source.SourceUrl) {
137
- return source.SourceUrl;
138
- }
139
- return "";
140
- }
141
- /**
142
- * Returns a best attempt at a unique id from a given legacy imagery source.
143
- * @param source
144
- * @returns
145
- */
146
- function createLegacyImageryId(source) {
147
- if (!source) {
148
- return "";
149
- }
150
- if (isLegacyImageryDefault(source.Name)) {
151
- return source.Name;
152
- }
153
- if (source.SourceUrl) {
154
- return source.SourceUrl;
155
- }
156
- return "";
157
- }
158
- /**
159
- * Turns Cesium collection of enabled imageries into an array.
160
- * @param viewer
161
- * @returns
162
- */
163
- function gatherEnabledImageries(viewer) {
164
- const collection = viewer.imageryLayers;
165
- const layers = [];
166
- for (let i = 0; i < collection.length; i++) {
167
- const layer = collection.get(i);
168
- layers.push(layer);
169
- }
170
- return layers;
171
- }
172
- async function findKey(apiGetter, accountId, keyId) {
173
- let key = null;
174
- try {
175
- const { programKey: pKey } = await bruce_models_1.ProgramKey.Get({
176
- api: apiGetter.getApi(accountId),
177
- programId: keyId
178
- });
179
- key = pKey === null || pKey === void 0 ? void 0 : pKey.Key;
180
- }
181
- catch (e) {
182
- let doLog = true;
183
- if (e && typeof e === "object") {
184
- if (e.Code == "NotFound") {
185
- doLog = false;
186
- }
187
- }
188
- if (doLog) {
189
- console.error(e);
190
- }
191
- }
192
- if (key && key.length) {
193
- return key;
194
- }
195
- // Default to template one if the account doesn't have a key.
196
- else if (bruce_models_1.Api.TEMPLATE_ACCOUNT_ID != accountId) {
197
- return findKey(apiGetter, bruce_models_1.Api.TEMPLATE_ACCOUNT_ID, keyId);
198
- }
199
- // No nice UI yet for setting it so we'll have a hard-coded one for the time being.
200
- else if (keyId == bruce_models_1.ProgramKey.EProgramId.Thunderforest) {
201
- return DEFAULT_THUNDERFOREST_KEY;
202
- }
203
- // Same story for stamen.
204
- else if (keyId == bruce_models_1.ProgramKey.EProgramId.StadiaMaps) {
205
- return DEFAULT_STAMEN_KEY;
206
- }
207
- return null;
208
- }
209
- // Constants for the ion assets.
210
- // Older CesiumJS doesn't have these so we have to define them here.
211
- const CESIUM_ION_WORLD_IMAGERY_STYLE_AERIAL = 2;
212
- const CESIUM_ION_WORLD_IMAGERY_STYLE_AERIAL_WITH_LABELS = 3;
213
- const CESIUM_ION_WORLD_IMAGERY_STYLE_ROAD = 4;
214
- /**
215
- * Constructs an imagery provider for a default imagery type.
216
- * Warning: This does not add it to the viewer.
217
- * @param apiGetter
218
- * @param id
219
- * @returns
220
- */
221
- async function renderDefaultMapTile(apiGetter, id) {
222
- var _a, _b, _c;
223
- const CESIUM = Cesium;
224
- let provider;
225
- switch (id) {
226
- case bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerial:
227
- // Handling difference between old and new cesium versions.
228
- if ((_a = Cesium["IonImageryProvider"]) === null || _a === void 0 ? void 0 : _a["fromAssetId"]) {
229
- provider = CESIUM.IonImageryProvider.fromAssetId(CESIUM_ION_WORLD_IMAGERY_STYLE_AERIAL);
230
- break;
231
- }
232
- else if (Cesium["createWorldImagery"]) {
233
- // No style is needed for this one.
234
- provider = CESIUM.createWorldImagery();
235
- break;
236
- }
237
- else if (Cesium["createWorldImageryAsync"]) {
238
- provider = await CESIUM.createWorldImageryAsync();
239
- break;
240
- }
241
- else if (Cesium.BingMapsImageryProvider.hasOwnProperty("fromUrl")) {
242
- provider = await CESIUM.BingMapsImageryProvider.fromUrl("https://dev.virtualearth.net", {
243
- mapStyle: Cesium.BingMapsStyle.AERIAL,
244
- key: await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.BingMaps)
245
- });
246
- break;
247
- }
248
- else {
249
- provider = new CESIUM.BingMapsImageryProvider({
250
- url: "https://dev.virtualearth.net",
251
- mapStyle: Cesium.BingMapsStyle.AERIAL,
252
- key: await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.BingMaps)
253
- });
254
- break;
255
- }
256
- break;
257
- case bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels:
258
- // Handling difference between old and new cesium versions.
259
- if ((_b = Cesium["IonImageryProvider"]) === null || _b === void 0 ? void 0 : _b["fromAssetId"]) {
260
- provider = CESIUM.IonImageryProvider.fromAssetId(CESIUM_ION_WORLD_IMAGERY_STYLE_AERIAL_WITH_LABELS);
261
- break;
262
- }
263
- else if (Cesium["createWorldImagery"]) {
264
- provider = CESIUM.createWorldImagery({
265
- style: CESIUM_ION_WORLD_IMAGERY_STYLE_AERIAL_WITH_LABELS
266
- });
267
- break;
268
- }
269
- else if (Cesium.BingMapsImageryProvider.hasOwnProperty("fromUrl")) {
270
- provider = await CESIUM.BingMapsImageryProvider.fromUrl("https://dev.virtualearth.net", {
271
- mapStyle: Cesium.BingMapsStyle.AERIAL_WITH_LABELS,
272
- key: await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.BingMaps)
273
- });
274
- break;
275
- }
276
- else {
277
- provider = new CESIUM.BingMapsImageryProvider({
278
- url: "https://dev.virtualearth.net",
279
- mapStyle: Cesium.BingMapsStyle.AERIAL_WITH_LABELS,
280
- key: await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.BingMaps)
281
- });
282
- break;
283
- }
284
- break;
285
- case bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsRoads:
286
- // Handling difference between old and new cesium versions.
287
- if ((_c = Cesium["IonImageryProvider"]) === null || _c === void 0 ? void 0 : _c["fromAssetId"]) {
288
- provider = CESIUM.IonImageryProvider.fromAssetId(CESIUM_ION_WORLD_IMAGERY_STYLE_ROAD);
289
- break;
290
- }
291
- else if (Cesium["createWorldImagery"]) {
292
- provider = CESIUM.createWorldImagery({
293
- style: CESIUM_ION_WORLD_IMAGERY_STYLE_ROAD
294
- });
295
- break;
296
- }
297
- // Handling difference between old and new cesium versions.
298
- else if (Cesium.BingMapsImageryProvider.hasOwnProperty("fromUrl")) {
299
- provider = await CESIUM.BingMapsImageryProvider.fromUrl("https://dev.virtualearth.net", {
300
- mapStyle: Cesium.BingMapsStyle.ROAD_ON_DEMAND,
301
- key: await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.BingMaps)
302
- });
303
- break;
304
- }
305
- else {
306
- provider = new CESIUM.BingMapsImageryProvider({
307
- url: "https://dev.virtualearth.net",
308
- mapStyle: Cesium.BingMapsStyle.ROAD_ON_DEMAND,
309
- key: await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.BingMaps)
310
- });
311
- break;
312
- }
313
- break;
314
- case bruce_models_1.ProjectViewTile.EDefaultImagery.MapboxSatellite:
315
- provider = new Cesium.MapboxImageryProvider({
316
- mapId: "mapbox.satellite",
317
- accessToken: await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.Mapbox)
318
- });
319
- break;
320
- case bruce_models_1.ProjectViewTile.EDefaultImagery.MapBoxStreets:
321
- provider = new Cesium.MapboxStyleImageryProvider({
322
- styleId: "satellite-streets-v11",
323
- accessToken: await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.Mapbox)
324
- });
325
- break;
326
- case bruce_models_1.ProjectViewTile.EDefaultImagery.MapBoxStreetsClassic:
327
- provider = new Cesium.MapboxStyleImageryProvider({
328
- styleId: "streets-v11",
329
- accessToken: await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.Mapbox)
330
- });
331
- break;
332
- case bruce_models_1.ProjectViewTile.EDefaultImagery.EsriWorldImagery:
333
- // Handling difference between old and new cesium versions.
334
- if (Cesium.ArcGisMapServerImageryProvider.hasOwnProperty("fromUrl")) {
335
- provider = await CESIUM.ArcGisMapServerImageryProvider.fromUrl("https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer", {
336
- enablePickFeatures: false
337
- });
338
- }
339
- else {
340
- provider = new CESIUM.ArcGisMapServerImageryProvider({
341
- url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",
342
- enablePickFeatures: false
343
- });
344
- }
345
- break;
346
- case bruce_models_1.ProjectViewTile.EDefaultImagery.EsriWorldStreetMap:
347
- // Handling difference between old and new cesium versions.
348
- if (Cesium.ArcGisMapServerImageryProvider.hasOwnProperty("fromUrl")) {
349
- provider = await CESIUM.ArcGisMapServerImageryProvider.fromUrl("https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer", {
350
- enablePickFeatures: false
351
- });
352
- }
353
- else {
354
- provider = new CESIUM.ArcGisMapServerImageryProvider({
355
- url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",
356
- enablePickFeatures: false
357
- });
358
- }
359
- break;
360
- case bruce_models_1.ProjectViewTile.EDefaultImagery.EsriNationalGeographic:
361
- // Handling difference between old and new cesium versions.
362
- if (CESIUM.ArcGisMapServerImageryProvider.hasOwnProperty("fromUrl")) {
363
- provider = await CESIUM.ArcGisMapServerImageryProvider.fromUrl("https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/", {
364
- enablePickFeatures: false
365
- });
366
- }
367
- else {
368
- provider = new CESIUM.ArcGisMapServerImageryProvider({
369
- url: "https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/",
370
- enablePickFeatures: false
371
- });
372
- }
373
- break;
374
- case bruce_models_1.ProjectViewTile.EDefaultImagery.OpenStreetMap:
375
- provider = new Cesium.OpenStreetMapImageryProvider({
376
- url: "https://a.tile.openstreetmap.org/"
377
- });
378
- break;
379
- case bruce_models_1.ProjectViewTile.EDefaultImagery.LINZ:
380
- provider = new Cesium.OpenStreetMapImageryProvider({
381
- url: "https://s3-ap-southeast-2.amazonaws.com/digitalnewzealand/PROD/Tilesets/nz-img",
382
- fileExtension: "jpg"
383
- });
384
- break;
385
- case bruce_models_1.ProjectViewTile.EDefaultImagery.StamenWaterColor:
386
- provider = provider = new Cesium.UrlTemplateImageryProvider({
387
- url: `https://tiles.stadiamaps.com/tiles/stamen_watercolor/{z}/{x}/{y}.jpg?api_key=${await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.StadiaMaps)}`,
388
- credit: '© Stadia Maps, © OpenMapTiles © OpenStreetMap contributors',
389
- maximumLevel: 16
390
- });
391
- break;
392
- case bruce_models_1.ProjectViewTile.EDefaultImagery.StamenToner:
393
- provider = new Cesium.UrlTemplateImageryProvider({
394
- url: `https://tiles.stadiamaps.com/tiles/stamen_toner/{z}/{x}/{y}.png?api_key=${await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.StadiaMaps)}`,
395
- credit: '© Stadia Maps, © OpenMapTiles © OpenStreetMap contributors',
396
- maximumLevel: 18
397
- });
398
- break;
399
- case bruce_models_1.ProjectViewTile.EDefaultImagery.ThunderforestCycle:
400
- provider = new Cesium.UrlTemplateImageryProvider({
401
- url: `https://tile.thunderforest.com/cycle/{z}/{x}/{y}.png?apikey=${await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.Thunderforest)}`,
402
- credit: '© Thunderforest, © OpenStreetMap contributors',
403
- maximumLevel: 22
404
- });
405
- break;
406
- case bruce_models_1.ProjectViewTile.EDefaultImagery.ThunderforestTransport:
407
- provider = new Cesium.UrlTemplateImageryProvider({
408
- url: `https://tile.thunderforest.com/transport/{z}/{x}/{y}.png?apikey=${await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.Thunderforest)}`,
409
- credit: '© Thunderforest, © OpenStreetMap contributors',
410
- maximumLevel: 22
411
- });
412
- break;
413
- case bruce_models_1.ProjectViewTile.EDefaultImagery.ThunderforestLandscape:
414
- provider = new Cesium.UrlTemplateImageryProvider({
415
- url: `https://tile.thunderforest.com/landscape/{z}/{x}/{y}.png?apikey=${await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.Thunderforest)}`,
416
- credit: '© Thunderforest, © OpenStreetMap contributors',
417
- maximumLevel: 22
418
- });
419
- break;
420
- case bruce_models_1.ProjectViewTile.EDefaultImagery.Grid:
421
- provider = new Cesium.GridImageryProvider({
422
- tilingScheme: new Cesium.GeographicTilingScheme(),
423
- cells: 0,
424
- color: Cesium.Color.fromCssColorString("rgb(97, 151, 237)"),
425
- glowColor: Cesium.Color.fromCssColorString("rgb(54, 54, 54)"),
426
- glowWidth: 4,
427
- backgroundColor: Cesium.Color.TRANSPARENT,
428
- tileWidth: 256,
429
- tileHeight: 256,
430
- canvasSize: 256
431
- });
432
- break;
433
- }
434
- // If the provider is a promise then we'll wait for it.
435
- if (provider instanceof Promise) {
436
- provider = await provider;
437
- }
438
- return provider;
439
- }
440
- /**
441
- * Maps a legacy imagery's name to a default imagery id.
442
- * @param name
443
- * @returns
444
- */
445
- function legacyMapIdToDefaultId(name) {
446
- name = prepLegacyName(name);
447
- switch (name) {
448
- case "bingmapsaerial":
449
- return bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerial;
450
- case "bingmapsaerialwithlabels":
451
- return bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels;
452
- case "bingmapsroads":
453
- return bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsRoads;
454
- case "mapboxsatellite":
455
- return bruce_models_1.ProjectViewTile.EDefaultImagery.MapboxSatellite;
456
- case "mapboxstreets":
457
- return bruce_models_1.ProjectViewTile.EDefaultImagery.MapBoxStreets;
458
- case "mapboxstreetsclassic":
459
- return bruce_models_1.ProjectViewTile.EDefaultImagery.MapBoxStreetsClassic;
460
- case "esriworldimagery":
461
- return bruce_models_1.ProjectViewTile.EDefaultImagery.EsriWorldImagery;
462
- case "esriworldstreetmap":
463
- return bruce_models_1.ProjectViewTile.EDefaultImagery.EsriWorldStreetMap;
464
- case "esrinationalgeographic":
465
- return bruce_models_1.ProjectViewTile.EDefaultImagery.EsriNationalGeographic;
466
- case "openstreetmap":
467
- return bruce_models_1.ProjectViewTile.EDefaultImagery.OpenStreetMap;
468
- case "stamenwatercolor":
469
- return bruce_models_1.ProjectViewTile.EDefaultImagery.StamenWaterColor;
470
- case "stamentoner":
471
- return bruce_models_1.ProjectViewTile.EDefaultImagery.StamenToner;
472
- case "linz":
473
- return bruce_models_1.ProjectViewTile.EDefaultImagery.LINZ;
474
- case "grid":
475
- return bruce_models_1.ProjectViewTile.EDefaultImagery.Grid;
476
- }
477
- }
478
- /**
479
- * Returns if a given legacy imagery's name correspondings to a default source.
480
- * @param name
481
- * @returns
482
- */
483
- function isLegacyImageryDefault(name) {
484
- name = legacyMapIdToDefaultId(name);
485
- return bruce_models_1.ProjectViewTile.DefaultImagery.find(x => x.id == name) != null;
486
- }
487
- /**
488
- * We don't need to provide the "." in the file extension to Cesium's providers.
489
- * @param ext
490
- * @returns
491
- */
492
- function prepareFileExt(ext) {
493
- if (!ext) {
494
- return null;
495
- }
496
- ext = ext.replace(".", "");
497
- return ext;
498
- }
499
- /**
500
- * Creates an imagery layer from a given provider.
501
- * This exists because the constructor for it has changed between cesium versions.
502
- * @param provider
503
- * @returns
504
- */
505
- function createImageryLayer(provider) {
506
- const CIL = Cesium.ImageryLayer;
507
- if (CIL.length == 2) {
508
- return new CIL(provider, {});
509
- }
510
- return new CIL(provider);
511
- }
512
- var TileRenderEngine;
513
- (function (TileRenderEngine) {
514
- /**
515
- * Legacy data did name comparisons instead of ids.
516
- * We need to strip spacing, remove special characters, and make lowercase before comparison...
517
- * @param nameA
518
- * @param nameB
519
- */
520
- function CompareLegacyNames(nameA, nameB) {
521
- nameA = prepLegacyName(nameA);
522
- nameB = prepLegacyName(nameB);
523
- return nameA === nameB;
524
- }
525
- TileRenderEngine.CompareLegacyNames = CompareLegacyNames;
526
- let Map;
527
- (function (Map) {
528
- let LegacyNavigator;
529
- (function (LegacyNavigator) {
530
- async function Render(params) {
531
- if (!params.apiGetter) {
532
- params.apiGetter = bruce_models_1.ENVIRONMENT.Api().GetBruceGetter();
533
- }
534
- const CESIUM = Cesium;
535
- const enabled = gatherEnabledImageries(params.viewer);
536
- const tile = params.data;
537
- const bId = createLegacyImageryId(tile);
538
- let layer = enabled.find(x => x._bId == bId);
539
- if (layer) {
540
- // Already exists.
541
- }
542
- else if (isLegacyImageryDefault(tile.Name)) {
543
- const defaultId = legacyMapIdToDefaultId(tile.Name);
544
- const provider = await renderDefaultMapTile(params.apiGetter, defaultId);
545
- if (provider) {
546
- layer = createImageryLayer(provider);
547
- }
548
- }
549
- else if (tile.SourceUrl) {
550
- let provider = null;
551
- let min = tile.Minimum;
552
- let max = tile.Maximum;
553
- if (min != undefined && min <= -1) {
554
- min = undefined;
555
- }
556
- if (max != undefined && max <= -1) {
557
- max = undefined;
558
- }
559
- switch (tile.Type) {
560
- case "BruceImagery":
561
- provider = new Cesium.UrlTemplateImageryProvider({
562
- url: tile.SourceUrl,
563
- tileHeight: 256,
564
- tileWidth: 256
565
- });
566
- break;
567
- case "ArcGisImagery":
568
- provider = new Cesium.OpenStreetMapImageryProvider({
569
- url: tile.SourceUrl,
570
- fileExtension: prepareFileExt(tile.FileExtension),
571
- minimumLevel: min,
572
- maximumLevel: max
573
- });
574
- break;
575
- case "TileMapImagery":
576
- if (Cesium.TileMapServiceImageryProvider.hasOwnProperty("fromUrl")) {
577
- provider = await CESIUM.TileMapServiceImageryProvider.fromUrl(tile.SourceUrl, {
578
- minimumLevel: min,
579
- maximumLevel: max,
580
- fileExtension: prepareFileExt(tile.FileExtension)
581
- });
582
- }
583
- else {
584
- provider = new CESIUM.TileMapServiceImageryProvider({
585
- url: tile.SourceUrl,
586
- fileExtension: prepareFileExt(tile.FileExtension),
587
- minimumLevel: min,
588
- maximumLevel: max
589
- });
590
- }
591
- break;
592
- case "OpenStreetMapImagery":
593
- provider = new Cesium.OpenStreetMapImageryProvider({
594
- url: tile.SourceUrl,
595
- fileExtension: prepareFileExt(tile.FileExtension),
596
- minimumLevel: min,
597
- maximumLevel: max
598
- });
599
- break;
600
- case "MapBoxImagery":
601
- var mapboxKey = tile.ProgramKey ? tile.ProgramKey : await findKey(params.apiGetter, params.apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.Mapbox);
602
- provider = new Cesium.UrlTemplateImageryProvider({
603
- url: "https://api.mapbox.com/styles/v1/"
604
- + tile.MapBoxUsername + "/" + tile.MapBoxID +
605
- "/tiles/256/{z}/{x}/{y}?access_token="
606
- + mapboxKey
607
- });
608
- break;
609
- }
610
- if (provider) {
611
- layer = createImageryLayer(provider);
612
- }
613
- }
614
- if (layer) {
615
- layer._bId = bId;
616
- layer._bName = tile.Name;
617
- if (!params.viewer.imageryLayers.contains(layer)) {
618
- params.viewer.imageryLayers.add(layer);
619
- }
620
- }
621
- params.viewer.scene.requestRender();
622
- return layer;
623
- }
624
- LegacyNavigator.Render = Render;
625
- async function RenderView(params) {
626
- var _a;
627
- if (!params.apiGetter) {
628
- params.apiGetter = bruce_models_1.ENVIRONMENT.Api().GetBruceGetter();
629
- }
630
- const iteration = newIteration(params.viewer, "imagery");
631
- const api = params.apiGetter.getApi();
632
- const view = (await bruce_models_1.ProjectView.Get({
633
- api,
634
- viewId: params.viewId
635
- })).view;
636
- if (!assertIteration(params.viewer, iteration)) {
637
- return;
638
- }
639
- let bookmark = null;
640
- if (params.bookmarkId) {
641
- bookmark = (await bruce_models_1.ProjectViewBookmark.Get({
642
- api,
643
- viewId: params.viewId,
644
- bookmarkId: params.bookmarkId
645
- })).bookmark;
646
- if (!assertIteration(params.viewer, iteration)) {
647
- return;
648
- }
649
- }
650
- const vSettings = view.Settings;
651
- const bSettings = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings;
652
- const data = [];
653
- const dataNames = [];
654
- if (bSettings === null || bSettings === void 0 ? void 0 : bSettings.imagery) {
655
- for (let i = 0; i < bSettings.imagery.length; i++) {
656
- const source = bSettings.imagery[i];
657
- dataNames.push(source.title);
658
- }
659
- }
660
- else if (vSettings === null || vSettings === void 0 ? void 0 : vSettings.DefaultMapTiles) {
661
- dataNames.push(vSettings.DefaultMapTiles);
662
- }
663
- const tiles = (_a = vSettings === null || vSettings === void 0 ? void 0 : vSettings.CesiumMapSources) !== null && _a !== void 0 ? _a : [];
664
- await bruce_models_1.ProjectViewLegacyTile.MergeMapTemplateData({
665
- getter: params.apiGetter,
666
- sources: tiles,
667
- addIfMissing: (vSettings === null || vSettings === void 0 ? void 0 : vSettings.CesiumMapSources) == null
668
- });
669
- if (!assertIteration(params.viewer, iteration)) {
670
- return;
671
- }
672
- for (let i = 0; i < dataNames.length; i++) {
673
- const name = dataNames[i];
674
- for (let j = 0; j < tiles.length; j++) {
675
- const tile = tiles[j];
676
- if (CompareLegacyNames(tile.Name, name)) {
677
- data.push(tile);
678
- break;
679
- }
680
- }
681
- }
682
- let enabled = gatherEnabledImageries(params.viewer);
683
- const layers = [];
684
- // Gather layers we want to render.
685
- // Any new layer is added to viewer at the bottom.
686
- if (params.ignoreIds) {
687
- for (let i = 0; i < params.ignoreIds.length; i++) {
688
- const id = params.ignoreIds[i];
689
- const layer = enabled.find((x) => {
690
- const layer = x;
691
- if (layer._bId === id) {
692
- return true;
693
- }
694
- });
695
- if (layer) {
696
- layers.push(layer);
697
- }
698
- }
699
- }
700
- for (let i = 0; i < data.length; i++) {
701
- const tile = data[i];
702
- const layer = await Render({
703
- apiGetter: params.apiGetter,
704
- viewer: params.viewer,
705
- data: tile,
706
- });
707
- if (layer) {
708
- layers.push(layer);
709
- }
710
- if (!assertIteration(params.viewer, iteration)) {
711
- return;
712
- }
713
- }
714
- // Sort currently enabled (after new ones added) to match desired order.
715
- enabled = gatherEnabledImageries(params.viewer);
716
- enabled.sort((a, b) => {
717
- const indexA = layers.indexOf(a);
718
- const indexB = layers.indexOf(b);
719
- if (indexA < 0 && indexB < 0) {
720
- return 0;
721
- }
722
- if (indexA < 0) {
723
- return 1;
724
- }
725
- if (indexB < 0) {
726
- return -1;
727
- }
728
- return indexA - indexB;
729
- });
730
- // Move enabled layers to match desired order.
731
- // Remove any layers that aren't in enabled list.
732
- for (let i = 0; i < enabled.length; i++) {
733
- const layer = enabled[i];
734
- if (layers.includes(layer)) {
735
- params.viewer.imageryLayers.raiseToTop(layer);
736
- }
737
- else {
738
- params.viewer.imageryLayers.remove(layer);
739
- }
740
- }
741
- params.viewer.scene.requestRender();
742
- }
743
- LegacyNavigator.RenderView = RenderView;
744
- })(LegacyNavigator = Map.LegacyNavigator || (Map.LegacyNavigator = {}));
745
- let Navigator;
746
- (function (Navigator) {
747
- async function GetOrCreateLayer(params) {
748
- let { viewer, apiGetter, meta } = params;
749
- if (!apiGetter) {
750
- apiGetter = bruce_models_1.ENVIRONMENT.Api().GetBruceGetter();
751
- }
752
- const CESIUM = Cesium;
753
- // Don't create a new layer if one already exists.
754
- const enabled = gatherEnabledImageries(viewer);
755
- for (let i = 0; i < enabled.length; i++) {
756
- const layer = enabled[i];
757
- const layerMeta = layer._bMeta;
758
- if (layerMeta && layerMeta.tilesetId === meta.tilesetId && layerMeta.accountId === meta.accountId) {
759
- return layer;
760
- }
761
- }
762
- const defaultImg = meta.accountId ? null : bruce_models_1.ProjectViewTile.DefaultImagery.find(x => x.id === meta.tilesetId);
763
- let provider = null;
764
- if (defaultImg) {
765
- const NEEDS_CESIUM_TOKEN = [
766
- bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerial,
767
- bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels,
768
- bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsRoads
769
- ];
770
- // If we need a cesium token, and we don't have one, then we can't render this.
771
- let shouldCreate = true;
772
- if (NEEDS_CESIUM_TOKEN.includes(defaultImg.id)) {
773
- shouldCreate = await viewer_utils_1.ViewerUtils.AssertIonToken(Cesium.Ion.defaultAccessToken);
774
- }
775
- if (shouldCreate) {
776
- try {
777
- provider = await renderDefaultMapTile(apiGetter, defaultImg.id);
778
- }
779
- catch (e) {
780
- console.error(e);
781
- viewer_utils_1.ViewerUtils.GetEventTracker(params.viewer).Warn(viewer_event_tracker_1.ViewerEventTracker.EDomain.TileImagery, "Imagery failed to load.", {
782
- tilesetId: meta.tilesetId,
783
- accountId: meta.accountId,
784
- exception: e
785
- });
786
- }
787
- }
788
- else {
789
- viewer_utils_1.ViewerUtils.GetEventTracker(params.viewer).Warn(viewer_event_tracker_1.ViewerEventTracker.EDomain.TileImagery, "Imagery failed to load because it requires a valid Cesium Ion Token to be set.", {
790
- tilesetId: meta.tilesetId,
791
- accountId: meta.accountId,
792
- e: new Error("No Cesium Ion Token set.")
793
- });
794
- }
795
- }
796
- else {
797
- const api = apiGetter.getApi(meta.accountId);
798
- // Ensure regional url is loaded.
799
- // When loading stuff in the same account as the default it's likely already loaded,
800
- // but if we just made an API instance for some external account then it won't be loaded yet.
801
- await api.Loading;
802
- const { tileset } = await bruce_models_1.Tileset.Get({
803
- api,
804
- tilesetId: meta.tilesetId
805
- });
806
- let boundaries = undefined;
807
- const settings = tileset === null || tileset === void 0 ? void 0 : tileset.settings;
808
- if (settings && settings.boundaries) {
809
- const minLat = settings.boundaries.minLatitude;
810
- const maxLat = settings.boundaries.maxLatitude;
811
- const minLon = settings.boundaries.minLongitude;
812
- const maxLon = settings.boundaries.maxLongitude;
813
- boundaries = Cesium.Rectangle.fromDegrees(minLon, minLat, maxLon, maxLat);
814
- }
815
- let minLevel = settings === null || settings === void 0 ? void 0 : settings.levelMin;
816
- let maxLevel = settings === null || settings === void 0 ? void 0 : settings.levelMax;
817
- const hasLevels = !isNaN(minLevel) && !isNaN(maxLevel);
818
- if (tileset.type === bruce_models_1.Tileset.EType.GeoMap) {
819
- let url = null;
820
- if (tileset.loadUrl) {
821
- url = tileset.loadUrl;
822
- }
823
- // To be removed.
824
- else {
825
- url = bruce_models_1.Tileset.GetPublicFileUrl({
826
- api,
827
- tilesetId: meta.tilesetId,
828
- file: "",
829
- viaCdn: true,
830
- viaCdnCacheToken: tileset.generateVersion
831
- });
832
- }
833
- // Nextspace imagery with a custom suffix.
834
- // This usually means it was generated through another service.
835
- if ((settings === null || settings === void 0 ? void 0 : settings.loadUrlSuffix) || url.endsWith(".png")) {
836
- provider = new Cesium.UrlTemplateImageryProvider({
837
- url: url,
838
- tileHeight: 256,
839
- tileWidth: 256,
840
- // maximumLevel: hasLevels ? maxLevel : undefined,
841
- // minimumLevel: hasLevels ? minLevel : undefined,
842
- });
843
- }
844
- // Typical Nextspace imagery.
845
- else {
846
- if (Cesium.TileMapServiceImageryProvider.hasOwnProperty("fromUrl")) {
847
- provider = await CESIUM.TileMapServiceImageryProvider.fromUrl(url, {
848
- fileExtension: "png",
849
- // Tested to not cause increased lag.
850
- rectangle: boundaries,
851
- maximumLevel: hasLevels ? maxLevel : undefined,
852
- minimumLevel: hasLevels ? minLevel : undefined,
853
- });
854
- }
855
- else {
856
- provider = new CESIUM.TileMapServiceImageryProvider({
857
- url: url,
858
- fileExtension: "png",
859
- // Tested to not cause increased lag.
860
- rectangle: boundaries,
861
- maximumLevel: hasLevels ? maxLevel : undefined,
862
- minimumLevel: hasLevels ? minLevel : undefined,
863
- });
864
- }
865
- }
866
- }
867
- else if (tileset.type === bruce_models_1.Tileset.EType.ExternalGeoMap) {
868
- const settings = tileset.settings;
869
- switch (settings.mapType) {
870
- case bruce_models_1.Tileset.Settings.EExternalMapType.CesiumIon:
871
- var cesiumIonKey = settings.key ? settings.key : await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.CesiumIon);
872
- if (Cesium.IonImageryProvider.hasOwnProperty("fromAssetId")) {
873
- provider = await CESIUM.IonImageryProvider.fromAssetId(Number(settings.externalId), {
874
- accessToken: cesiumIonKey
875
- });
876
- }
877
- else {
878
- provider = new CESIUM.IonImageryProvider({
879
- assetId: Number(settings.externalId),
880
- accessToken: cesiumIonKey
881
- });
882
- }
883
- break;
884
- case bruce_models_1.Tileset.Settings.EExternalMapType.MapBoxImagery:
885
- var mapboxKey = settings.key ? settings.key : await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.Mapbox);
886
- provider = new Cesium.UrlTemplateImageryProvider({
887
- url: "https://api.mapbox.com/styles/v1/"
888
- + settings.account + "/" + settings.styleId +
889
- "/tiles/256/{z}/{x}/{y}?access_token="
890
- + mapboxKey
891
- });
892
- break;
893
- case bruce_models_1.Tileset.Settings.EExternalMapType.OpenStreetMapImagery:
894
- provider = new Cesium.OpenStreetMapImageryProvider({
895
- url: settings.url,
896
- fileExtension: prepareFileExt(settings.fileExtension),
897
- // Unused until tested properly. In the past these settings caused large lag.
898
- // rectangle: boundaries,
899
- // maximumLevel: hasLevels ? maxLevel : undefined,
900
- // minimumLevel: hasLevels ? minLevel : undefined,
901
- });
902
- break;
903
- case bruce_models_1.Tileset.Settings.EExternalMapType.TileMapImagery:
904
- if (Cesium.TileMapServiceImageryProvider.hasOwnProperty("fromUrl")) {
905
- provider = await CESIUM.TileMapServiceImageryProvider.fromUrl(settings.url, {
906
- fileExtension: prepareFileExt(settings.fileExtension),
907
- // Unused until tested properly. In the past these settings caused large lag.
908
- // rectangle: boundaries,
909
- // maximumLevel: hasLevels ? maxLevel : undefined,
910
- // minimumLevel: hasLevels ? minLevel : undefined,
911
- });
912
- }
913
- else {
914
- provider = new CESIUM.TileMapServiceImageryProvider({
915
- url: settings.url,
916
- fileExtension: prepareFileExt(settings.fileExtension),
917
- // Unused until tested properly. In the past these settings caused large lag.
918
- // rectangle: boundaries,
919
- // maximumLevel: hasLevels ? maxLevel : undefined,
920
- // minimumLevel: hasLevels ? minLevel : undefined,
921
- });
922
- }
923
- break;
924
- case bruce_models_1.Tileset.Settings.EExternalMapType.CustomTemplate:
925
- provider = new Cesium.UrlTemplateImageryProvider({
926
- url: settings.url
927
- });
928
- break;
929
- }
930
- }
931
- else if (tileset.type === bruce_models_1.Tileset.EType.EntitiesMap) {
932
- provider = new Cesium.UrlTemplateImageryProvider({
933
- url: bruce_models_1.Tileset.GetPublicFileUrl({
934
- api,
935
- tilesetId: meta.tilesetId,
936
- file: "{z}/{x}/{y}.png",
937
- viaCdn: true,
938
- viaCdnCacheToken: tileset.generateVersion
939
- }),
940
- tileHeight: 256,
941
- tileWidth: 256
942
- // Unused until tested properly. In the past these settings caused large lag.
943
- // rectangle: boundaries,
944
- // minimumLevel: hasLevels ? minLevel : undefined,
945
- // maximumLevel: hasLevels ? maxLevel : undefined,
946
- });
947
- }
948
- }
949
- if (provider) {
950
- // We need some way to add meta without appending to layers.
951
- // Adding to layers triggers an event, if meta is missing then we'll not know what imagery is enabled.
952
- // In the meantime we use "lowerToBottom" to trigger a secondary event with updated data...
953
- const layer = viewer.imageryLayers.addImageryProvider(provider);
954
- layer._bMeta = meta;
955
- viewer.imageryLayers.lowerToBottom(layer);
956
- params.viewer.scene.requestRender();
957
- return layer;
958
- }
959
- return null;
960
- }
961
- Navigator.GetOrCreateLayer = GetOrCreateLayer;
962
- async function Render(params) {
963
- if (!params.apiGetter) {
964
- params.apiGetter = bruce_models_1.ENVIRONMENT.Api().GetBruceGetter();
965
- }
966
- // Clean duplicate items and set default values.
967
- let tmpTiles = [];
968
- for (let i = 0; i < params.tiles.length; i++) {
969
- const tile = params.tiles[i];
970
- if (!tmpTiles.find(x => (x.accountId == tile.accountId) && (x.tilesetId == tile.tilesetId))) {
971
- tmpTiles.push(tile);
972
- // Set default values.
973
- if (tile.alpha == null) {
974
- tile.alpha = 1;
975
- }
976
- if (tile.contrast == null) {
977
- tile.contrast = 1;
978
- }
979
- if (tile.gamma == null) {
980
- tile.gamma = 1;
981
- }
982
- if (tile.hue == null) {
983
- tile.hue = 0;
984
- }
985
- if (tile.saturation == null) {
986
- tile.saturation = 1;
987
- }
988
- if (tile.brightness == null) {
989
- // Gotten complaints about the scene being too dark even during day.
990
- // So we'll adjust the brightness for our common and tested options.
991
- // Other ones can be manually adjusted by the user in the side-panel.
992
- const BRIGHTEN_MAP = {
993
- [bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerial]: 1.2,
994
- [bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels]: 1.2,
995
- [bruce_models_1.ProjectViewTile.EDefaultImagery.MapboxSatellite]: 1.05
996
- };
997
- tile.brightness = BRIGHTEN_MAP[tile.tilesetId];
998
- if (tile.brightness == null) {
999
- tile.brightness = 1;
1000
- }
1001
- }
1002
- }
1003
- }
1004
- params.tiles = tmpTiles;
1005
- /**
1006
- * Ensures all currently enabled imageries are in correct order and have correct settings.
1007
- */
1008
- const organize = () => {
1009
- const curEnabledArr = [];
1010
- for (let i = 0; i < curEnabled.length; i++) {
1011
- const layer = curEnabled.get(i);
1012
- curEnabledArr.push(layer);
1013
- }
1014
- for (let i = 0; i < params.tiles.length; i++) {
1015
- const enabled = params.tiles[i];
1016
- const layer = curEnabledArr.find(x => { var _a, _b; return ((_a = x._bMeta) === null || _a === void 0 ? void 0 : _a.accountId) === enabled.accountId && ((_b = x._bMeta) === null || _b === void 0 ? void 0 : _b.tilesetId) === enabled.tilesetId; });
1017
- if (layer) {
1018
- params.viewer.imageryLayers.raiseToTop(layer);
1019
- layer.alpha = (0, js_utils_1.EnsureNumber)(enabled.alpha == null ? 1 : enabled.alpha);
1020
- layer.contrast = (0, js_utils_1.EnsureNumber)(enabled.contrast == null ? 1 : enabled.contrast);
1021
- layer.hue = (0, js_utils_1.EnsureNumber)(enabled.hue == null ? 0 : enabled.hue);
1022
- layer.saturation = (0, js_utils_1.EnsureNumber)(enabled.saturation == null ? 1 : enabled.saturation);
1023
- layer.gamma = (0, js_utils_1.EnsureNumber)(enabled.gamma == null ? 1 : enabled.gamma);
1024
- layer.brightness = (0, js_utils_1.EnsureNumber)(enabled.brightness == null ? 1 : enabled.brightness);
1025
- }
1026
- }
1027
- params.viewer.scene.requestRender();
1028
- };
1029
- const iteration = newIteration(params.viewer, "imagery");
1030
- const curEnabled = params.viewer.imageryLayers;
1031
- // Remove imageries that are no longer enabled.
1032
- const toDisable = [];
1033
- for (let i = 0; i < curEnabled.length; i++) {
1034
- const layer = curEnabled.get(i);
1035
- const meta = layer === null || layer === void 0 ? void 0 : layer._bMeta;
1036
- const disable = !params.tiles.find(x => x.accountId === (meta === null || meta === void 0 ? void 0 : meta.accountId) && x.tilesetId === (meta === null || meta === void 0 ? void 0 : meta.tilesetId));
1037
- if (disable) {
1038
- toDisable.push(layer);
1039
- }
1040
- }
1041
- for (let i = 0; i < toDisable.length; i++) {
1042
- params.viewer.imageryLayers.remove(toDisable[i]);
1043
- }
1044
- // Ensure layers exist for all enabled sources.
1045
- let organized = false;
1046
- for (let i = 0; i < params.tiles.length; i++) {
1047
- const enabled = params.tiles[i];
1048
- try {
1049
- await GetOrCreateLayer({
1050
- viewer: params.viewer,
1051
- apiGetter: params.apiGetter,
1052
- meta: {
1053
- accountId: enabled.accountId,
1054
- tilesetId: enabled.tilesetId,
1055
- }
1056
- });
1057
- }
1058
- catch (e) {
1059
- console.error(e);
1060
- }
1061
- if (!assertIteration(params.viewer, iteration)) {
1062
- return;
1063
- }
1064
- // Organize as we load in case there are lots of imageries.
1065
- // We want to ensure what the user sees is as close to correct as we can get.
1066
- organize();
1067
- organized = true;
1068
- }
1069
- if (!organized) {
1070
- organize();
1071
- }
1072
- }
1073
- Navigator.Render = Render;
1074
- })(Navigator = Map.Navigator || (Map.Navigator = {}));
1075
- })(Map = TileRenderEngine.Map || (TileRenderEngine.Map = {}));
1076
- let Terrain;
1077
- (function (Terrain) {
1078
- let LegacyNavigator;
1079
- (function (LegacyNavigator) {
1080
- async function Render(params) {
1081
- var _a;
1082
- const bId = createLegacyTerrId(params.data);
1083
- const curProvider = params.viewer.terrainProvider;
1084
- if (curProvider._bId && curProvider._bId === bId) {
1085
- return;
1086
- }
1087
- const CESIUM = Cesium;
1088
- let provider = null;
1089
- if (isLegacyTerrainDefault(params.data.Name)) {
1090
- const id = legacyTerrIdToDefaultId(params.data.Name);
1091
- provider = await renderDefaultTerrTile(id);
1092
- }
1093
- else if (params.data.SourceUrl) {
1094
- if (Cesium.CesiumTerrainProvider.hasOwnProperty("fromUrl")) {
1095
- provider = await CESIUM.CesiumTerrainProvider.fromUrl(params.data.SourceUrl, {
1096
- requestWaterMask: params.data.RequestWaterMask,
1097
- requestVertexNormals: true
1098
- });
1099
- }
1100
- else {
1101
- provider = new CESIUM.CesiumTerrainProvider({
1102
- url: params.data.SourceUrl,
1103
- requestWaterMask: params.data.RequestWaterMask,
1104
- requestVertexNormals: true
1105
- });
1106
- }
1107
- }
1108
- if (provider) {
1109
- provider._bId = bId;
1110
- provider._bName = (_a = params.data) === null || _a === void 0 ? void 0 : _a.Name;
1111
- params.viewer.terrainProvider = provider;
1112
- }
1113
- params.viewer.scene.requestRender();
1114
- }
1115
- LegacyNavigator.Render = Render;
1116
- async function RenderView(params) {
1117
- var _a, _b;
1118
- if (!params.apiGetter) {
1119
- params.apiGetter = bruce_models_1.ENVIRONMENT.Api().GetBruceGetter();
1120
- }
1121
- const iteration = newIteration(params.viewer, "terrain");
1122
- const api = params.apiGetter.getApi();
1123
- const view = (await bruce_models_1.ProjectView.Get({
1124
- api,
1125
- viewId: params.viewId
1126
- })).view;
1127
- let bookmark = null;
1128
- if (!assertIteration(params.viewer, iteration)) {
1129
- return;
1130
- }
1131
- if (params.bookmarkId) {
1132
- bookmark = (await bruce_models_1.ProjectViewBookmark.Get({
1133
- api,
1134
- viewId: params.viewId,
1135
- bookmarkId: params.bookmarkId
1136
- })).bookmark;
1137
- if (!assertIteration(params.viewer, iteration)) {
1138
- return;
1139
- }
1140
- }
1141
- const vSettings = view.Settings;
1142
- const bSettings = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings;
1143
- let terrainTiles = (_a = vSettings === null || vSettings === void 0 ? void 0 : vSettings.CesiumTerrainSources) !== null && _a !== void 0 ? _a : [];
1144
- let terrainTile = null;
1145
- let terrainTileName = null;
1146
- if ((_b = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _b === void 0 ? void 0 : _b.terrain) {
1147
- terrainTileName = bSettings.terrain;
1148
- }
1149
- else {
1150
- terrainTileName = vSettings === null || vSettings === void 0 ? void 0 : vSettings.DefaultTerrain;
1151
- }
1152
- await bruce_models_1.ProjectViewLegacyTile.MergeTerrainTemplateData({
1153
- getter: params.apiGetter,
1154
- sources: terrainTiles,
1155
- addIfMissing: (vSettings === null || vSettings === void 0 ? void 0 : vSettings.CesiumTerrainSources) == null
1156
- });
1157
- if (!assertIteration(params.viewer, iteration)) {
1158
- return;
1159
- }
1160
- for (let i = 0; i < terrainTiles.length; i++) {
1161
- const tile = terrainTiles[i];
1162
- if (TileRenderEngine.CompareLegacyNames(tile.Name, terrainTileName)) {
1163
- terrainTile = tile;
1164
- break;
1165
- }
1166
- }
1167
- if (terrainTile) {
1168
- await Render({
1169
- data: terrainTile,
1170
- viewer: params.viewer,
1171
- });
1172
- if (!assertIteration(params.viewer, iteration)) {
1173
- return;
1174
- }
1175
- }
1176
- params.viewer.scene.requestRender();
1177
- }
1178
- LegacyNavigator.RenderView = RenderView;
1179
- })(LegacyNavigator = Terrain.LegacyNavigator || (Terrain.LegacyNavigator = {}));
1180
- let Navigator;
1181
- (function (Navigator) {
1182
- async function Render(params) {
1183
- var _a;
1184
- if (!params.apiGetter) {
1185
- params.apiGetter = bruce_models_1.ENVIRONMENT.Api().GetBruceGetter();
1186
- }
1187
- const iteration = newIteration(params.viewer, "terrain");
1188
- const CESIUM = Cesium;
1189
- // Already enabled.
1190
- const enabledMeta = (_a = params.viewer.terrainProvider) === null || _a === void 0 ? void 0 : _a._bMeta;
1191
- if ((enabledMeta === null || enabledMeta === void 0 ? void 0 : enabledMeta.tilesetId) === params.tile.tilesetId &&
1192
- (enabledMeta === null || enabledMeta === void 0 ? void 0 : enabledMeta.accountId) === params.tile.accountId) {
1193
- return;
1194
- }
1195
- // Known default that may have been enabled prior to utility doing it.
1196
- if (!enabledMeta) {
1197
- const provider = params.viewer.terrainProvider;
1198
- let leave = false;
1199
- if (params.tile.tilesetId == bruce_models_1.ProjectViewTile.EDefaultTerrain.FlatTerrain &&
1200
- provider instanceof Cesium.EllipsoidTerrainProvider) {
1201
- leave = true;
1202
- }
1203
- // TODO: Also check for "cesium world terrain" if we can easily determine that it's enabled.
1204
- if (leave) {
1205
- // Mark it so we don't have to do this magic logic again.
1206
- provider._bMeta = {
1207
- tilesetId: params.tile.tilesetId,
1208
- accountId: params.tile.accountId
1209
- };
1210
- return;
1211
- }
1212
- }
1213
- const defaultTerr = params.tile.accountId ? null : bruce_models_1.ProjectViewTile.DefaultTerrains.find(x => x.id === params.tile.tilesetId);
1214
- let provider = null;
1215
- if (defaultTerr) {
1216
- // Cesium token is required for Cesium World Terrain.
1217
- let shouldCreate = true;
1218
- if (defaultTerr.id == bruce_models_1.ProjectViewTile.EDefaultTerrain.CesiumWorldTerrain) {
1219
- shouldCreate = await viewer_utils_1.ViewerUtils.AssertIonToken(Cesium.Ion.defaultAccessToken);
1220
- }
1221
- if (shouldCreate) {
1222
- provider = await renderDefaultTerrTile(defaultTerr.id);
1223
- }
1224
- else {
1225
- viewer_utils_1.ViewerUtils.GetEventTracker(params.viewer).Warn(viewer_event_tracker_1.ViewerEventTracker.EDomain.TileTerrain, "Cesium Ion token not set, Cesium World Terrain will not be enabled.", {
1226
- tilesetId: bruce_models_1.ProjectViewTile.EDefaultTerrain.CesiumWorldTerrain
1227
- });
1228
- }
1229
- }
1230
- else {
1231
- const api = params.apiGetter.getApi(params.tile.accountId);
1232
- // Ensure regional url is loaded.
1233
- // When loading stuff in the same account as the default it's likely already loaded,
1234
- // but if we just made an API instance for some external account then it won't be loaded yet.
1235
- await api.Loading;
1236
- if (!assertIteration(params.viewer, iteration)) {
1237
- return;
1238
- }
1239
- let tileset;
1240
- try {
1241
- tileset = (await bruce_models_1.Tileset.Get({
1242
- api,
1243
- tilesetId: params.tile.tilesetId
1244
- })).tileset;
1245
- if (!assertIteration(params.viewer, iteration)) {
1246
- return;
1247
- }
1248
- if (tileset == null) {
1249
- throw new Error("Tileset not found.");
1250
- }
1251
- }
1252
- catch (e) {
1253
- viewer_utils_1.ViewerUtils.GetEventTracker(params.viewer).Error(viewer_event_tracker_1.ViewerEventTracker.EDomain.TileTerrain, "Failed to retreieve terrain Tileset record.", {
1254
- tilesetId: params.tile.tilesetId,
1255
- accountId: params.tile.accountId,
1256
- exception: e
1257
- });
1258
- }
1259
- let url;
1260
- let vertexes = true;
1261
- if (tileset.type === bruce_models_1.Tileset.EType.Terrain) {
1262
- url = bruce_models_1.Tileset.GetPublicFileUrl({
1263
- api,
1264
- tilesetId: tileset.id,
1265
- file: "",
1266
- viaCdn: true,
1267
- viaCdnCacheToken: tileset.generateVersion
1268
- });
1269
- }
1270
- else if (tileset.type === bruce_models_1.Tileset.EType.ExternalTerrain) {
1271
- const settings = tileset.settings;
1272
- vertexes = settings.requestVertexNormals == null ? true : settings.requestVertexNormals;
1273
- if (!settings.terrainType || settings.terrainType === "Default") {
1274
- url = settings.url;
1275
- }
1276
- else if (settings.terrainType == "CesiumIon") {
1277
- const ionId = settings.externalId;
1278
- const key = settings.key ? settings.key : await findKey(params.apiGetter, params.apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.CesiumIon);
1279
- const resource = await Cesium.IonResource.fromAssetId(Number(ionId), {
1280
- accessToken: key
1281
- });
1282
- if (!assertIteration(params.viewer, iteration)) {
1283
- return;
1284
- }
1285
- if (Cesium.CesiumTerrainProvider.hasOwnProperty("fromUrl")) {
1286
- provider = await CESIUM.CesiumTerrainProvider.fromUrl(resource, {
1287
- requestVertexNormals: vertexes
1288
- });
1289
- }
1290
- else {
1291
- provider = new CESIUM.CesiumTerrainProvider({
1292
- url: resource,
1293
- requestVertexNormals: vertexes
1294
- });
1295
- }
1296
- }
1297
- }
1298
- else {
1299
- console.error("Invalid tileset type.", tileset);
1300
- }
1301
- if (url) {
1302
- if (CESIUM.CesiumTerrainProvider.hasOwnProperty("fromUrl")) {
1303
- provider = await CESIUM.CesiumTerrainProvider.fromUrl(url, {
1304
- requestVertexNormals: vertexes
1305
- });
1306
- }
1307
- else {
1308
- provider = new CESIUM.CesiumTerrainProvider({
1309
- url: url,
1310
- requestVertexNormals: vertexes
1311
- });
1312
- }
1313
- }
1314
- }
1315
- if (provider) {
1316
- provider._bMeta = {
1317
- accountId: params.tile.accountId,
1318
- tilesetId: params.tile.tilesetId
1319
- };
1320
- params.viewer.terrainProvider = provider;
1321
- }
1322
- params.viewer.scene.requestRender();
1323
- }
1324
- Navigator.Render = Render;
1325
- })(Navigator = Terrain.Navigator || (Terrain.Navigator = {}));
1326
- })(Terrain = TileRenderEngine.Terrain || (TileRenderEngine.Terrain = {}));
1327
- })(TileRenderEngine = exports.TileRenderEngine || (exports.TileRenderEngine = {}));
1328
- //# sourceMappingURL=tile-render-engine.js.map