@reearth/core 0.0.7-alpha.5 → 0.0.7-beta.1

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 (169) hide show
  1. package/dist/cesium/ThirdParty/Workers/z-worker-pako.js +1 -1
  2. package/dist/cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css +8 -8
  3. package/dist/cesium/Widgets/widgets.css +8 -8
  4. package/dist/cesium/Workers/{chunk-SUQM3OSW.js → chunk-2YD5QWGR.js} +2 -2
  5. package/dist/cesium/Workers/{chunk-74N6MC2V.js → chunk-3T4KR75X.js} +2 -2
  6. package/dist/cesium/Workers/chunk-46KFVW24.js +26 -0
  7. package/dist/cesium/Workers/chunk-4EI6PP43.js +28 -0
  8. package/dist/cesium/Workers/{chunk-YEJWCH6C.js → chunk-4RS52VIY.js} +2 -2
  9. package/dist/cesium/Workers/{chunk-NPBZI5YA.js → chunk-4YLYA3DC.js} +1 -1
  10. package/dist/cesium/Workers/{chunk-JEWHFDAA.js → chunk-5ENAGXBI.js} +2 -2
  11. package/dist/cesium/Workers/{chunk-MRR3RGFO.js → chunk-5VIB3TI5.js} +2 -2
  12. package/dist/cesium/Workers/{chunk-JCJ24DHF.js → chunk-6NGZLDFZ.js} +2 -2
  13. package/dist/cesium/Workers/{chunk-7X2YQ6I4.js → chunk-6RGNWVZ2.js} +2 -2
  14. package/dist/cesium/Workers/{chunk-BK3HCS7I.js → chunk-7AZZVJ52.js} +2 -2
  15. package/dist/cesium/Workers/{chunk-UBIRX2SP.js → chunk-AMXAQQEL.js} +2 -2
  16. package/dist/cesium/Workers/{chunk-LDCAXLGS.js → chunk-AQW44ZPC.js} +2 -2
  17. package/dist/cesium/Workers/{chunk-B6TRTFAA.js → chunk-CPCMDW6Z.js} +2 -2
  18. package/dist/cesium/Workers/{chunk-3C74MLG3.js → chunk-DNL2WDRL.js} +1 -1
  19. package/dist/cesium/Workers/{chunk-FK5KFB6H.js → chunk-ERW7V247.js} +1 -1
  20. package/dist/cesium/Workers/{chunk-5AG2MVRM.js → chunk-EYRIA4TP.js} +2 -2
  21. package/dist/cesium/Workers/{chunk-6AUUBDOF.js → chunk-F7RQIJML.js} +2 -2
  22. package/dist/cesium/Workers/{chunk-JZLZJJQD.js → chunk-FPZMU6QP.js} +2 -2
  23. package/dist/cesium/Workers/{chunk-YBI55DLZ.js → chunk-FZDVQW7A.js} +2 -2
  24. package/dist/cesium/Workers/{chunk-2MBPFWCP.js → chunk-GAZ2U4FO.js} +2 -2
  25. package/dist/cesium/Workers/{chunk-CSISXEG7.js → chunk-I44IOOT4.js} +1 -1
  26. package/dist/cesium/Workers/{chunk-R2AN7EKC.js → chunk-IALXUAD4.js} +1 -1
  27. package/dist/cesium/Workers/{chunk-MDLPQIMP.js → chunk-IXBUEUZL.js} +2 -2
  28. package/dist/cesium/Workers/{chunk-HPBHKP5S.js → chunk-J3GCYV5K.js} +2 -2
  29. package/dist/cesium/Workers/{chunk-KRZBI2MU.js → chunk-KGSZTFHZ.js} +2 -2
  30. package/dist/cesium/Workers/{chunk-B2SKQ7LU.js → chunk-KKKPU2CI.js} +2 -2
  31. package/dist/cesium/Workers/{chunk-QPOPEH3M.js → chunk-KTEJE5KE.js} +2 -2
  32. package/dist/cesium/Workers/chunk-KYZ3DYY6.js +26 -0
  33. package/dist/cesium/Workers/{chunk-LOPN5R3I.js → chunk-L2QG4MRI.js} +2 -2
  34. package/dist/cesium/Workers/{chunk-EXBFEYPQ.js → chunk-MCE3KFYN.js} +2 -2
  35. package/dist/cesium/Workers/{chunk-C6DMEJQ7.js → chunk-MMLDGXML.js} +2 -2
  36. package/dist/cesium/Workers/{chunk-KTTUANTJ.js → chunk-MTBRPBDQ.js} +2 -2
  37. package/dist/cesium/Workers/{chunk-7VZHIB6P.js → chunk-OKT6VBRK.js} +2 -2
  38. package/dist/cesium/Workers/chunk-PHYDKLSY.js +26 -0
  39. package/dist/cesium/Workers/chunk-PWPX3224.js +26 -0
  40. package/dist/cesium/Workers/{chunk-VQZSIOZW.js → chunk-QHOVE6WG.js} +2 -2
  41. package/dist/cesium/Workers/{chunk-CN7UN2OZ.js → chunk-QJ6MBL22.js} +2 -2
  42. package/dist/cesium/Workers/{chunk-NUSW5B6A.js → chunk-QKO6VIG2.js} +2 -2
  43. package/dist/cesium/Workers/{chunk-4N7SRDH5.js → chunk-QVEE4QL2.js} +2 -2
  44. package/dist/cesium/Workers/{chunk-4T6AS6BZ.js → chunk-RXQOQZ7S.js} +2 -2
  45. package/dist/cesium/Workers/{chunk-RURL6ZX2.js → chunk-S3ZKQKMM.js} +2 -2
  46. package/dist/cesium/Workers/{chunk-ZYWD6OQH.js → chunk-SFEUMZSK.js} +2 -2
  47. package/dist/cesium/Workers/{chunk-BOPB43LN.js → chunk-T75MW4X3.js} +2 -2
  48. package/dist/cesium/Workers/chunk-TVO2A75R.js +66 -0
  49. package/dist/cesium/Workers/{chunk-VHNZBQTR.js → chunk-UHR36K45.js} +2 -2
  50. package/dist/cesium/Workers/{chunk-WZUWQMI7.js → chunk-UKJCDZOR.js} +2 -2
  51. package/dist/cesium/Workers/{chunk-B4TQDFIE.js → chunk-VKVIYER6.js} +2 -2
  52. package/dist/cesium/Workers/{chunk-OUXRUXNB.js → chunk-VPIQWTRZ.js} +2 -2
  53. package/dist/cesium/Workers/{chunk-2ED5WI77.js → chunk-XSX5HRFC.js} +2 -2
  54. package/dist/cesium/Workers/{chunk-5Z6L2FHX.js → chunk-Z5WQQHSL.js} +2 -2
  55. package/dist/cesium/Workers/{chunk-YPDO7SPO.js → chunk-Z7B2VEL5.js} +2 -2
  56. package/dist/cesium/Workers/combineGeometry.js +2 -2
  57. package/dist/cesium/Workers/createBoxGeometry.js +2 -2
  58. package/dist/cesium/Workers/createBoxOutlineGeometry.js +2 -2
  59. package/dist/cesium/Workers/createCircleGeometry.js +2 -2
  60. package/dist/cesium/Workers/createCircleOutlineGeometry.js +2 -2
  61. package/dist/cesium/Workers/createCoplanarPolygonGeometry.js +2 -2
  62. package/dist/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +2 -2
  63. package/dist/cesium/Workers/createCorridorGeometry.js +2 -2
  64. package/dist/cesium/Workers/createCorridorOutlineGeometry.js +2 -2
  65. package/dist/cesium/Workers/createCylinderGeometry.js +2 -2
  66. package/dist/cesium/Workers/createCylinderOutlineGeometry.js +2 -2
  67. package/dist/cesium/Workers/createEllipseGeometry.js +2 -2
  68. package/dist/cesium/Workers/createEllipseOutlineGeometry.js +2 -2
  69. package/dist/cesium/Workers/createEllipsoidGeometry.js +2 -2
  70. package/dist/cesium/Workers/createEllipsoidOutlineGeometry.js +2 -2
  71. package/dist/cesium/Workers/createFrustumGeometry.js +2 -2
  72. package/dist/cesium/Workers/createFrustumOutlineGeometry.js +2 -2
  73. package/dist/cesium/Workers/createGeometry.js +2 -2
  74. package/dist/cesium/Workers/createGroundPolylineGeometry.js +2 -2
  75. package/dist/cesium/Workers/createPlaneGeometry.js +2 -2
  76. package/dist/cesium/Workers/createPlaneOutlineGeometry.js +2 -2
  77. package/dist/cesium/Workers/createPolygonGeometry.js +2 -2
  78. package/dist/cesium/Workers/createPolygonOutlineGeometry.js +2 -2
  79. package/dist/cesium/Workers/createPolylineGeometry.js +2 -2
  80. package/dist/cesium/Workers/createPolylineVolumeGeometry.js +2 -2
  81. package/dist/cesium/Workers/createPolylineVolumeOutlineGeometry.js +2 -2
  82. package/dist/cesium/Workers/createRectangleGeometry.js +2 -2
  83. package/dist/cesium/Workers/createRectangleOutlineGeometry.js +2 -2
  84. package/dist/cesium/Workers/createSimplePolylineGeometry.js +2 -2
  85. package/dist/cesium/Workers/createSphereGeometry.js +2 -2
  86. package/dist/cesium/Workers/createSphereOutlineGeometry.js +2 -2
  87. package/dist/cesium/Workers/createTaskProcessorWorker.js +2 -2
  88. package/dist/cesium/Workers/createVectorTileClampedPolylines.js +2 -2
  89. package/dist/cesium/Workers/createVectorTileGeometries.js +2 -2
  90. package/dist/cesium/Workers/createVectorTilePoints.js +2 -2
  91. package/dist/cesium/Workers/createVectorTilePolygons.js +2 -2
  92. package/dist/cesium/Workers/createVectorTilePolylines.js +2 -2
  93. package/dist/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +2 -2
  94. package/dist/cesium/Workers/createVerticesFromHeightmap.js +2 -2
  95. package/dist/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +2 -2
  96. package/dist/cesium/Workers/createWallGeometry.js +2 -2
  97. package/dist/cesium/Workers/createWallOutlineGeometry.js +2 -2
  98. package/dist/cesium/Workers/decodeDraco.js +2 -2
  99. package/dist/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +2 -2
  100. package/dist/cesium/Workers/decodeI3S.js +2 -2
  101. package/dist/cesium/Workers/transcodeKTX2.js +10 -10
  102. package/dist/cesium/Workers/transferTypedArrayTest.js +1 -1
  103. package/dist/cesium/Workers/upsampleQuantizedTerrainMesh.js +2 -2
  104. package/dist/core.js +34193 -34105
  105. package/dist/core.umd.cjs +3866 -3820
  106. package/dist/index.d.ts +212 -217
  107. package/package.json +5 -5
  108. package/src/Map/ClusteredLayers/index.tsx +2 -2
  109. package/src/Map/Layer/index.tsx +3 -3
  110. package/src/Map/Layers/hooks.ts +0 -10
  111. package/src/Map/Layers/index.tsx +2 -2
  112. package/src/Map/Sketch/hooks.ts +66 -46
  113. package/src/Map/Sketch/index.tsx +24 -2
  114. package/src/Map/Sketch/preset.ts +0 -2
  115. package/src/Map/Sketch/types.ts +0 -31
  116. package/src/Map/hooks.ts +4 -0
  117. package/src/Map/index.tsx +5 -8
  118. package/src/Map/ref.ts +7 -4
  119. package/src/Map/types/index.ts +216 -34
  120. package/src/Map/useTimelineManager.ts +3 -5
  121. package/src/Map/utils.ts +43 -1
  122. package/src/Visualizer/coreContext.tsx +8 -1
  123. package/src/Visualizer/hooks.ts +75 -6
  124. package/src/Visualizer/index.stories.tsx +48 -4
  125. package/src/Visualizer/index.tsx +6 -8
  126. package/src/engines/Cesium/Feature/Ellipse/index.stories.tsx +1 -1
  127. package/src/engines/Cesium/Feature/Frustum/index.stories.tsx +1 -1
  128. package/src/engines/Cesium/Feature/Model/index.stories.tsx +1 -1
  129. package/src/engines/Cesium/Feature/Model/index.tsx +9 -10
  130. package/src/engines/Cesium/Feature/Polygon/index.stories.tsx +6 -8
  131. package/src/engines/Cesium/Feature/Raster/index.stories.tsx +2 -2
  132. package/src/engines/Cesium/Feature/Resource/index.stories.tsx +1 -1
  133. package/src/engines/Cesium/Feature/Tileset/hooks.ts +11 -12
  134. package/src/engines/Cesium/Feature/Tileset/index.stories.tsx +1 -1
  135. package/src/engines/Cesium/Feature/Tileset/index.tsx +4 -4
  136. package/src/engines/Cesium/Feature/Tileset/useClippingBox.ts +1 -10
  137. package/src/engines/Cesium/Feature/index.tsx +4 -5
  138. package/src/engines/Cesium/Feature/utils.tsx +2 -3
  139. package/src/engines/Cesium/Shaders/OverriddenShaders/GlobeFS/IBL.glsl +6 -10
  140. package/src/engines/Cesium/{hooks/useOverrideGlobeShader/VertexTerrainElevationMaterial.ts → VertexTerrainElevationMaterial.ts} +2 -3
  141. package/src/engines/Cesium/{hooks/useCameraLimiter.ts → cameraLimiter.ts} +45 -22
  142. package/src/engines/Cesium/core/Globe.tsx +68 -36
  143. package/src/engines/Cesium/core/Imagery.test.ts +9 -9
  144. package/src/engines/Cesium/core/Imagery.tsx +19 -17
  145. package/src/engines/Cesium/core/Indicator/Indicator.tsx +8 -8
  146. package/src/engines/Cesium/hooks.ts +365 -124
  147. package/src/engines/Cesium/index.stories.tsx +1 -1
  148. package/src/engines/Cesium/index.tsx +62 -60
  149. package/src/engines/Cesium/{hooks/useEngineRef.test.tsx → useEngineRef.test.tsx} +34 -38
  150. package/src/engines/Cesium/{hooks/useEngineRef.ts → useEngineRef.ts} +41 -43
  151. package/src/engines/Cesium/{hooks/useOverrideGlobeShader/useOverrideGlobeShader.ts → useOverrideGlobeShader.ts} +17 -20
  152. package/src/engines/index.ts +1 -1
  153. package/src/mantle/compat/types.ts +7 -7
  154. package/dist/cesium/Workers/chunk-45U7TTT3.js +0 -26
  155. package/dist/cesium/Workers/chunk-7VJK3KHI.js +0 -26
  156. package/dist/cesium/Workers/chunk-CUOR5F7T.js +0 -28
  157. package/dist/cesium/Workers/chunk-DGCK3LD2.js +0 -30
  158. package/dist/cesium/Workers/chunk-DXEZYE3K.js +0 -62
  159. package/dist/cesium/Workers/chunk-VAKC5J5C.js +0 -26
  160. package/dist/cesium/Workers/chunk-VKV642QV.js +0 -26
  161. package/dist/cesium/Workers/chunk-VMSXG4OA.js +0 -26
  162. package/src/Map/types/viewerProperty.ts +0 -215
  163. package/src/Visualizer/useCoreAPI.ts +0 -30
  164. package/src/engines/Cesium/hooks/useCamera.ts +0 -135
  165. package/src/engines/Cesium/hooks/useExplicitRender.ts +0 -65
  166. package/src/engines/Cesium/hooks/useLayerDragDrop.ts +0 -77
  167. package/src/engines/Cesium/hooks/useViewerProperty.ts +0 -90
  168. /package/src/engines/Cesium/{hooks/useOverrideGlobeShader/JapanSeaLevelEllipsoid.ts → JapanSeaLevelEllipsoid.ts} +0 -0
  169. /package/src/engines/Cesium/{hooks/useOverrideGlobeShader/vertexTerrainElevationMaterial.glsl → vertexTerrainElevationMaterial.glsl} +0 -0
@@ -5,15 +5,16 @@ import {
5
5
  IonResource,
6
6
  TerrainProvider,
7
7
  } from "cesium";
8
+ import { pick } from "lodash-es";
8
9
  import { useMemo } from "react";
9
10
  import { Globe as CesiumGlobe } from "resium";
10
11
 
11
- import type { ViewerProperty, TerrainProperty } from "../..";
12
- import { AssetsCesiumProperty } from "../../../Map";
12
+ import type { SceneProperty, TerrainProperty } from "../..";
13
+ import { objKeys } from "../../../utils";
13
14
  import { toColor } from "../common";
14
15
 
15
16
  export type Props = {
16
- property?: ViewerProperty;
17
+ property?: SceneProperty;
17
18
  cesiumIonAccessToken?: string;
18
19
  };
19
20
 
@@ -21,67 +22,93 @@ export default function Globe({ property, cesiumIonAccessToken }: Props): JSX.El
21
22
  const terrainProperty = useMemo(
22
23
  (): TerrainProperty => ({
23
24
  ...property?.terrain,
25
+ ...pick(property?.default, terrainPropertyKeys),
24
26
  }),
25
- [property?.terrain],
27
+ [property?.terrain, property?.default],
26
28
  );
27
29
 
28
30
  const terrainProvider = useMemo((): Promise<TerrainProvider> | TerrainProvider | undefined => {
29
31
  const opts = {
30
- terrain: terrainProperty?.enabled,
31
- terrainType: terrainProperty?.type,
32
- normal: terrainProperty?.normal,
33
- ionAccessToken: property?.assets?.cesium?.terrain?.ionAccessToken || cesiumIonAccessToken,
34
- ionAsset: property?.assets?.cesium?.terrain?.ionAsset,
35
- ionUrl: property?.assets?.cesium?.terrain?.ionUrl,
32
+ terrain: terrainProperty?.terrain,
33
+ terrainType: terrainProperty?.terrainType,
34
+ terrainNormal: terrainProperty?.terrainNormal,
35
+ terrainCesiumIonAccessToken:
36
+ terrainProperty?.terrainCesiumIonAccessToken || cesiumIonAccessToken,
37
+ terrainCesiumIonAsset: terrainProperty?.terrainCesiumIonAsset,
38
+ terrainCesiumIonUrl: terrainProperty?.terrainCesiumIonUrl,
36
39
  };
37
40
  const provider = opts.terrain ? terrainProviders[opts.terrainType || "cesium"] : undefined;
38
41
  return (typeof provider === "function" ? provider(opts) : provider) ?? defaultTerrainProvider;
39
42
  }, [
40
- terrainProperty?.enabled,
41
- terrainProperty?.type,
42
- terrainProperty?.normal,
43
- property?.assets?.cesium?.terrain?.ionAccessToken,
44
- property?.assets?.cesium?.terrain?.ionAsset,
45
- property?.assets?.cesium?.terrain?.ionUrl,
43
+ terrainProperty?.terrain,
44
+ terrainProperty?.terrainType,
45
+ terrainProperty?.terrainCesiumIonAccessToken,
46
+ terrainProperty?.terrainCesiumIonAsset,
47
+ terrainProperty?.terrainCesiumIonUrl,
48
+ terrainProperty?.terrainNormal,
46
49
  cesiumIonAccessToken,
47
50
  ]);
48
51
 
49
52
  const baseColor = useMemo(
50
- () => toColor(property?.globe?.baseColor),
51
- [property?.globe?.baseColor],
53
+ () => toColor(property?.atmosphere?.globeBaseColor),
54
+ [property?.atmosphere?.globeBaseColor],
52
55
  );
53
56
 
54
57
  return (
55
58
  <CesiumGlobe
56
59
  baseColor={baseColor}
57
- enableLighting={!!property?.globe?.enableLighting}
58
- showGroundAtmosphere={property?.globe?.atmosphere?.enabled ?? true}
59
- atmosphereLightIntensity={property?.globe?.atmosphere?.lightIntensity}
60
- atmosphereSaturationShift={property?.globe?.atmosphere?.saturationShift}
61
- atmosphereHueShift={property?.globe?.atmosphere?.hueShift}
62
- atmosphereBrightnessShift={property?.globe?.atmosphere?.brightnessShift}
60
+ enableLighting={
61
+ !!(property?.atmosphere?.enable_lighting ?? property?.globeLighting?.globeLighting)
62
+ }
63
+ showGroundAtmosphere={
64
+ property?.atmosphere?.ground_atmosphere ??
65
+ property?.globeAtmosphere?.globeAtmosphere ??
66
+ true
67
+ }
68
+ atmosphereLightIntensity={property?.globeAtmosphere?.globeAtmosphereIntensity}
69
+ atmosphereSaturationShift={property?.atmosphere?.surturation_shift}
70
+ atmosphereHueShift={property?.atmosphere?.hue_shift}
71
+ atmosphereBrightnessShift={property?.atmosphere?.brightness_shift}
63
72
  terrainProvider={terrainProvider}
64
- depthTestAgainstTerrain={!!property?.globe?.depthTestAgainstTerrain}
73
+ depthTestAgainstTerrain={!!terrainProperty.depthTestAgainstTerrain}
65
74
  />
66
75
  );
67
76
  }
68
77
 
78
+ const terrainPropertyKeys = objKeys<TerrainProperty>({
79
+ terrain: 0,
80
+ terrainType: 0,
81
+ terrainExaggeration: 0,
82
+ terrainExaggerationRelativeHeight: 0,
83
+ depthTestAgainstTerrain: 0,
84
+ terrainCesiumIonAsset: 0,
85
+ terrainCesiumIonAccessToken: 0,
86
+ terrainCesiumIonUrl: 0,
87
+ terrainUrl: 0,
88
+ });
89
+
69
90
  const defaultTerrainProvider = new EllipsoidTerrainProvider();
70
91
 
71
92
  const terrainProviders: {
72
- [k in NonNullable<TerrainProperty["type"]>]:
93
+ [k in NonNullable<TerrainProperty["terrainType"]>]:
73
94
  | TerrainProvider
74
95
  | ((
75
- opts: Pick<TerrainProperty, "normal"> & AssetsCesiumProperty["terrain"],
96
+ opts: Pick<
97
+ TerrainProperty,
98
+ | "terrainCesiumIonAccessToken"
99
+ | "terrainCesiumIonAsset"
100
+ | "terrainCesiumIonUrl"
101
+ | "terrainNormal"
102
+ >,
76
103
  ) => Promise<TerrainProvider> | TerrainProvider | null);
77
104
  } = {
78
- cesium: ({ ionAccessToken, normal }) =>
105
+ cesium: ({ terrainCesiumIonAccessToken, terrainNormal }) =>
79
106
  CesiumTerrainProvider.fromUrl(
80
107
  IonResource.fromAssetId(1, {
81
- accessToken: ionAccessToken,
108
+ accessToken: terrainCesiumIonAccessToken,
82
109
  }),
83
110
  {
84
- requestVertexNormals: normal,
111
+ requestVertexNormals: terrainNormal,
85
112
  requestWaterMask: false,
86
113
  },
87
114
  ),
@@ -89,15 +116,20 @@ const terrainProviders: {
89
116
  ArcGISTiledElevationTerrainProvider.fromUrl(
90
117
  "https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer",
91
118
  ),
92
- cesiumion: ({ ionAccessToken, ionAsset, ionUrl, normal }) =>
93
- ionAsset
119
+ cesiumion: ({
120
+ terrainCesiumIonAccessToken,
121
+ terrainCesiumIonAsset,
122
+ terrainCesiumIonUrl,
123
+ terrainNormal,
124
+ }) =>
125
+ terrainCesiumIonAsset
94
126
  ? CesiumTerrainProvider.fromUrl(
95
- ionUrl ||
96
- IonResource.fromAssetId(parseInt(ionAsset, 10), {
97
- accessToken: ionAccessToken,
127
+ terrainCesiumIonUrl ||
128
+ IonResource.fromAssetId(parseInt(terrainCesiumIonAsset, 10), {
129
+ accessToken: terrainCesiumIonAccessToken,
98
130
  }),
99
131
  {
100
- requestVertexNormals: normal,
132
+ requestVertexNormals: terrainNormal,
101
133
  },
102
134
  )
103
135
  : null,
@@ -14,7 +14,7 @@ test("useImageryProviders", () => {
14
14
  presets,
15
15
  cesiumIonAccessToken,
16
16
  }),
17
- { initialProps: { tiles: [{ id: "1", type: "default" }] } },
17
+ { initialProps: { tiles: [{ id: "1", tile_type: "default" }] } },
18
18
  );
19
19
 
20
20
  expect(result.current.providers).toEqual({ "1": ["default", undefined, { hoge: undefined }] });
@@ -23,14 +23,14 @@ test("useImageryProviders", () => {
23
23
  const prevImageryProvider = result.current.providers["1"][2];
24
24
 
25
25
  // re-render with same tiles
26
- rerender({ tiles: [{ id: "1", type: "default" }] });
26
+ rerender({ tiles: [{ id: "1", tile_type: "default" }] });
27
27
 
28
28
  expect(result.current.providers).toEqual({ "1": ["default", undefined, { hoge: undefined }] });
29
29
  expect(result.current.providers["1"][2]).toBe(prevImageryProvider); // 1's provider should be reused
30
30
  expect(provider).toBeCalledTimes(1);
31
31
 
32
32
  // update a tile URL
33
- rerender({ tiles: [{ id: "1", type: "default", url: "a" }] });
33
+ rerender({ tiles: [{ id: "1", tile_type: "default", tile_url: "a" }] });
34
34
 
35
35
  expect(result.current.providers).toEqual({ "1": ["default", "a", { hoge: "a" }] });
36
36
  expect(result.current.providers["1"][2]).not.toBe(prevImageryProvider);
@@ -42,8 +42,8 @@ test("useImageryProviders", () => {
42
42
  // add a tile with URL
43
43
  rerender({
44
44
  tiles: [
45
- { id: "2", type: "default" },
46
- { id: "1", type: "default", url: "a" },
45
+ { id: "2", tile_type: "default" },
46
+ { id: "1", tile_type: "default", tile_url: "a" },
47
47
  ],
48
48
  });
49
49
 
@@ -58,8 +58,8 @@ test("useImageryProviders", () => {
58
58
  // sort tiles
59
59
  rerender({
60
60
  tiles: [
61
- { id: "1", type: "default", url: "a" },
62
- { id: "2", type: "default" },
61
+ { id: "1", tile_type: "default", tile_url: "a" },
62
+ { id: "2", tile_type: "default" },
63
63
  ],
64
64
  });
65
65
 
@@ -73,7 +73,7 @@ test("useImageryProviders", () => {
73
73
 
74
74
  // delete a tile
75
75
  rerender({
76
- tiles: [{ id: "1", type: "default", url: "a" }],
76
+ tiles: [{ id: "1", tile_type: "default", tile_url: "a" }],
77
77
  cesiumIonAccessToken: "a",
78
78
  });
79
79
 
@@ -86,7 +86,7 @@ test("useImageryProviders", () => {
86
86
 
87
87
  // update a tile type
88
88
  rerender({
89
- tiles: [{ id: "1", type: "foobar", url: "u" }],
89
+ tiles: [{ id: "1", tile_type: "foobar", tile_url: "u" }],
90
90
  cesiumIonAccessToken: "a",
91
91
  });
92
92
 
@@ -20,11 +20,11 @@ export type ImageryLayerData = {
20
20
 
21
21
  export type Tile = {
22
22
  id: string;
23
- url?: string;
24
- type?: string;
25
- opacity?: number;
26
- zoomLevel?: number[];
27
- zoomLevelForURL?: number[];
23
+ tile_url?: string;
24
+ tile_type?: string;
25
+ tile_opacity?: number;
26
+ tile_zoomLevel?: number[];
27
+ tile_zoomLevelForURL?: number[];
28
28
  heatmap?: boolean;
29
29
  };
30
30
 
@@ -55,13 +55,13 @@ export default function ImageryLayers({ tiles, cesiumIonAccessToken }: Props) {
55
55
  id,
56
56
  provider: providers[id]?.[2],
57
57
  }))
58
- .map(({ id, opacity, zoomLevel, provider, heatmap }, i) =>
58
+ .map(({ id, tile_opacity: opacity, tile_zoomLevel, provider, heatmap }, i) =>
59
59
  provider ? (
60
60
  <ImageryLayer
61
61
  key={`${id}_${i}_${counter}`}
62
62
  imageryProvider={provider}
63
- minimumTerrainLevel={zoomLevel?.[0]}
64
- maximumTerrainLevel={zoomLevel?.[1]}
63
+ minimumTerrainLevel={tile_zoomLevel?.[0]}
64
+ maximumTerrainLevel={tile_zoomLevel?.[1]}
65
65
  alpha={opacity}
66
66
  index={i}
67
67
  colorToAlpha={heatmap ? Color.WHITE : undefined}
@@ -89,17 +89,17 @@ export function useImageryProviders({
89
89
  url?: string;
90
90
  cesiumIonAccessToken?: string;
91
91
  heatmap?: boolean;
92
- zoomLevel?: number[];
92
+ tile_zoomLevel?: number[];
93
93
  }) => Promise<ImageryProvider> | ImageryProvider | null;
94
94
  };
95
95
  }): { providers: Providers; updated: boolean } {
96
96
  const newTile = useCallback(
97
97
  (t: Tile, ciat?: string) =>
98
- presets[t.type || "default"]({
99
- url: t.url,
98
+ presets[t.tile_type || "default"]({
99
+ url: t.tile_url,
100
100
  cesiumIonAccessToken: ciat,
101
101
  heatmap: t.heatmap,
102
- zoomLevel: t.zoomLevelForURL,
102
+ tile_zoomLevel: t.tile_zoomLevelForURL,
103
103
  }),
104
104
  [presets],
105
105
  );
@@ -152,10 +152,10 @@ export function useImageryProviders({
152
152
  : [
153
153
  key,
154
154
  added ||
155
- prevType !== tile.type ||
156
- prevUrl !== tile.url ||
157
- (isCesiumAccessTokenUpdated && (!tile.type || tile.type === "default"))
158
- ? [tile.type, tile.url, newTile(tile, cesiumIonAccessToken)]
155
+ prevType !== tile.tile_type ||
156
+ prevUrl !== tile.tile_url ||
157
+ (isCesiumAccessTokenUpdated && (!tile.tile_type || tile.tile_type === "default"))
158
+ ? [tile.tile_type, tile.tile_url, newTile(tile, cesiumIonAccessToken)]
159
159
  : [prevType, prevUrl, prevProvider],
160
160
  ],
161
161
  )
@@ -169,7 +169,9 @@ export function useImageryProviders({
169
169
  !!added.length ||
170
170
  !!isCesiumAccessTokenUpdated ||
171
171
  !isEqual(prevTileKeys.current, tileKeys) ||
172
- rawProviders.some(p => p.tile && (p.prevType !== p.tile.type || p.prevUrl !== p.tile.url));
172
+ rawProviders.some(
173
+ p => p.tile && (p.prevType !== p.tile.tile_type || p.prevUrl !== p.tile.tile_url),
174
+ );
173
175
 
174
176
  prevTileKeys.current = tileKeys;
175
177
  prevCesiumIonAccessToken.current = cesiumIonAccessToken;
@@ -4,7 +4,7 @@ import { BoundingSphere, Cartesian3, SceneTransforms, Cartesian2, JulianDate } f
4
4
  import { useEffect, useState } from "react";
5
5
  import { useCesium } from "resium";
6
6
 
7
- import type { ViewerProperty } from "../../..";
7
+ import type { SceneProperty } from "../../..";
8
8
  import { TimelineManagerRef } from "../../../../Map/useTimelineManager";
9
9
  import { useIcon } from "../../common";
10
10
 
@@ -12,7 +12,7 @@ import Crosshair from "./crosshair.svg?react";
12
12
 
13
13
  export type Props = {
14
14
  className?: string;
15
- property?: ViewerProperty;
15
+ property?: SceneProperty;
16
16
  timelineManagerRef?: TimelineManagerRef;
17
17
  };
18
18
 
@@ -29,17 +29,17 @@ export default function Indicator({
29
29
  mountOnEnter: true,
30
30
  unmountOnExit: true,
31
31
  });
32
- const { type, image, imageScale } = property?.indicator ?? {};
33
- const [img, w, h] = useIcon({ image: image, imageSize: imageScale });
32
+ const { indicator_type, indicator_image, indicator_image_scale } = property?.indicator ?? {};
33
+ const [img, w, h] = useIcon({ image: indicator_image, imageSize: indicator_image_scale });
34
34
 
35
35
  useEffect(() => {
36
- !(!type || type === "default")
36
+ !(!indicator_type || indicator_type === "default")
37
37
  ? viewer?.selectionIndicator.viewModel.selectionIndicatorElement.setAttribute(
38
38
  "hidden",
39
39
  "true",
40
40
  )
41
41
  : viewer?.selectionIndicator.viewModel.selectionIndicatorElement.removeAttribute("hidden");
42
- }, [type, viewer, viewer?.selectionIndicator]);
42
+ }, [indicator_type, viewer, viewer?.selectionIndicator]);
43
43
 
44
44
  useEffect(() => {
45
45
  if (!viewer) return;
@@ -90,7 +90,7 @@ export default function Indicator({
90
90
  }, [viewer, timelineManagerRef]);
91
91
 
92
92
  return transition !== "unmounted" && pos ? (
93
- type === "crosshair" ? (
93
+ indicator_type === "crosshair" ? (
94
94
  <div
95
95
  className={className}
96
96
  style={{
@@ -109,7 +109,7 @@ export default function Indicator({
109
109
  }}>
110
110
  <Crosshair />
111
111
  </div>
112
- ) : type === "custom" ? (
112
+ ) : indicator_type === "custom" ? (
113
113
  <img
114
114
  src={img}
115
115
  width={w}