@reearth/core 0.0.7-alpha.7 → 0.0.7-alpha.70

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 (516) hide show
  1. package/LICENSE +177 -0
  2. package/dist/core.js +71433 -61051
  3. package/dist/core.umd.cjs +666 -680
  4. package/dist/{index-DqatWUTw.js → index-CUJ6HGQn.js} +1021 -908
  5. package/dist/index.d.ts +195 -73
  6. package/package.json +88 -74
  7. package/src/Map/ClusteredLayers/index.tsx +1 -1
  8. package/src/Map/Geoid/index.tsx +68 -0
  9. package/src/Map/Geoid/types.ts +8 -0
  10. package/src/Map/Layer/hooks.ts +7 -4
  11. package/src/Map/Layer/index.tsx +3 -1
  12. package/src/Map/Layers/hooks.ts +45 -12
  13. package/src/Map/Layers/index.tsx +13 -2
  14. package/src/Map/Layers/keys.ts +1 -0
  15. package/src/Map/Sketch/hooks.ts +454 -411
  16. package/src/Map/Sketch/index.tsx +68 -21
  17. package/src/Map/Sketch/sketchMachine.ts +640 -237
  18. package/src/Map/Sketch/sketchMachine.typegen.ts +58 -1
  19. package/src/Map/Sketch/types.ts +10 -20
  20. package/src/Map/Sketch/usePluginSketchLayer.ts +105 -0
  21. package/src/Map/Sketch/useSketch.ts +558 -0
  22. package/src/Map/Sketch/useSketchFeature.ts +198 -0
  23. package/src/Map/SpatialId/constants.ts +21 -0
  24. package/src/Map/SpatialId/hooks.ts +448 -0
  25. package/src/Map/SpatialId/index.tsx +63 -0
  26. package/src/Map/SpatialId/types.ts +68 -0
  27. package/src/Map/SpatialId/utils.ts +65 -0
  28. package/src/Map/hooks.ts +54 -8
  29. package/src/Map/index.tsx +42 -9
  30. package/src/Map/ref.ts +32 -3
  31. package/src/Map/types/customProvider.ts +32 -0
  32. package/src/Map/types/index.ts +42 -3
  33. package/src/Map/types/viewerProperty.ts +12 -1
  34. package/src/Map/useTimelineManager.ts +4 -10
  35. package/src/Map/utils.ts +1 -1
  36. package/src/Visualizer/Error.tsx +4 -1
  37. package/src/Visualizer/context.tsx +5 -5
  38. package/src/Visualizer/coreContext.tsx +3 -1
  39. package/src/Visualizer/hooks.ts +56 -22
  40. package/src/Visualizer/index.stories.tsx +15 -0
  41. package/src/Visualizer/index.tsx +29 -6
  42. package/src/Visualizer/useViewport.ts +1 -1
  43. package/src/engines/Cesium/Feature/Box/hooks/box.ts +4 -4
  44. package/src/engines/Cesium/Feature/Box/hooks/edge.ts +1 -1
  45. package/src/engines/Cesium/Feature/Box/hooks/side.ts +1 -1
  46. package/src/engines/Cesium/Feature/Box/utils.ts +6 -0
  47. package/src/engines/Cesium/Feature/Ellipse/index.stories.tsx +0 -1
  48. package/src/engines/Cesium/Feature/Frustum/getFieldOfView.ts +2 -0
  49. package/src/engines/Cesium/Feature/Frustum/index.stories.tsx +0 -1
  50. package/src/engines/Cesium/Feature/HeatMap/HeatmapMesh.tsx +1 -1
  51. package/src/engines/Cesium/Feature/Marker/index.tsx +1 -1
  52. package/src/engines/Cesium/Feature/Model/index.stories.tsx +1 -2
  53. package/src/engines/Cesium/Feature/Model/index.tsx +3 -3
  54. package/src/engines/Cesium/Feature/PhotoOverlay/hooks.ts +2 -2
  55. package/src/engines/Cesium/Feature/PhotoOverlay/index.tsx +3 -1
  56. package/src/engines/Cesium/Feature/Polygon/index.stories.tsx +0 -1
  57. package/src/engines/Cesium/Feature/Polygon/index.tsx +6 -4
  58. package/src/engines/Cesium/Feature/Raster/index.stories.tsx +0 -1
  59. package/src/engines/Cesium/Feature/Raster/mvt.ts +2 -1
  60. package/src/engines/Cesium/Feature/Resource/index.stories.tsx +0 -1
  61. package/src/engines/Cesium/Feature/Resource/index.tsx +1 -27
  62. package/src/engines/Cesium/Feature/Resource/utils.ts +86 -91
  63. package/src/engines/Cesium/Feature/Tileset/hooks.ts +273 -87
  64. package/src/engines/Cesium/Feature/Tileset/index.stories.tsx +0 -1
  65. package/src/engines/Cesium/Feature/Tileset/index.tsx +7 -14
  66. package/src/engines/Cesium/Feature/Tileset/useClippingBox.ts +2 -2
  67. package/src/engines/Cesium/Feature/Tileset/useDrawClipping.ts +2 -2
  68. package/src/engines/Cesium/Feature/context.ts +3 -0
  69. package/src/engines/Cesium/Feature/index.tsx +27 -10
  70. package/src/engines/Cesium/Feature/utils.tsx +20 -12
  71. package/src/engines/Cesium/PostProcesses/hbao/AmbientOcclusion.tsx +7 -4
  72. package/src/engines/Cesium/Sketch/ControlPoint.tsx +128 -24
  73. package/src/engines/Cesium/Sketch/ExtrudedControlPoints.tsx +70 -25
  74. package/src/engines/Cesium/Sketch/ExtrudedMeasurement.tsx +3 -1
  75. package/src/engines/Cesium/Sketch/ExtrudedPolygonEntity.tsx +14 -14
  76. package/src/engines/Cesium/Sketch/PolylineEntity.tsx +7 -4
  77. package/src/engines/Cesium/Sketch/SurfaceAddingPoints.tsx +60 -0
  78. package/src/engines/Cesium/Sketch/SurfaceControlPoints.tsx +126 -35
  79. package/src/engines/Cesium/Sketch/constants.ts +5 -0
  80. package/src/engines/Cesium/Sketch/index.tsx +68 -29
  81. package/src/engines/Cesium/SpatialId/CoordinateIndicator.tsx +28 -0
  82. package/src/engines/Cesium/SpatialId/SpatialIdSpace.tsx +33 -0
  83. package/src/engines/Cesium/SpatialId/VerticalSpaceIndicator.tsx +32 -0
  84. package/src/engines/Cesium/SpatialId/index.ts +3 -0
  85. package/src/engines/Cesium/common.ts +55 -18
  86. package/src/engines/Cesium/core/Clock.tsx +1 -1
  87. package/src/engines/Cesium/core/Globe/index.tsx +69 -0
  88. package/src/engines/Cesium/core/Globe/useTerrainProviderPromise.ts +81 -0
  89. package/src/engines/Cesium/core/Imagery.test.ts +299 -42
  90. package/src/engines/Cesium/core/Imagery.tsx +282 -54
  91. package/src/engines/Cesium/core/Indicator/Indicator.tsx +2 -2
  92. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapLabelImagery.tsx +13 -6
  93. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapLabelImageryLayer.tsx +2 -1
  94. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapLabelImageryProvider.ts +3 -4
  95. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapVectorMapLabel.tsx +14 -2
  96. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/helpers.ts +1 -1
  97. package/src/engines/Cesium/core/labels/LabelImageryLayers.tsx +10 -1
  98. package/src/engines/Cesium/core/presets.ts +122 -48
  99. package/src/engines/Cesium/helpers/getGeometryFromEntity.ts +55 -0
  100. package/src/engines/Cesium/hooks/useCamera.ts +2 -2
  101. package/src/engines/Cesium/hooks/useCameraLimiter.ts +1 -1
  102. package/src/engines/Cesium/hooks/useEngineRef.ts +52 -5
  103. package/src/engines/Cesium/hooks/useExplicitRender.ts +2 -2
  104. package/src/engines/Cesium/hooks/useInstance.ts +1 -1
  105. package/src/engines/Cesium/hooks/useLayerDragDrop.ts +3 -3
  106. package/src/engines/Cesium/hooks/useLayerSelectWithRect.ts +2 -2
  107. package/src/engines/Cesium/hooks/useOverrideGlobeShader/useOverrideGlobeShader.ts +115 -67
  108. package/src/engines/Cesium/hooks/useViewerProperty.ts +1 -1
  109. package/src/engines/Cesium/hooks.ts +68 -17
  110. package/src/engines/Cesium/index.stories.tsx +0 -1
  111. package/src/engines/Cesium/index.tsx +38 -8
  112. package/src/engines/Cesium/pickMany.ts +2 -0
  113. package/src/engines/Cesium/types.ts +1 -1
  114. package/src/engines/Cesium/utils/mouse.ts +1 -1
  115. package/src/engines/Cesium/utils/utils.ts +1 -1
  116. package/src/mantle/atoms/compute.test.ts +4 -4
  117. package/src/mantle/atoms/compute.ts +8 -4
  118. package/src/mantle/compat/forward.ts +1 -1
  119. package/src/mantle/data/geojson.ts +49 -26
  120. package/src/mantle/data/georss.ts +2 -2
  121. package/src/mantle/data/gml.ts +2 -2
  122. package/src/mantle/data/gpx.ts +2 -2
  123. package/src/mantle/data/shapefile/parseZip.ts +1 -0
  124. package/src/mantle/evaluator/simple/expression/README.md +392 -0
  125. package/src/mantle/evaluator/simple/expression/expression.test.ts +137 -0
  126. package/src/mantle/evaluator/simple/expression/node.ts +10 -12
  127. package/src/mantle/evaluator/simple/expression/variableReplacer.test.ts +178 -0
  128. package/src/mantle/evaluator/simple/expression/variableReplacer.ts +24 -11
  129. package/src/mantle/types/appearance.ts +4 -2
  130. package/src/mantle/types/index.ts +5 -0
  131. package/src/{Visualizer → shared}/interactionMode.ts +3 -2
  132. package/src/test/setup.ts +1 -1
  133. package/src/test/utils.tsx +1 -1
  134. package/src/types/modules.d.ts +96 -0
  135. package/src/utils/StringMatcher.ts +1 -1
  136. package/src/utils/image.ts +2 -12
  137. package/src/utils/use-delayed-count.ts +1 -1
  138. package/src/utils/use-dnd/drop.ts +1 -1
  139. package/src/utils/util.ts +1 -1
  140. package/src/utils/value.ts +2 -2
  141. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_0.json +0 -1
  142. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_1.json +0 -1
  143. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_10.json +0 -1
  144. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_11.json +0 -1
  145. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_12.json +0 -1
  146. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_13.json +0 -1
  147. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_14.json +0 -1
  148. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_15.json +0 -1
  149. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_16.json +0 -1
  150. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_17.json +0 -1
  151. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_18.json +0 -1
  152. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_19.json +0 -1
  153. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_2.json +0 -1
  154. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_20.json +0 -1
  155. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_21.json +0 -1
  156. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_22.json +0 -1
  157. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_23.json +0 -1
  158. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_24.json +0 -1
  159. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_25.json +0 -1
  160. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_26.json +0 -1
  161. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_27.json +0 -1
  162. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_3.json +0 -1
  163. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_4.json +0 -1
  164. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_5.json +0 -1
  165. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_6.json +0 -1
  166. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_7.json +0 -1
  167. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_8.json +0 -1
  168. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_9.json +0 -1
  169. package/dist/cesium/Assets/Images/bing_maps_credit.png +0 -0
  170. package/dist/cesium/Assets/Images/cesium_credit.png +0 -0
  171. package/dist/cesium/Assets/Images/google_earth_credit.png +0 -0
  172. package/dist/cesium/Assets/Images/ion-credit.png +0 -0
  173. package/dist/cesium/Assets/Textures/LensFlare/DirtMask.jpg +0 -0
  174. package/dist/cesium/Assets/Textures/LensFlare/StarBurst.jpg +0 -0
  175. package/dist/cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg +0 -0
  176. package/dist/cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg +0 -0
  177. package/dist/cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg +0 -0
  178. package/dist/cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg +0 -0
  179. package/dist/cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg +0 -0
  180. package/dist/cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg +0 -0
  181. package/dist/cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg +0 -0
  182. package/dist/cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg +0 -0
  183. package/dist/cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg +0 -0
  184. package/dist/cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg +0 -0
  185. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg +0 -0
  186. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg +0 -0
  187. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg +0 -0
  188. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg +0 -0
  189. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg +0 -0
  190. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg +0 -0
  191. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg +0 -0
  192. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg +0 -0
  193. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg +0 -0
  194. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg +0 -0
  195. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg +0 -0
  196. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg +0 -0
  197. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg +0 -0
  198. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg +0 -0
  199. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg +0 -0
  200. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg +0 -0
  201. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg +0 -0
  202. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg +0 -0
  203. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg +0 -0
  204. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg +0 -0
  205. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg +0 -0
  206. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg +0 -0
  207. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg +0 -0
  208. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg +0 -0
  209. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg +0 -0
  210. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg +0 -0
  211. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg +0 -0
  212. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg +0 -0
  213. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg +0 -0
  214. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg +0 -0
  215. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg +0 -0
  216. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg +0 -0
  217. package/dist/cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml +0 -14
  218. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
  219. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
  220. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
  221. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
  222. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
  223. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
  224. package/dist/cesium/Assets/Textures/maki/airfield.png +0 -0
  225. package/dist/cesium/Assets/Textures/maki/airport.png +0 -0
  226. package/dist/cesium/Assets/Textures/maki/alcohol-shop.png +0 -0
  227. package/dist/cesium/Assets/Textures/maki/america-football.png +0 -0
  228. package/dist/cesium/Assets/Textures/maki/art-gallery.png +0 -0
  229. package/dist/cesium/Assets/Textures/maki/bakery.png +0 -0
  230. package/dist/cesium/Assets/Textures/maki/bank.png +0 -0
  231. package/dist/cesium/Assets/Textures/maki/bar.png +0 -0
  232. package/dist/cesium/Assets/Textures/maki/baseball.png +0 -0
  233. package/dist/cesium/Assets/Textures/maki/basketball.png +0 -0
  234. package/dist/cesium/Assets/Textures/maki/beer.png +0 -0
  235. package/dist/cesium/Assets/Textures/maki/bicycle.png +0 -0
  236. package/dist/cesium/Assets/Textures/maki/building.png +0 -0
  237. package/dist/cesium/Assets/Textures/maki/bus.png +0 -0
  238. package/dist/cesium/Assets/Textures/maki/cafe.png +0 -0
  239. package/dist/cesium/Assets/Textures/maki/camera.png +0 -0
  240. package/dist/cesium/Assets/Textures/maki/campsite.png +0 -0
  241. package/dist/cesium/Assets/Textures/maki/car.png +0 -0
  242. package/dist/cesium/Assets/Textures/maki/cemetery.png +0 -0
  243. package/dist/cesium/Assets/Textures/maki/cesium.png +0 -0
  244. package/dist/cesium/Assets/Textures/maki/chemist.png +0 -0
  245. package/dist/cesium/Assets/Textures/maki/cinema.png +0 -0
  246. package/dist/cesium/Assets/Textures/maki/circle-stroked.png +0 -0
  247. package/dist/cesium/Assets/Textures/maki/circle.png +0 -0
  248. package/dist/cesium/Assets/Textures/maki/city.png +0 -0
  249. package/dist/cesium/Assets/Textures/maki/clothing-store.png +0 -0
  250. package/dist/cesium/Assets/Textures/maki/college.png +0 -0
  251. package/dist/cesium/Assets/Textures/maki/commercial.png +0 -0
  252. package/dist/cesium/Assets/Textures/maki/cricket.png +0 -0
  253. package/dist/cesium/Assets/Textures/maki/cross.png +0 -0
  254. package/dist/cesium/Assets/Textures/maki/dam.png +0 -0
  255. package/dist/cesium/Assets/Textures/maki/danger.png +0 -0
  256. package/dist/cesium/Assets/Textures/maki/disability.png +0 -0
  257. package/dist/cesium/Assets/Textures/maki/dog-park.png +0 -0
  258. package/dist/cesium/Assets/Textures/maki/embassy.png +0 -0
  259. package/dist/cesium/Assets/Textures/maki/emergency-telephone.png +0 -0
  260. package/dist/cesium/Assets/Textures/maki/entrance.png +0 -0
  261. package/dist/cesium/Assets/Textures/maki/farm.png +0 -0
  262. package/dist/cesium/Assets/Textures/maki/fast-food.png +0 -0
  263. package/dist/cesium/Assets/Textures/maki/ferry.png +0 -0
  264. package/dist/cesium/Assets/Textures/maki/fire-station.png +0 -0
  265. package/dist/cesium/Assets/Textures/maki/fuel.png +0 -0
  266. package/dist/cesium/Assets/Textures/maki/garden.png +0 -0
  267. package/dist/cesium/Assets/Textures/maki/gift.png +0 -0
  268. package/dist/cesium/Assets/Textures/maki/golf.png +0 -0
  269. package/dist/cesium/Assets/Textures/maki/grocery.png +0 -0
  270. package/dist/cesium/Assets/Textures/maki/hairdresser.png +0 -0
  271. package/dist/cesium/Assets/Textures/maki/harbor.png +0 -0
  272. package/dist/cesium/Assets/Textures/maki/heart.png +0 -0
  273. package/dist/cesium/Assets/Textures/maki/heliport.png +0 -0
  274. package/dist/cesium/Assets/Textures/maki/hospital.png +0 -0
  275. package/dist/cesium/Assets/Textures/maki/ice-cream.png +0 -0
  276. package/dist/cesium/Assets/Textures/maki/industrial.png +0 -0
  277. package/dist/cesium/Assets/Textures/maki/land-use.png +0 -0
  278. package/dist/cesium/Assets/Textures/maki/laundry.png +0 -0
  279. package/dist/cesium/Assets/Textures/maki/library.png +0 -0
  280. package/dist/cesium/Assets/Textures/maki/lighthouse.png +0 -0
  281. package/dist/cesium/Assets/Textures/maki/lodging.png +0 -0
  282. package/dist/cesium/Assets/Textures/maki/logging.png +0 -0
  283. package/dist/cesium/Assets/Textures/maki/london-underground.png +0 -0
  284. package/dist/cesium/Assets/Textures/maki/marker-stroked.png +0 -0
  285. package/dist/cesium/Assets/Textures/maki/marker.png +0 -0
  286. package/dist/cesium/Assets/Textures/maki/minefield.png +0 -0
  287. package/dist/cesium/Assets/Textures/maki/mobilephone.png +0 -0
  288. package/dist/cesium/Assets/Textures/maki/monument.png +0 -0
  289. package/dist/cesium/Assets/Textures/maki/museum.png +0 -0
  290. package/dist/cesium/Assets/Textures/maki/music.png +0 -0
  291. package/dist/cesium/Assets/Textures/maki/oil-well.png +0 -0
  292. package/dist/cesium/Assets/Textures/maki/park.png +0 -0
  293. package/dist/cesium/Assets/Textures/maki/park2.png +0 -0
  294. package/dist/cesium/Assets/Textures/maki/parking-garage.png +0 -0
  295. package/dist/cesium/Assets/Textures/maki/parking.png +0 -0
  296. package/dist/cesium/Assets/Textures/maki/pharmacy.png +0 -0
  297. package/dist/cesium/Assets/Textures/maki/pitch.png +0 -0
  298. package/dist/cesium/Assets/Textures/maki/place-of-worship.png +0 -0
  299. package/dist/cesium/Assets/Textures/maki/playground.png +0 -0
  300. package/dist/cesium/Assets/Textures/maki/police.png +0 -0
  301. package/dist/cesium/Assets/Textures/maki/polling-place.png +0 -0
  302. package/dist/cesium/Assets/Textures/maki/post.png +0 -0
  303. package/dist/cesium/Assets/Textures/maki/prison.png +0 -0
  304. package/dist/cesium/Assets/Textures/maki/rail-above.png +0 -0
  305. package/dist/cesium/Assets/Textures/maki/rail-light.png +0 -0
  306. package/dist/cesium/Assets/Textures/maki/rail-metro.png +0 -0
  307. package/dist/cesium/Assets/Textures/maki/rail-underground.png +0 -0
  308. package/dist/cesium/Assets/Textures/maki/rail.png +0 -0
  309. package/dist/cesium/Assets/Textures/maki/religious-christian.png +0 -0
  310. package/dist/cesium/Assets/Textures/maki/religious-jewish.png +0 -0
  311. package/dist/cesium/Assets/Textures/maki/religious-muslim.png +0 -0
  312. package/dist/cesium/Assets/Textures/maki/restaurant.png +0 -0
  313. package/dist/cesium/Assets/Textures/maki/roadblock.png +0 -0
  314. package/dist/cesium/Assets/Textures/maki/rocket.png +0 -0
  315. package/dist/cesium/Assets/Textures/maki/school.png +0 -0
  316. package/dist/cesium/Assets/Textures/maki/scooter.png +0 -0
  317. package/dist/cesium/Assets/Textures/maki/shop.png +0 -0
  318. package/dist/cesium/Assets/Textures/maki/skiing.png +0 -0
  319. package/dist/cesium/Assets/Textures/maki/slaughterhouse.png +0 -0
  320. package/dist/cesium/Assets/Textures/maki/soccer.png +0 -0
  321. package/dist/cesium/Assets/Textures/maki/square-stroked.png +0 -0
  322. package/dist/cesium/Assets/Textures/maki/square.png +0 -0
  323. package/dist/cesium/Assets/Textures/maki/star-stroked.png +0 -0
  324. package/dist/cesium/Assets/Textures/maki/star.png +0 -0
  325. package/dist/cesium/Assets/Textures/maki/suitcase.png +0 -0
  326. package/dist/cesium/Assets/Textures/maki/swimming.png +0 -0
  327. package/dist/cesium/Assets/Textures/maki/telephone.png +0 -0
  328. package/dist/cesium/Assets/Textures/maki/tennis.png +0 -0
  329. package/dist/cesium/Assets/Textures/maki/theatre.png +0 -0
  330. package/dist/cesium/Assets/Textures/maki/toilets.png +0 -0
  331. package/dist/cesium/Assets/Textures/maki/town-hall.png +0 -0
  332. package/dist/cesium/Assets/Textures/maki/town.png +0 -0
  333. package/dist/cesium/Assets/Textures/maki/triangle-stroked.png +0 -0
  334. package/dist/cesium/Assets/Textures/maki/triangle.png +0 -0
  335. package/dist/cesium/Assets/Textures/maki/village.png +0 -0
  336. package/dist/cesium/Assets/Textures/maki/warehouse.png +0 -0
  337. package/dist/cesium/Assets/Textures/maki/waste-basket.png +0 -0
  338. package/dist/cesium/Assets/Textures/maki/water.png +0 -0
  339. package/dist/cesium/Assets/Textures/maki/wetland.png +0 -0
  340. package/dist/cesium/Assets/Textures/maki/zoo.png +0 -0
  341. package/dist/cesium/Assets/Textures/moonSmall.jpg +0 -0
  342. package/dist/cesium/Assets/Textures/pin.svg +0 -1
  343. package/dist/cesium/Assets/Textures/waterNormals.jpg +0 -0
  344. package/dist/cesium/Assets/Textures/waterNormalsSmall.jpg +0 -0
  345. package/dist/cesium/Assets/approximateTerrainHeights.json +0 -1
  346. package/dist/cesium/ThirdParty/Workers/package.json +0 -1
  347. package/dist/cesium/ThirdParty/Workers/pako_deflate.min.js +0 -1
  348. package/dist/cesium/ThirdParty/Workers/pako_inflate.min.js +0 -1
  349. package/dist/cesium/ThirdParty/Workers/z-worker-pako.js +0 -1
  350. package/dist/cesium/ThirdParty/basis_transcoder.wasm +0 -0
  351. package/dist/cesium/ThirdParty/draco_decoder.wasm +0 -0
  352. package/dist/cesium/ThirdParty/google-earth-dbroot-parser.js +0 -1
  353. package/dist/cesium/Widgets/Animation/Animation.css +0 -127
  354. package/dist/cesium/Widgets/Animation/lighter.css +0 -70
  355. package/dist/cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css +0 -108
  356. package/dist/cesium/Widgets/BaseLayerPicker/lighter.css +0 -22
  357. package/dist/cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css +0 -102
  358. package/dist/cesium/Widgets/CesiumInspector/CesiumInspector.css +0 -113
  359. package/dist/cesium/Widgets/CesiumWidget/CesiumWidget.css +0 -124
  360. package/dist/cesium/Widgets/CesiumWidget/lighter.css +0 -14
  361. package/dist/cesium/Widgets/FullscreenButton/FullscreenButton.css +0 -8
  362. package/dist/cesium/Widgets/Geocoder/Geocoder.css +0 -70
  363. package/dist/cesium/Widgets/Geocoder/lighter.css +0 -17
  364. package/dist/cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css +0 -27
  365. package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png +0 -0
  366. package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png +0 -0
  367. package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png +0 -0
  368. package/dist/cesium/Widgets/Images/ImageryProviders/bingAerial.png +0 -0
  369. package/dist/cesium/Widgets/Images/ImageryProviders/bingAerialLabels.png +0 -0
  370. package/dist/cesium/Widgets/Images/ImageryProviders/bingRoads.png +0 -0
  371. package/dist/cesium/Widgets/Images/ImageryProviders/blueMarble.png +0 -0
  372. package/dist/cesium/Widgets/Images/ImageryProviders/earthAtNight.png +0 -0
  373. package/dist/cesium/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png +0 -0
  374. package/dist/cesium/Widgets/Images/ImageryProviders/mapboxSatellite.png +0 -0
  375. package/dist/cesium/Widgets/Images/ImageryProviders/mapboxStreets.png +0 -0
  376. package/dist/cesium/Widgets/Images/ImageryProviders/mapboxTerrain.png +0 -0
  377. package/dist/cesium/Widgets/Images/ImageryProviders/naturalEarthII.png +0 -0
  378. package/dist/cesium/Widgets/Images/ImageryProviders/openStreetMap.png +0 -0
  379. package/dist/cesium/Widgets/Images/ImageryProviders/sentinel-2.png +0 -0
  380. package/dist/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png +0 -0
  381. package/dist/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png +0 -0
  382. package/dist/cesium/Widgets/Images/ImageryProviders/stamenToner.png +0 -0
  383. package/dist/cesium/Widgets/Images/ImageryProviders/stamenWatercolor.png +0 -0
  384. package/dist/cesium/Widgets/Images/NavigationHelp/Mouse.svg +0 -84
  385. package/dist/cesium/Widgets/Images/NavigationHelp/MouseLeft.svg +0 -76
  386. package/dist/cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg +0 -76
  387. package/dist/cesium/Widgets/Images/NavigationHelp/MouseRight.svg +0 -76
  388. package/dist/cesium/Widgets/Images/NavigationHelp/Touch.svg +0 -120
  389. package/dist/cesium/Widgets/Images/NavigationHelp/TouchDrag.svg +0 -129
  390. package/dist/cesium/Widgets/Images/NavigationHelp/TouchRotate.svg +0 -76
  391. package/dist/cesium/Widgets/Images/NavigationHelp/TouchTilt.svg +0 -135
  392. package/dist/cesium/Widgets/Images/NavigationHelp/TouchZoom.svg +0 -74
  393. package/dist/cesium/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png +0 -0
  394. package/dist/cesium/Widgets/Images/TerrainProviders/Ellipsoid.png +0 -0
  395. package/dist/cesium/Widgets/Images/TimelineIcons.png +0 -0
  396. package/dist/cesium/Widgets/Images/info-loading.gif +0 -0
  397. package/dist/cesium/Widgets/InfoBox/InfoBox.css +0 -92
  398. package/dist/cesium/Widgets/InfoBox/InfoBoxDescription.css +0 -178
  399. package/dist/cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css +0 -93
  400. package/dist/cesium/Widgets/NavigationHelpButton/lighter.css +0 -38
  401. package/dist/cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css +0 -15
  402. package/dist/cesium/Widgets/ProjectionPicker/ProjectionPicker.css +0 -38
  403. package/dist/cesium/Widgets/SceneModePicker/SceneModePicker.css +0 -56
  404. package/dist/cesium/Widgets/SelectionIndicator/SelectionIndicator.css +0 -20
  405. package/dist/cesium/Widgets/Timeline/Timeline.css +0 -103
  406. package/dist/cesium/Widgets/Timeline/lighter.css +0 -23
  407. package/dist/cesium/Widgets/VRButton/VRButton.css +0 -8
  408. package/dist/cesium/Widgets/Viewer/Viewer.css +0 -107
  409. package/dist/cesium/Widgets/VoxelInspector/VoxelInspector.css +0 -16
  410. package/dist/cesium/Widgets/lighter.css +0 -237
  411. package/dist/cesium/Widgets/lighterShared.css +0 -46
  412. package/dist/cesium/Widgets/shared.css +0 -103
  413. package/dist/cesium/Widgets/widgets.css +0 -1346
  414. package/dist/cesium/Workers/chunk-2YD5QWGR.js +0 -28
  415. package/dist/cesium/Workers/chunk-3T4KR75X.js +0 -26
  416. package/dist/cesium/Workers/chunk-46KFVW24.js +0 -26
  417. package/dist/cesium/Workers/chunk-4EI6PP43.js +0 -28
  418. package/dist/cesium/Workers/chunk-4RS52VIY.js +0 -26
  419. package/dist/cesium/Workers/chunk-4YLYA3DC.js +0 -26
  420. package/dist/cesium/Workers/chunk-5ENAGXBI.js +0 -26
  421. package/dist/cesium/Workers/chunk-5VIB3TI5.js +0 -26
  422. package/dist/cesium/Workers/chunk-6NGZLDFZ.js +0 -26
  423. package/dist/cesium/Workers/chunk-6RGNWVZ2.js +0 -27
  424. package/dist/cesium/Workers/chunk-7AZZVJ52.js +0 -26
  425. package/dist/cesium/Workers/chunk-AMXAQQEL.js +0 -26
  426. package/dist/cesium/Workers/chunk-AQW44ZPC.js +0 -26
  427. package/dist/cesium/Workers/chunk-CPCMDW6Z.js +0 -26
  428. package/dist/cesium/Workers/chunk-DNL2WDRL.js +0 -26
  429. package/dist/cesium/Workers/chunk-ERW7V247.js +0 -26
  430. package/dist/cesium/Workers/chunk-EYRIA4TP.js +0 -26
  431. package/dist/cesium/Workers/chunk-F7RQIJML.js +0 -26
  432. package/dist/cesium/Workers/chunk-FPZMU6QP.js +0 -26
  433. package/dist/cesium/Workers/chunk-FZDVQW7A.js +0 -26
  434. package/dist/cesium/Workers/chunk-GAZ2U4FO.js +0 -26
  435. package/dist/cesium/Workers/chunk-I44IOOT4.js +0 -26
  436. package/dist/cesium/Workers/chunk-IALXUAD4.js +0 -26
  437. package/dist/cesium/Workers/chunk-IXBUEUZL.js +0 -26
  438. package/dist/cesium/Workers/chunk-J3GCYV5K.js +0 -26
  439. package/dist/cesium/Workers/chunk-KGSZTFHZ.js +0 -26
  440. package/dist/cesium/Workers/chunk-KKKPU2CI.js +0 -26
  441. package/dist/cesium/Workers/chunk-KTEJE5KE.js +0 -26
  442. package/dist/cesium/Workers/chunk-KYZ3DYY6.js +0 -26
  443. package/dist/cesium/Workers/chunk-L2QG4MRI.js +0 -26
  444. package/dist/cesium/Workers/chunk-MCE3KFYN.js +0 -26
  445. package/dist/cesium/Workers/chunk-MMLDGXML.js +0 -26
  446. package/dist/cesium/Workers/chunk-MTBRPBDQ.js +0 -26
  447. package/dist/cesium/Workers/chunk-OKT6VBRK.js +0 -26
  448. package/dist/cesium/Workers/chunk-PHYDKLSY.js +0 -26
  449. package/dist/cesium/Workers/chunk-PWPX3224.js +0 -26
  450. package/dist/cesium/Workers/chunk-QHOVE6WG.js +0 -26
  451. package/dist/cesium/Workers/chunk-QJ6MBL22.js +0 -26
  452. package/dist/cesium/Workers/chunk-QKO6VIG2.js +0 -26
  453. package/dist/cesium/Workers/chunk-QVEE4QL2.js +0 -26
  454. package/dist/cesium/Workers/chunk-RXQOQZ7S.js +0 -26
  455. package/dist/cesium/Workers/chunk-S3ZKQKMM.js +0 -26
  456. package/dist/cesium/Workers/chunk-SFEUMZSK.js +0 -26
  457. package/dist/cesium/Workers/chunk-T75MW4X3.js +0 -26
  458. package/dist/cesium/Workers/chunk-TVO2A75R.js +0 -66
  459. package/dist/cesium/Workers/chunk-UHR36K45.js +0 -27
  460. package/dist/cesium/Workers/chunk-UKJCDZOR.js +0 -26
  461. package/dist/cesium/Workers/chunk-VKVIYER6.js +0 -26
  462. package/dist/cesium/Workers/chunk-VPIQWTRZ.js +0 -26
  463. package/dist/cesium/Workers/chunk-XSX5HRFC.js +0 -26
  464. package/dist/cesium/Workers/chunk-Z5WQQHSL.js +0 -26
  465. package/dist/cesium/Workers/chunk-Z7B2VEL5.js +0 -26
  466. package/dist/cesium/Workers/combineGeometry.js +0 -26
  467. package/dist/cesium/Workers/createBoxGeometry.js +0 -26
  468. package/dist/cesium/Workers/createBoxOutlineGeometry.js +0 -26
  469. package/dist/cesium/Workers/createCircleGeometry.js +0 -26
  470. package/dist/cesium/Workers/createCircleOutlineGeometry.js +0 -26
  471. package/dist/cesium/Workers/createCoplanarPolygonGeometry.js +0 -26
  472. package/dist/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +0 -26
  473. package/dist/cesium/Workers/createCorridorGeometry.js +0 -26
  474. package/dist/cesium/Workers/createCorridorOutlineGeometry.js +0 -26
  475. package/dist/cesium/Workers/createCylinderGeometry.js +0 -26
  476. package/dist/cesium/Workers/createCylinderOutlineGeometry.js +0 -26
  477. package/dist/cesium/Workers/createEllipseGeometry.js +0 -26
  478. package/dist/cesium/Workers/createEllipseOutlineGeometry.js +0 -26
  479. package/dist/cesium/Workers/createEllipsoidGeometry.js +0 -26
  480. package/dist/cesium/Workers/createEllipsoidOutlineGeometry.js +0 -26
  481. package/dist/cesium/Workers/createFrustumGeometry.js +0 -26
  482. package/dist/cesium/Workers/createFrustumOutlineGeometry.js +0 -26
  483. package/dist/cesium/Workers/createGeometry.js +0 -26
  484. package/dist/cesium/Workers/createGroundPolylineGeometry.js +0 -26
  485. package/dist/cesium/Workers/createPlaneGeometry.js +0 -26
  486. package/dist/cesium/Workers/createPlaneOutlineGeometry.js +0 -26
  487. package/dist/cesium/Workers/createPolygonGeometry.js +0 -26
  488. package/dist/cesium/Workers/createPolygonOutlineGeometry.js +0 -26
  489. package/dist/cesium/Workers/createPolylineGeometry.js +0 -26
  490. package/dist/cesium/Workers/createPolylineVolumeGeometry.js +0 -26
  491. package/dist/cesium/Workers/createPolylineVolumeOutlineGeometry.js +0 -26
  492. package/dist/cesium/Workers/createRectangleGeometry.js +0 -26
  493. package/dist/cesium/Workers/createRectangleOutlineGeometry.js +0 -26
  494. package/dist/cesium/Workers/createSimplePolylineGeometry.js +0 -26
  495. package/dist/cesium/Workers/createSphereGeometry.js +0 -26
  496. package/dist/cesium/Workers/createSphereOutlineGeometry.js +0 -26
  497. package/dist/cesium/Workers/createTaskProcessorWorker.js +0 -26
  498. package/dist/cesium/Workers/createVectorTileClampedPolylines.js +0 -26
  499. package/dist/cesium/Workers/createVectorTileGeometries.js +0 -26
  500. package/dist/cesium/Workers/createVectorTilePoints.js +0 -26
  501. package/dist/cesium/Workers/createVectorTilePolygons.js +0 -26
  502. package/dist/cesium/Workers/createVectorTilePolylines.js +0 -26
  503. package/dist/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +0 -26
  504. package/dist/cesium/Workers/createVerticesFromHeightmap.js +0 -26
  505. package/dist/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +0 -26
  506. package/dist/cesium/Workers/createWallGeometry.js +0 -26
  507. package/dist/cesium/Workers/createWallOutlineGeometry.js +0 -26
  508. package/dist/cesium/Workers/decodeDraco.js +0 -26
  509. package/dist/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +0 -26
  510. package/dist/cesium/Workers/decodeI3S.js +0 -26
  511. package/dist/cesium/Workers/transcodeKTX2.js +0 -56
  512. package/dist/cesium/Workers/transferTypedArrayTest.js +0 -26
  513. package/dist/cesium/Workers/upsampleQuantizedTerrainMesh.js +0 -26
  514. package/src/engines/Cesium/core/Globe.tsx +0 -104
  515. /package/src/{Visualizer → shared}/featureFlags.ts +0 -0
  516. /package/src/{Map/Sketch/utils.ts → utils/use-window-event.ts} +0 -0
@@ -1,7 +1,6 @@
1
1
  import { WebMercatorTilingScheme } from "@cesium/engine";
2
2
  import {
3
3
  ImageryProvider,
4
- ArcGisMapServerImageryProvider,
5
4
  IonImageryProvider,
6
5
  OpenStreetMapImageryProvider,
7
6
  IonWorldImageryStyle,
@@ -11,54 +10,91 @@ import {
11
10
 
12
11
  import { JapanGSIOptimalBVmapLabelImageryProvider } from "./labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapLabelImageryProvider";
13
12
 
13
+ const PRESET_TILE_TYPES = [
14
+ // Dynamic Cesium Ion asset — asset ID supplied per-tile via cesiumIonAssetId field
15
+ "cesium_ion",
16
+
17
+ // Public presets — always available, no auth required
18
+ "open_street_map",
19
+ "japan_gsi_standard",
20
+ "stamen_watercolor",
21
+ "carto_light",
22
+ "url",
23
+
24
+ // Cesium Ion presets — require user-provided Ion token (scene.default.ion)
25
+ "cesium_ion_default",
26
+ "cesium_ion_labelled",
27
+ "cesium_ion_road",
28
+ "cesium_ion_earth_at_night",
29
+
30
+ // Legacy aliases — kept for backward compatibility with existing apps
31
+ "default", // → cesium_ion_default
32
+ "default_road", // → cesium_ion_road
33
+ "default_label", // → cesium_ion_labelled
34
+ "black_marble", // → cesium_ion_earth_at_night
35
+ ];
36
+
37
+ export type PresetTileType = (typeof PRESET_TILE_TYPES)[number];
38
+
39
+ export const isValidPresetTileType = (type: string | undefined): type is PresetTileType => {
40
+ return PRESET_TILE_TYPES.includes(type as PresetTileType);
41
+ };
42
+
43
+ export type TileOptions = {
44
+ url?: string;
45
+ cesiumIonAccessToken?: string;
46
+ cesiumIonAssetId?: number | string;
47
+ heatmap?: boolean;
48
+ tile_zoomLevel?: number[];
49
+ };
50
+
14
51
  export const tiles = {
15
- default: ({ cesiumIonAccessToken } = {}) =>
16
- IonImageryProvider.fromAssetId(IonWorldImageryStyle.AERIAL, {
17
- accessToken: cesiumIonAccessToken,
18
- }).catch(console.error),
19
- default_label: ({ cesiumIonAccessToken } = {}) =>
20
- IonImageryProvider.fromAssetId(IonWorldImageryStyle.AERIAL_WITH_LABELS, {
21
- accessToken: cesiumIonAccessToken,
22
- }).catch(console.error),
23
- default_road: ({ cesiumIonAccessToken } = {}) =>
24
- IonImageryProvider.fromAssetId(IonWorldImageryStyle.ROAD, {
25
- accessToken: cesiumIonAccessToken,
26
- }).catch(console.error),
27
- stamen_watercolor: () =>
28
- new OpenStreetMapImageryProvider({
29
- url: "https://stamen-tiles.a.ssl.fastly.net/watercolor/",
30
- credit: "Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA.",
31
- fileExtension: "jpg",
32
- }),
33
- stamen_toner: () =>
34
- new OpenStreetMapImageryProvider({
35
- url: "https://stamen-tiles.a.ssl.fastly.net/toner/",
36
- credit: "Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA.",
37
- }),
52
+ // --- Dynamic Cesium Ion asset ---
53
+ // Uses per-tile cesiumIonAssetId; requires cesiumIonAccessToken.
54
+ cesium_ion: (opts?: TileOptions) => {
55
+ if (!opts?.cesiumIonAssetId) return null;
56
+ const NumberAssetId = parseInt(String(opts.cesiumIonAssetId), 10);
57
+ if (isNaN(NumberAssetId)) {
58
+ console.warn(`Invalid cesiumIonAssetId: ${opts.cesiumIonAssetId}`);
59
+ return null;
60
+ }
61
+ return IonImageryProvider.fromAssetId(NumberAssetId, {
62
+ accessToken: opts?.cesiumIonAccessToken,
63
+ }).catch(err => {
64
+ console.error(err);
65
+ return undefined as unknown as ImageryProvider;
66
+ });
67
+ },
68
+
69
+ // --- Public presets ---
38
70
  open_street_map: () =>
39
71
  new OpenStreetMapImageryProvider({
40
- url: "https://a.tile.openstreetmap.org/",
41
- credit:
42
- "Copyright: Tiles © Esri — Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012",
72
+ url: "https://tile.openstreetmap.org",
73
+ credit: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',
43
74
  }),
44
- esri_world_topo: () =>
45
- ArcGisMapServerImageryProvider.fromUrl(
46
- "https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer",
47
- {
48
- credit:
49
- "Copyright: Tiles © Esri — Esri, DeLorme, NAVTEQ, TomTom, Intermap, iPC, USGS, FAO, NPS, NRCAN, GeoBase, Kadaster NL, Ordnance Survey, Esri Japan, METI, Esri China (Hong Kong), and the GIS User Communit",
50
- enablePickFeatures: false,
51
- },
52
- ).catch(console.error),
53
- black_marble: ({ cesiumIonAccessToken } = {}) =>
54
- IonImageryProvider.fromAssetId(3812, { accessToken: cesiumIonAccessToken }).catch(
55
- console.error,
56
- ),
75
+
57
76
  japan_gsi_standard: () =>
58
77
  new OpenStreetMapImageryProvider({
59
78
  url: "https://cyberjapandata.gsi.go.jp/xyz/std/",
79
+ credit:
80
+ "<a href='https://maps.gsi.go.jp/development/ichiran.html'>国土地理院</a>, Shoreline data is derived from: United States. National Imagery and Mapping Agency. \"Vector Map Level 0 (VMAP0).\" Bethesda, MD: Denver, CO: The Agency; USGS Information Services, 1997.",
81
+ }),
82
+
83
+ stamen_watercolor: () =>
84
+ new UrlTemplateImageryProvider({
85
+ url: "https://watercolormaps.collection.cooperhewitt.org/tile/watercolor/{z}/{x}/{y}.jpg",
86
+ credit: "Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under ODbL.",
87
+ maximumLevel: 16,
88
+ }),
89
+
90
+ carto_light: () =>
91
+ new UrlTemplateImageryProvider({
92
+ url: "https://a.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png",
93
+ credit:
94
+ "© <a href='https://www.openstreetmap.org/copyright'>OpenStreetMap</a> contributors, © <a href='https://carto.com/attributions'>CARTO</a>",
60
95
  }),
61
- url: ({ url, heatmap, tile_zoomLevel } = {}) =>
96
+
97
+ url: ({ url, heatmap, tile_zoomLevel }: TileOptions = {}) =>
62
98
  url
63
99
  ? new UrlTemplateImageryProvider({
64
100
  url,
@@ -67,15 +103,53 @@ export const tiles = {
67
103
  maximumLevel: tile_zoomLevel?.[1],
68
104
  })
69
105
  : null,
70
- } as {
71
- [key: string]: (opts?: {
72
- url?: string;
73
- cesiumIonAccessToken?: string;
74
- heatmap?: boolean;
75
- tile_zoomLevel?: number[];
76
- }) => Promise<ImageryProvider> | ImageryProvider | null;
106
+
107
+ // --- Cesium Ion presets ---
108
+ // Require the user to configure a Cesium Ion access token in their scene (scene.default.ion).
109
+ cesium_ion_default: (opts?: TileOptions) =>
110
+ IonImageryProvider.fromAssetId(IonWorldImageryStyle.AERIAL, {
111
+ accessToken: opts?.cesiumIonAccessToken,
112
+ }).catch(err => {
113
+ console.error(err);
114
+ return undefined as unknown as ImageryProvider;
115
+ }),
116
+
117
+ cesium_ion_labelled: (opts?: TileOptions) =>
118
+ IonImageryProvider.fromAssetId(IonWorldImageryStyle.AERIAL_WITH_LABELS, {
119
+ accessToken: opts?.cesiumIonAccessToken,
120
+ }).catch(err => {
121
+ console.error(err);
122
+ return undefined as unknown as ImageryProvider;
123
+ }),
124
+
125
+ cesium_ion_road: (opts?: TileOptions) =>
126
+ IonImageryProvider.fromAssetId(IonWorldImageryStyle.ROAD, {
127
+ accessToken: opts?.cesiumIonAccessToken,
128
+ }).catch(err => {
129
+ console.error(err);
130
+ return undefined as unknown as ImageryProvider;
131
+ }),
132
+
133
+ cesium_ion_earth_at_night: (opts?: TileOptions) =>
134
+ IonImageryProvider.fromAssetId(3812, {
135
+ accessToken: opts?.cesiumIonAccessToken,
136
+ }).catch(err => {
137
+ console.error(err);
138
+ return undefined as unknown as ImageryProvider;
139
+ }),
140
+ // --- Legacy aliases ---
141
+ } as any as {
142
+ [K in PresetTileType]: (opts?: TileOptions) => Promise<ImageryProvider> | ImageryProvider | null;
77
143
  };
78
144
 
145
+ // Populate legacy aliases after object literal to allow forward references.
146
+ Object.assign(tiles, {
147
+ default: tiles.cesium_ion_default,
148
+ default_road: tiles.cesium_ion_road,
149
+ default_label: tiles.cesium_ion_labelled,
150
+ black_marble: tiles.cesium_ion_earth_at_night,
151
+ });
152
+
79
153
  export const labelTiles = {
80
154
  japan_gsi_optimal_bvmap: (params: {
81
155
  url: string;
@@ -0,0 +1,55 @@
1
+ import { Cartesian3, Entity, JulianDate, PolygonHierarchy } from "cesium";
2
+
3
+ import { Geometry } from "../../../mantle";
4
+
5
+ export function getMarkerCoordinates(
6
+ entity: Entity,
7
+ currentTime: JulianDate,
8
+ ): [number, number, number] {
9
+ const position = entity.position?.getValue(currentTime) as Cartesian3 | undefined;
10
+ return [position?.x ?? 0, position?.y ?? 0, position?.z ?? 0];
11
+ }
12
+
13
+ export function getGeometryFromEntity(currentTime: JulianDate, entity: Entity) {
14
+ if (entity.point || entity.billboard || entity.label) {
15
+ const coordinates = getMarkerCoordinates(entity, currentTime);
16
+
17
+ const geometry: Geometry = {
18
+ type: "Point",
19
+ coordinates,
20
+ };
21
+ return geometry;
22
+ }
23
+
24
+ if (entity.polyline) {
25
+ const positions = entity.polyline?.positions?.getValue(currentTime) as Cartesian3[];
26
+ const coordinates = positions?.map(position => [
27
+ position?.x ?? 0,
28
+ position?.y ?? 0,
29
+ position?.z ?? 0,
30
+ ]);
31
+
32
+ const geometry: Geometry = {
33
+ type: "LineString",
34
+ coordinates,
35
+ };
36
+ return geometry;
37
+ }
38
+
39
+ if (entity.polygon) {
40
+ const hierarchy = entity.polygon?.hierarchy?.getValue(currentTime) as PolygonHierarchy;
41
+ const coordinates = hierarchy?.positions?.map(position => [
42
+ position?.x ?? 0,
43
+ position?.y ?? 0,
44
+ position?.z ?? 0,
45
+ ]);
46
+
47
+ const geometry: Geometry = {
48
+ type: "Polygon",
49
+ coordinates: [coordinates],
50
+ };
51
+ return geometry;
52
+ }
53
+
54
+ return undefined;
55
+ }
@@ -7,7 +7,7 @@ import { useCustomCompareCallback } from "use-custom-compare";
7
7
 
8
8
  import { EngineRef, ViewerProperty } from "../..";
9
9
  import { Camera } from "../../../mantle";
10
- import { FEATURE_FLAGS } from "../../../Visualizer";
10
+ import { FEATURE_FLAGS } from "../../../shared/featureFlags";
11
11
  import { getCamera } from "../common";
12
12
 
13
13
  import { useCameraLimiter } from "./useCameraLimiter";
@@ -21,7 +21,7 @@ export default ({
21
21
  cameraForceHorizontalRoll = false,
22
22
  onCameraChange,
23
23
  }: {
24
- cesium: RefObject<CesiumComponentRef<Viewer>>;
24
+ cesium: RefObject<CesiumComponentRef<Viewer> | null>;
25
25
  property?: ViewerProperty;
26
26
  engineAPI: EngineRef;
27
27
  featureFlags: number;
@@ -20,7 +20,7 @@ const targetWidth = 1000000;
20
20
  const targetLength = 1000000;
21
21
 
22
22
  export function useCameraLimiter(
23
- cesium: RefObject<CesiumComponentRef<CesiumViewer>>,
23
+ cesium: RefObject<CesiumComponentRef<CesiumViewer> | null>,
24
24
  camera: Camera | undefined,
25
25
  property: CameraLimiterProperty | undefined,
26
26
  ) {
@@ -32,8 +32,10 @@ import {
32
32
  cartesianToLatLngHeight,
33
33
  getExtrudedHeight,
34
34
  getOverriddenScreenSpaceCameraOptions,
35
+ getCredits,
35
36
  } from "../common";
36
37
  import { attachTag, getTag } from "../Feature";
38
+ import { getGeometryFromEntity } from "../helpers/getGeometryFromEntity";
37
39
  import { PickedFeature, pickManyFromViewportAsFeature } from "../pickMany";
38
40
  import { createGeometry } from "../Sketch/createGeometry";
39
41
  import { CursorType } from "../types";
@@ -48,9 +50,9 @@ import {
48
50
 
49
51
  export default function useEngineRef(
50
52
  ref: Ref<EngineRef>,
51
- cesium: RefObject<CesiumComponentRef<Cesium.Viewer>>,
53
+ cesium: RefObject<CesiumComponentRef<Cesium.Viewer> | null>,
52
54
  ): EngineRef {
53
- const cancelCameraFlight = useRef<() => void>();
55
+ const cancelCameraFlight = useRef<() => void>(undefined);
54
56
  const mouseEventCallbacks = useRef<MouseEventCallbacks>({
55
57
  click: [],
56
58
  doubleClick: [],
@@ -107,7 +109,8 @@ export default function useEngineRef(
107
109
  if (
108
110
  calcViewSize &&
109
111
  cartesian &&
110
- viewer.scene.camera.frustum instanceof Cesium.PerspectiveFrustum
112
+ viewer.scene.camera.frustum instanceof Cesium.PerspectiveFrustum &&
113
+ viewer.scene.camera.frustum.fov !== undefined
111
114
  ) {
112
115
  const distance = Cesium.Cartesian3.distance(viewer.scene.camera.positionWC, cartesian);
113
116
  viewSize = distance * Math.tan(viewer.scene.camera.frustum.fov / 2);
@@ -169,10 +172,11 @@ export default function useEngineRef(
169
172
  toWindowPosition: (position: [x: number, y: number, z: number]) => {
170
173
  const viewer = cesium.current?.cesiumElement;
171
174
  if (!viewer || viewer.isDestroyed()) return;
172
- const result = Cesium.SceneTransforms.wgs84ToWindowCoordinates(
175
+ const result = Cesium.SceneTransforms.worldToWindowCoordinates(
173
176
  viewer.scene,
174
177
  Cesium.Cartesian3.fromElements(...position),
175
178
  );
179
+ if (!result) return;
176
180
  return [result.x, result.y];
177
181
  },
178
182
  // Calculate next positino from screen(window) offset.
@@ -259,15 +263,31 @@ export default function useEngineRef(
259
263
  }
260
264
  return;
261
265
  },
262
- getExtrudedHeight: (position, windowPosition) => {
266
+ getExtrudedHeight: (position, windowPosition, allowNegative) => {
263
267
  const viewer = cesium.current?.cesiumElement;
264
268
  if (!viewer || viewer.isDestroyed()) return;
265
269
  return getExtrudedHeight(
266
270
  viewer.scene,
267
271
  new Cesium.Cartesian3(position[0], position[1], position[2]),
268
272
  new Cesium.Cartesian2(windowPosition[0], windowPosition[1]),
273
+ allowNegative,
269
274
  );
270
275
  },
276
+ getExtrudedPoint: (position, extrudedHeight) => {
277
+ if (!position || !extrudedHeight) return;
278
+ const viewer = cesium.current?.cesiumElement;
279
+ if (!viewer || viewer.isDestroyed()) return;
280
+ const point = new Cesium.Cartesian3(position[0], position[1], position[2]);
281
+ const cartesianScratch = new Cesium.Cartesian3();
282
+ const normal = viewer.scene?.globe.ellipsoid.geodeticSurfaceNormal(point, cartesianScratch);
283
+ if (!normal) return;
284
+ const extrudedPoint = Cesium.Cartesian3.add(
285
+ point,
286
+ Cesium.Cartesian3.multiplyByScalar(normal, extrudedHeight, cartesianScratch),
287
+ cartesianScratch,
288
+ );
289
+ return [extrudedPoint.x, extrudedPoint.y, extrudedPoint.z];
290
+ },
271
291
  getSurfaceDistance: (point1, point2) => {
272
292
  const viewer = cesium.current?.cesiumElement;
273
293
  if (!viewer || viewer.isDestroyed()) return;
@@ -831,6 +851,7 @@ export default function useEngineRef(
831
851
  tag.computedFeature ?? {
832
852
  type: "computedFeature",
833
853
  id: tag.featureId,
854
+ geometry: getGeometryFromEntity(viewer.clock.currentTime, entity),
834
855
  properties: convertEntityProperties(viewer.clock.currentTime, entity),
835
856
  metaData: {
836
857
  description: convertEntityDescription(viewer.clock.currentTime, entity),
@@ -938,6 +959,32 @@ export default function useEngineRef(
938
959
  tickEventCallback.current = tickEventCallback.current.filter(c => c !== cb) || [];
939
960
  },
940
961
  tickEventCallback,
962
+ calcRectangleControlPoint: (p1: Position3d, p2: Position3d, p3: Position3d) => {
963
+ const pp1 = new Cesium.Cartesian3(...p1);
964
+ const pp2 = new Cesium.Cartesian3(...p2);
965
+ const pp3 = new Cesium.Cartesian3(...p3);
966
+ const cartesianScratch1 = new Cesium.Cartesian3();
967
+ const cartesianScratch2 = new Cesium.Cartesian3();
968
+ const projection = Cesium.Cartesian3.projectVector(
969
+ Cesium.Cartesian3.subtract(pp3, pp1, cartesianScratch1),
970
+ Cesium.Cartesian3.subtract(pp2, pp1, cartesianScratch2),
971
+ cartesianScratch1,
972
+ );
973
+ const offset = Cesium.Cartesian3.subtract(
974
+ pp3,
975
+ Cesium.Cartesian3.add(pp1, projection, cartesianScratch1),
976
+ cartesianScratch2,
977
+ );
978
+ const pp4 = Cesium.Cartesian3.midpoint(pp1, pp2, cartesianScratch1);
979
+ const pp5 = Cesium.Cartesian3.add(pp4, offset, cartesianScratch2);
980
+ const p5 = [pp5.x, pp5.y, pp5.z] as Position3d;
981
+ return [p1, p2, p5];
982
+ },
983
+ getCredits: () => {
984
+ const viewer = cesium.current?.cesiumElement;
985
+ if (!viewer || viewer.isDestroyed()) return;
986
+ return getCredits(viewer);
987
+ },
941
988
  };
942
989
  }, [cesium]);
943
990
 
@@ -12,7 +12,7 @@ export default ({
12
12
  shouldRender,
13
13
  property,
14
14
  }: {
15
- cesium: RefObject<CesiumComponentRef<Viewer>>;
15
+ cesium: RefObject<CesiumComponentRef<Viewer> | null>;
16
16
  requestingRenderMode?: MutableRefObject<RequestingRenderMode>;
17
17
  isLayerDragging?: boolean;
18
18
  shouldRender?: boolean;
@@ -28,7 +28,7 @@ export default ({
28
28
  }
29
29
  }, [cesium, requestingRenderMode]);
30
30
 
31
- const explicitRenderRef = useRef<() => void>();
31
+ const explicitRenderRef = useRef<() => void>(undefined);
32
32
 
33
33
  useEffect(() => {
34
34
  explicitRenderRef.current = explicitRender;
@@ -70,7 +70,7 @@ export function useInstance<T, Keys extends unknown[], Owner>(
70
70
  descriptor: InstanceDescriptor<T, () => DisallowPromise<T>, Keys, Owner>,
71
71
  ): T {
72
72
  const [state, setState] = useState<T>();
73
- const ref = useRef<T>();
73
+ const ref = useRef<T>(undefined);
74
74
  if (ref.current == null) {
75
75
  ref.current = descriptor.create();
76
76
  }
@@ -1,5 +1,5 @@
1
1
  import { Cartesian3, Entity, Viewer } from "cesium";
2
- import CesiumDnD, { Context } from "cesium-dnd";
2
+ import CesiumDnD, { type Context } from "cesium-dnd";
3
3
  import { RefObject, useCallback, useEffect, useRef } from "react";
4
4
  import { CesiumComponentRef } from "resium";
5
5
 
@@ -14,7 +14,7 @@ export default ({
14
14
  onLayerDrag,
15
15
  onLayerDrop,
16
16
  }: {
17
- cesium: RefObject<CesiumComponentRef<Viewer>>;
17
+ cesium: RefObject<CesiumComponentRef<Viewer> | null>;
18
18
  isLayerDraggable?: boolean;
19
19
  onLayerDrag?: (layerId: string, featureId: string | undefined, position: LatLng) => void;
20
20
  onLayerDrop?: (
@@ -54,7 +54,7 @@ export default ({
54
54
  [cesium, onLayerDrop],
55
55
  );
56
56
 
57
- const cesiumDnD = useRef<CesiumDnD>();
57
+ const cesiumDnD = useRef<Context>(undefined);
58
58
  useEffect(() => {
59
59
  const viewer = cesium.current?.cesiumElement;
60
60
  if (!viewer || viewer.isDestroyed()) return;
@@ -9,7 +9,7 @@ import {
9
9
  LayerSelectWithRectMove,
10
10
  LayerSelectWithRectStart,
11
11
  } from "../../../Map";
12
- import { INTERACTION_MODES } from "../../../Visualizer/interactionMode";
12
+ import { INTERACTION_MODES } from "../../../shared/interactionMode";
13
13
  import { makeMouseEventProps } from "../utils/mouse";
14
14
 
15
15
  export const useLayerSelectWithRect = ({
@@ -20,7 +20,7 @@ export const useLayerSelectWithRect = ({
20
20
  onLayerSelectWithRectMove,
21
21
  onLayerSelectWithRectEnd,
22
22
  }: {
23
- cesium: RefObject<CesiumComponentRef<Viewer>>;
23
+ cesium: RefObject<CesiumComponentRef<Viewer> | null>;
24
24
  engineAPI: EngineRef;
25
25
  featureFlags: number;
26
26
  onLayerSelectWithRectStart?: (e: LayerSelectWithRectStart) => void;