@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.
- package/LICENSE +177 -0
- package/dist/core.js +71433 -61051
- package/dist/core.umd.cjs +666 -680
- package/dist/{index-DqatWUTw.js → index-CUJ6HGQn.js} +1021 -908
- package/dist/index.d.ts +195 -73
- package/package.json +88 -74
- package/src/Map/ClusteredLayers/index.tsx +1 -1
- package/src/Map/Geoid/index.tsx +68 -0
- package/src/Map/Geoid/types.ts +8 -0
- package/src/Map/Layer/hooks.ts +7 -4
- package/src/Map/Layer/index.tsx +3 -1
- package/src/Map/Layers/hooks.ts +45 -12
- package/src/Map/Layers/index.tsx +13 -2
- package/src/Map/Layers/keys.ts +1 -0
- package/src/Map/Sketch/hooks.ts +454 -411
- package/src/Map/Sketch/index.tsx +68 -21
- package/src/Map/Sketch/sketchMachine.ts +640 -237
- package/src/Map/Sketch/sketchMachine.typegen.ts +58 -1
- package/src/Map/Sketch/types.ts +10 -20
- package/src/Map/Sketch/usePluginSketchLayer.ts +105 -0
- package/src/Map/Sketch/useSketch.ts +558 -0
- package/src/Map/Sketch/useSketchFeature.ts +198 -0
- package/src/Map/SpatialId/constants.ts +21 -0
- package/src/Map/SpatialId/hooks.ts +448 -0
- package/src/Map/SpatialId/index.tsx +63 -0
- package/src/Map/SpatialId/types.ts +68 -0
- package/src/Map/SpatialId/utils.ts +65 -0
- package/src/Map/hooks.ts +54 -8
- package/src/Map/index.tsx +42 -9
- package/src/Map/ref.ts +32 -3
- package/src/Map/types/customProvider.ts +32 -0
- package/src/Map/types/index.ts +42 -3
- package/src/Map/types/viewerProperty.ts +12 -1
- package/src/Map/useTimelineManager.ts +4 -10
- package/src/Map/utils.ts +1 -1
- package/src/Visualizer/Error.tsx +4 -1
- package/src/Visualizer/context.tsx +5 -5
- package/src/Visualizer/coreContext.tsx +3 -1
- package/src/Visualizer/hooks.ts +56 -22
- package/src/Visualizer/index.stories.tsx +15 -0
- package/src/Visualizer/index.tsx +29 -6
- package/src/Visualizer/useViewport.ts +1 -1
- package/src/engines/Cesium/Feature/Box/hooks/box.ts +4 -4
- package/src/engines/Cesium/Feature/Box/hooks/edge.ts +1 -1
- package/src/engines/Cesium/Feature/Box/hooks/side.ts +1 -1
- package/src/engines/Cesium/Feature/Box/utils.ts +6 -0
- package/src/engines/Cesium/Feature/Ellipse/index.stories.tsx +0 -1
- package/src/engines/Cesium/Feature/Frustum/getFieldOfView.ts +2 -0
- package/src/engines/Cesium/Feature/Frustum/index.stories.tsx +0 -1
- package/src/engines/Cesium/Feature/HeatMap/HeatmapMesh.tsx +1 -1
- package/src/engines/Cesium/Feature/Marker/index.tsx +1 -1
- package/src/engines/Cesium/Feature/Model/index.stories.tsx +1 -2
- package/src/engines/Cesium/Feature/Model/index.tsx +3 -3
- package/src/engines/Cesium/Feature/PhotoOverlay/hooks.ts +2 -2
- package/src/engines/Cesium/Feature/PhotoOverlay/index.tsx +3 -1
- package/src/engines/Cesium/Feature/Polygon/index.stories.tsx +0 -1
- package/src/engines/Cesium/Feature/Polygon/index.tsx +6 -4
- package/src/engines/Cesium/Feature/Raster/index.stories.tsx +0 -1
- package/src/engines/Cesium/Feature/Raster/mvt.ts +2 -1
- package/src/engines/Cesium/Feature/Resource/index.stories.tsx +0 -1
- package/src/engines/Cesium/Feature/Resource/index.tsx +1 -27
- package/src/engines/Cesium/Feature/Resource/utils.ts +86 -91
- package/src/engines/Cesium/Feature/Tileset/hooks.ts +273 -87
- package/src/engines/Cesium/Feature/Tileset/index.stories.tsx +0 -1
- package/src/engines/Cesium/Feature/Tileset/index.tsx +7 -14
- package/src/engines/Cesium/Feature/Tileset/useClippingBox.ts +2 -2
- package/src/engines/Cesium/Feature/Tileset/useDrawClipping.ts +2 -2
- package/src/engines/Cesium/Feature/context.ts +3 -0
- package/src/engines/Cesium/Feature/index.tsx +27 -10
- package/src/engines/Cesium/Feature/utils.tsx +20 -12
- package/src/engines/Cesium/PostProcesses/hbao/AmbientOcclusion.tsx +7 -4
- package/src/engines/Cesium/Sketch/ControlPoint.tsx +128 -24
- package/src/engines/Cesium/Sketch/ExtrudedControlPoints.tsx +70 -25
- package/src/engines/Cesium/Sketch/ExtrudedMeasurement.tsx +3 -1
- package/src/engines/Cesium/Sketch/ExtrudedPolygonEntity.tsx +14 -14
- package/src/engines/Cesium/Sketch/PolylineEntity.tsx +7 -4
- package/src/engines/Cesium/Sketch/SurfaceAddingPoints.tsx +60 -0
- package/src/engines/Cesium/Sketch/SurfaceControlPoints.tsx +126 -35
- package/src/engines/Cesium/Sketch/constants.ts +5 -0
- package/src/engines/Cesium/Sketch/index.tsx +68 -29
- package/src/engines/Cesium/SpatialId/CoordinateIndicator.tsx +28 -0
- package/src/engines/Cesium/SpatialId/SpatialIdSpace.tsx +33 -0
- package/src/engines/Cesium/SpatialId/VerticalSpaceIndicator.tsx +32 -0
- package/src/engines/Cesium/SpatialId/index.ts +3 -0
- package/src/engines/Cesium/common.ts +55 -18
- package/src/engines/Cesium/core/Clock.tsx +1 -1
- package/src/engines/Cesium/core/Globe/index.tsx +69 -0
- package/src/engines/Cesium/core/Globe/useTerrainProviderPromise.ts +81 -0
- package/src/engines/Cesium/core/Imagery.test.ts +299 -42
- package/src/engines/Cesium/core/Imagery.tsx +282 -54
- package/src/engines/Cesium/core/Indicator/Indicator.tsx +2 -2
- package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapLabelImagery.tsx +13 -6
- package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapLabelImageryLayer.tsx +2 -1
- package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapLabelImageryProvider.ts +3 -4
- package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapVectorMapLabel.tsx +14 -2
- package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/helpers.ts +1 -1
- package/src/engines/Cesium/core/labels/LabelImageryLayers.tsx +10 -1
- package/src/engines/Cesium/core/presets.ts +122 -48
- package/src/engines/Cesium/helpers/getGeometryFromEntity.ts +55 -0
- package/src/engines/Cesium/hooks/useCamera.ts +2 -2
- package/src/engines/Cesium/hooks/useCameraLimiter.ts +1 -1
- package/src/engines/Cesium/hooks/useEngineRef.ts +52 -5
- package/src/engines/Cesium/hooks/useExplicitRender.ts +2 -2
- package/src/engines/Cesium/hooks/useInstance.ts +1 -1
- package/src/engines/Cesium/hooks/useLayerDragDrop.ts +3 -3
- package/src/engines/Cesium/hooks/useLayerSelectWithRect.ts +2 -2
- package/src/engines/Cesium/hooks/useOverrideGlobeShader/useOverrideGlobeShader.ts +115 -67
- package/src/engines/Cesium/hooks/useViewerProperty.ts +1 -1
- package/src/engines/Cesium/hooks.ts +68 -17
- package/src/engines/Cesium/index.stories.tsx +0 -1
- package/src/engines/Cesium/index.tsx +38 -8
- package/src/engines/Cesium/pickMany.ts +2 -0
- package/src/engines/Cesium/types.ts +1 -1
- package/src/engines/Cesium/utils/mouse.ts +1 -1
- package/src/engines/Cesium/utils/utils.ts +1 -1
- package/src/mantle/atoms/compute.test.ts +4 -4
- package/src/mantle/atoms/compute.ts +8 -4
- package/src/mantle/compat/forward.ts +1 -1
- package/src/mantle/data/geojson.ts +49 -26
- package/src/mantle/data/georss.ts +2 -2
- package/src/mantle/data/gml.ts +2 -2
- package/src/mantle/data/gpx.ts +2 -2
- package/src/mantle/data/shapefile/parseZip.ts +1 -0
- package/src/mantle/evaluator/simple/expression/README.md +392 -0
- package/src/mantle/evaluator/simple/expression/expression.test.ts +137 -0
- package/src/mantle/evaluator/simple/expression/node.ts +10 -12
- package/src/mantle/evaluator/simple/expression/variableReplacer.test.ts +178 -0
- package/src/mantle/evaluator/simple/expression/variableReplacer.ts +24 -11
- package/src/mantle/types/appearance.ts +4 -2
- package/src/mantle/types/index.ts +5 -0
- package/src/{Visualizer → shared}/interactionMode.ts +3 -2
- package/src/test/setup.ts +1 -1
- package/src/test/utils.tsx +1 -1
- package/src/types/modules.d.ts +96 -0
- package/src/utils/StringMatcher.ts +1 -1
- package/src/utils/image.ts +2 -12
- package/src/utils/use-delayed-count.ts +1 -1
- package/src/utils/use-dnd/drop.ts +1 -1
- package/src/utils/util.ts +1 -1
- package/src/utils/value.ts +2 -2
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_0.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_1.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_10.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_11.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_12.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_13.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_14.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_15.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_16.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_17.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_18.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_19.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_2.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_20.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_21.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_22.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_23.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_24.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_25.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_26.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_27.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_3.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_4.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_5.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_6.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_7.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_8.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_9.json +0 -1
- package/dist/cesium/Assets/Images/bing_maps_credit.png +0 -0
- package/dist/cesium/Assets/Images/cesium_credit.png +0 -0
- package/dist/cesium/Assets/Images/google_earth_credit.png +0 -0
- package/dist/cesium/Assets/Images/ion-credit.png +0 -0
- package/dist/cesium/Assets/Textures/LensFlare/DirtMask.jpg +0 -0
- package/dist/cesium/Assets/Textures/LensFlare/StarBurst.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml +0 -14
- package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
- package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
- package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
- package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
- package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
- package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
- package/dist/cesium/Assets/Textures/maki/airfield.png +0 -0
- package/dist/cesium/Assets/Textures/maki/airport.png +0 -0
- package/dist/cesium/Assets/Textures/maki/alcohol-shop.png +0 -0
- package/dist/cesium/Assets/Textures/maki/america-football.png +0 -0
- package/dist/cesium/Assets/Textures/maki/art-gallery.png +0 -0
- package/dist/cesium/Assets/Textures/maki/bakery.png +0 -0
- package/dist/cesium/Assets/Textures/maki/bank.png +0 -0
- package/dist/cesium/Assets/Textures/maki/bar.png +0 -0
- package/dist/cesium/Assets/Textures/maki/baseball.png +0 -0
- package/dist/cesium/Assets/Textures/maki/basketball.png +0 -0
- package/dist/cesium/Assets/Textures/maki/beer.png +0 -0
- package/dist/cesium/Assets/Textures/maki/bicycle.png +0 -0
- package/dist/cesium/Assets/Textures/maki/building.png +0 -0
- package/dist/cesium/Assets/Textures/maki/bus.png +0 -0
- package/dist/cesium/Assets/Textures/maki/cafe.png +0 -0
- package/dist/cesium/Assets/Textures/maki/camera.png +0 -0
- package/dist/cesium/Assets/Textures/maki/campsite.png +0 -0
- package/dist/cesium/Assets/Textures/maki/car.png +0 -0
- package/dist/cesium/Assets/Textures/maki/cemetery.png +0 -0
- package/dist/cesium/Assets/Textures/maki/cesium.png +0 -0
- package/dist/cesium/Assets/Textures/maki/chemist.png +0 -0
- package/dist/cesium/Assets/Textures/maki/cinema.png +0 -0
- package/dist/cesium/Assets/Textures/maki/circle-stroked.png +0 -0
- package/dist/cesium/Assets/Textures/maki/circle.png +0 -0
- package/dist/cesium/Assets/Textures/maki/city.png +0 -0
- package/dist/cesium/Assets/Textures/maki/clothing-store.png +0 -0
- package/dist/cesium/Assets/Textures/maki/college.png +0 -0
- package/dist/cesium/Assets/Textures/maki/commercial.png +0 -0
- package/dist/cesium/Assets/Textures/maki/cricket.png +0 -0
- package/dist/cesium/Assets/Textures/maki/cross.png +0 -0
- package/dist/cesium/Assets/Textures/maki/dam.png +0 -0
- package/dist/cesium/Assets/Textures/maki/danger.png +0 -0
- package/dist/cesium/Assets/Textures/maki/disability.png +0 -0
- package/dist/cesium/Assets/Textures/maki/dog-park.png +0 -0
- package/dist/cesium/Assets/Textures/maki/embassy.png +0 -0
- package/dist/cesium/Assets/Textures/maki/emergency-telephone.png +0 -0
- package/dist/cesium/Assets/Textures/maki/entrance.png +0 -0
- package/dist/cesium/Assets/Textures/maki/farm.png +0 -0
- package/dist/cesium/Assets/Textures/maki/fast-food.png +0 -0
- package/dist/cesium/Assets/Textures/maki/ferry.png +0 -0
- package/dist/cesium/Assets/Textures/maki/fire-station.png +0 -0
- package/dist/cesium/Assets/Textures/maki/fuel.png +0 -0
- package/dist/cesium/Assets/Textures/maki/garden.png +0 -0
- package/dist/cesium/Assets/Textures/maki/gift.png +0 -0
- package/dist/cesium/Assets/Textures/maki/golf.png +0 -0
- package/dist/cesium/Assets/Textures/maki/grocery.png +0 -0
- package/dist/cesium/Assets/Textures/maki/hairdresser.png +0 -0
- package/dist/cesium/Assets/Textures/maki/harbor.png +0 -0
- package/dist/cesium/Assets/Textures/maki/heart.png +0 -0
- package/dist/cesium/Assets/Textures/maki/heliport.png +0 -0
- package/dist/cesium/Assets/Textures/maki/hospital.png +0 -0
- package/dist/cesium/Assets/Textures/maki/ice-cream.png +0 -0
- package/dist/cesium/Assets/Textures/maki/industrial.png +0 -0
- package/dist/cesium/Assets/Textures/maki/land-use.png +0 -0
- package/dist/cesium/Assets/Textures/maki/laundry.png +0 -0
- package/dist/cesium/Assets/Textures/maki/library.png +0 -0
- package/dist/cesium/Assets/Textures/maki/lighthouse.png +0 -0
- package/dist/cesium/Assets/Textures/maki/lodging.png +0 -0
- package/dist/cesium/Assets/Textures/maki/logging.png +0 -0
- package/dist/cesium/Assets/Textures/maki/london-underground.png +0 -0
- package/dist/cesium/Assets/Textures/maki/marker-stroked.png +0 -0
- package/dist/cesium/Assets/Textures/maki/marker.png +0 -0
- package/dist/cesium/Assets/Textures/maki/minefield.png +0 -0
- package/dist/cesium/Assets/Textures/maki/mobilephone.png +0 -0
- package/dist/cesium/Assets/Textures/maki/monument.png +0 -0
- package/dist/cesium/Assets/Textures/maki/museum.png +0 -0
- package/dist/cesium/Assets/Textures/maki/music.png +0 -0
- package/dist/cesium/Assets/Textures/maki/oil-well.png +0 -0
- package/dist/cesium/Assets/Textures/maki/park.png +0 -0
- package/dist/cesium/Assets/Textures/maki/park2.png +0 -0
- package/dist/cesium/Assets/Textures/maki/parking-garage.png +0 -0
- package/dist/cesium/Assets/Textures/maki/parking.png +0 -0
- package/dist/cesium/Assets/Textures/maki/pharmacy.png +0 -0
- package/dist/cesium/Assets/Textures/maki/pitch.png +0 -0
- package/dist/cesium/Assets/Textures/maki/place-of-worship.png +0 -0
- package/dist/cesium/Assets/Textures/maki/playground.png +0 -0
- package/dist/cesium/Assets/Textures/maki/police.png +0 -0
- package/dist/cesium/Assets/Textures/maki/polling-place.png +0 -0
- package/dist/cesium/Assets/Textures/maki/post.png +0 -0
- package/dist/cesium/Assets/Textures/maki/prison.png +0 -0
- package/dist/cesium/Assets/Textures/maki/rail-above.png +0 -0
- package/dist/cesium/Assets/Textures/maki/rail-light.png +0 -0
- package/dist/cesium/Assets/Textures/maki/rail-metro.png +0 -0
- package/dist/cesium/Assets/Textures/maki/rail-underground.png +0 -0
- package/dist/cesium/Assets/Textures/maki/rail.png +0 -0
- package/dist/cesium/Assets/Textures/maki/religious-christian.png +0 -0
- package/dist/cesium/Assets/Textures/maki/religious-jewish.png +0 -0
- package/dist/cesium/Assets/Textures/maki/religious-muslim.png +0 -0
- package/dist/cesium/Assets/Textures/maki/restaurant.png +0 -0
- package/dist/cesium/Assets/Textures/maki/roadblock.png +0 -0
- package/dist/cesium/Assets/Textures/maki/rocket.png +0 -0
- package/dist/cesium/Assets/Textures/maki/school.png +0 -0
- package/dist/cesium/Assets/Textures/maki/scooter.png +0 -0
- package/dist/cesium/Assets/Textures/maki/shop.png +0 -0
- package/dist/cesium/Assets/Textures/maki/skiing.png +0 -0
- package/dist/cesium/Assets/Textures/maki/slaughterhouse.png +0 -0
- package/dist/cesium/Assets/Textures/maki/soccer.png +0 -0
- package/dist/cesium/Assets/Textures/maki/square-stroked.png +0 -0
- package/dist/cesium/Assets/Textures/maki/square.png +0 -0
- package/dist/cesium/Assets/Textures/maki/star-stroked.png +0 -0
- package/dist/cesium/Assets/Textures/maki/star.png +0 -0
- package/dist/cesium/Assets/Textures/maki/suitcase.png +0 -0
- package/dist/cesium/Assets/Textures/maki/swimming.png +0 -0
- package/dist/cesium/Assets/Textures/maki/telephone.png +0 -0
- package/dist/cesium/Assets/Textures/maki/tennis.png +0 -0
- package/dist/cesium/Assets/Textures/maki/theatre.png +0 -0
- package/dist/cesium/Assets/Textures/maki/toilets.png +0 -0
- package/dist/cesium/Assets/Textures/maki/town-hall.png +0 -0
- package/dist/cesium/Assets/Textures/maki/town.png +0 -0
- package/dist/cesium/Assets/Textures/maki/triangle-stroked.png +0 -0
- package/dist/cesium/Assets/Textures/maki/triangle.png +0 -0
- package/dist/cesium/Assets/Textures/maki/village.png +0 -0
- package/dist/cesium/Assets/Textures/maki/warehouse.png +0 -0
- package/dist/cesium/Assets/Textures/maki/waste-basket.png +0 -0
- package/dist/cesium/Assets/Textures/maki/water.png +0 -0
- package/dist/cesium/Assets/Textures/maki/wetland.png +0 -0
- package/dist/cesium/Assets/Textures/maki/zoo.png +0 -0
- package/dist/cesium/Assets/Textures/moonSmall.jpg +0 -0
- package/dist/cesium/Assets/Textures/pin.svg +0 -1
- package/dist/cesium/Assets/Textures/waterNormals.jpg +0 -0
- package/dist/cesium/Assets/Textures/waterNormalsSmall.jpg +0 -0
- package/dist/cesium/Assets/approximateTerrainHeights.json +0 -1
- package/dist/cesium/ThirdParty/Workers/package.json +0 -1
- package/dist/cesium/ThirdParty/Workers/pako_deflate.min.js +0 -1
- package/dist/cesium/ThirdParty/Workers/pako_inflate.min.js +0 -1
- package/dist/cesium/ThirdParty/Workers/z-worker-pako.js +0 -1
- package/dist/cesium/ThirdParty/basis_transcoder.wasm +0 -0
- package/dist/cesium/ThirdParty/draco_decoder.wasm +0 -0
- package/dist/cesium/ThirdParty/google-earth-dbroot-parser.js +0 -1
- package/dist/cesium/Widgets/Animation/Animation.css +0 -127
- package/dist/cesium/Widgets/Animation/lighter.css +0 -70
- package/dist/cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css +0 -108
- package/dist/cesium/Widgets/BaseLayerPicker/lighter.css +0 -22
- package/dist/cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css +0 -102
- package/dist/cesium/Widgets/CesiumInspector/CesiumInspector.css +0 -113
- package/dist/cesium/Widgets/CesiumWidget/CesiumWidget.css +0 -124
- package/dist/cesium/Widgets/CesiumWidget/lighter.css +0 -14
- package/dist/cesium/Widgets/FullscreenButton/FullscreenButton.css +0 -8
- package/dist/cesium/Widgets/Geocoder/Geocoder.css +0 -70
- package/dist/cesium/Widgets/Geocoder/lighter.css +0 -17
- package/dist/cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css +0 -27
- package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/bingAerial.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/bingAerialLabels.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/bingRoads.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/blueMarble.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/earthAtNight.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/mapboxSatellite.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/mapboxStreets.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/mapboxTerrain.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/naturalEarthII.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/openStreetMap.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/sentinel-2.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/stamenToner.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/stamenWatercolor.png +0 -0
- package/dist/cesium/Widgets/Images/NavigationHelp/Mouse.svg +0 -84
- package/dist/cesium/Widgets/Images/NavigationHelp/MouseLeft.svg +0 -76
- package/dist/cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg +0 -76
- package/dist/cesium/Widgets/Images/NavigationHelp/MouseRight.svg +0 -76
- package/dist/cesium/Widgets/Images/NavigationHelp/Touch.svg +0 -120
- package/dist/cesium/Widgets/Images/NavigationHelp/TouchDrag.svg +0 -129
- package/dist/cesium/Widgets/Images/NavigationHelp/TouchRotate.svg +0 -76
- package/dist/cesium/Widgets/Images/NavigationHelp/TouchTilt.svg +0 -135
- package/dist/cesium/Widgets/Images/NavigationHelp/TouchZoom.svg +0 -74
- package/dist/cesium/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png +0 -0
- package/dist/cesium/Widgets/Images/TerrainProviders/Ellipsoid.png +0 -0
- package/dist/cesium/Widgets/Images/TimelineIcons.png +0 -0
- package/dist/cesium/Widgets/Images/info-loading.gif +0 -0
- package/dist/cesium/Widgets/InfoBox/InfoBox.css +0 -92
- package/dist/cesium/Widgets/InfoBox/InfoBoxDescription.css +0 -178
- package/dist/cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css +0 -93
- package/dist/cesium/Widgets/NavigationHelpButton/lighter.css +0 -38
- package/dist/cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css +0 -15
- package/dist/cesium/Widgets/ProjectionPicker/ProjectionPicker.css +0 -38
- package/dist/cesium/Widgets/SceneModePicker/SceneModePicker.css +0 -56
- package/dist/cesium/Widgets/SelectionIndicator/SelectionIndicator.css +0 -20
- package/dist/cesium/Widgets/Timeline/Timeline.css +0 -103
- package/dist/cesium/Widgets/Timeline/lighter.css +0 -23
- package/dist/cesium/Widgets/VRButton/VRButton.css +0 -8
- package/dist/cesium/Widgets/Viewer/Viewer.css +0 -107
- package/dist/cesium/Widgets/VoxelInspector/VoxelInspector.css +0 -16
- package/dist/cesium/Widgets/lighter.css +0 -237
- package/dist/cesium/Widgets/lighterShared.css +0 -46
- package/dist/cesium/Widgets/shared.css +0 -103
- package/dist/cesium/Widgets/widgets.css +0 -1346
- package/dist/cesium/Workers/chunk-2YD5QWGR.js +0 -28
- package/dist/cesium/Workers/chunk-3T4KR75X.js +0 -26
- package/dist/cesium/Workers/chunk-46KFVW24.js +0 -26
- package/dist/cesium/Workers/chunk-4EI6PP43.js +0 -28
- package/dist/cesium/Workers/chunk-4RS52VIY.js +0 -26
- package/dist/cesium/Workers/chunk-4YLYA3DC.js +0 -26
- package/dist/cesium/Workers/chunk-5ENAGXBI.js +0 -26
- package/dist/cesium/Workers/chunk-5VIB3TI5.js +0 -26
- package/dist/cesium/Workers/chunk-6NGZLDFZ.js +0 -26
- package/dist/cesium/Workers/chunk-6RGNWVZ2.js +0 -27
- package/dist/cesium/Workers/chunk-7AZZVJ52.js +0 -26
- package/dist/cesium/Workers/chunk-AMXAQQEL.js +0 -26
- package/dist/cesium/Workers/chunk-AQW44ZPC.js +0 -26
- package/dist/cesium/Workers/chunk-CPCMDW6Z.js +0 -26
- package/dist/cesium/Workers/chunk-DNL2WDRL.js +0 -26
- package/dist/cesium/Workers/chunk-ERW7V247.js +0 -26
- package/dist/cesium/Workers/chunk-EYRIA4TP.js +0 -26
- package/dist/cesium/Workers/chunk-F7RQIJML.js +0 -26
- package/dist/cesium/Workers/chunk-FPZMU6QP.js +0 -26
- package/dist/cesium/Workers/chunk-FZDVQW7A.js +0 -26
- package/dist/cesium/Workers/chunk-GAZ2U4FO.js +0 -26
- package/dist/cesium/Workers/chunk-I44IOOT4.js +0 -26
- package/dist/cesium/Workers/chunk-IALXUAD4.js +0 -26
- package/dist/cesium/Workers/chunk-IXBUEUZL.js +0 -26
- package/dist/cesium/Workers/chunk-J3GCYV5K.js +0 -26
- package/dist/cesium/Workers/chunk-KGSZTFHZ.js +0 -26
- package/dist/cesium/Workers/chunk-KKKPU2CI.js +0 -26
- package/dist/cesium/Workers/chunk-KTEJE5KE.js +0 -26
- package/dist/cesium/Workers/chunk-KYZ3DYY6.js +0 -26
- package/dist/cesium/Workers/chunk-L2QG4MRI.js +0 -26
- package/dist/cesium/Workers/chunk-MCE3KFYN.js +0 -26
- package/dist/cesium/Workers/chunk-MMLDGXML.js +0 -26
- package/dist/cesium/Workers/chunk-MTBRPBDQ.js +0 -26
- package/dist/cesium/Workers/chunk-OKT6VBRK.js +0 -26
- package/dist/cesium/Workers/chunk-PHYDKLSY.js +0 -26
- package/dist/cesium/Workers/chunk-PWPX3224.js +0 -26
- package/dist/cesium/Workers/chunk-QHOVE6WG.js +0 -26
- package/dist/cesium/Workers/chunk-QJ6MBL22.js +0 -26
- package/dist/cesium/Workers/chunk-QKO6VIG2.js +0 -26
- package/dist/cesium/Workers/chunk-QVEE4QL2.js +0 -26
- package/dist/cesium/Workers/chunk-RXQOQZ7S.js +0 -26
- package/dist/cesium/Workers/chunk-S3ZKQKMM.js +0 -26
- package/dist/cesium/Workers/chunk-SFEUMZSK.js +0 -26
- package/dist/cesium/Workers/chunk-T75MW4X3.js +0 -26
- package/dist/cesium/Workers/chunk-TVO2A75R.js +0 -66
- package/dist/cesium/Workers/chunk-UHR36K45.js +0 -27
- package/dist/cesium/Workers/chunk-UKJCDZOR.js +0 -26
- package/dist/cesium/Workers/chunk-VKVIYER6.js +0 -26
- package/dist/cesium/Workers/chunk-VPIQWTRZ.js +0 -26
- package/dist/cesium/Workers/chunk-XSX5HRFC.js +0 -26
- package/dist/cesium/Workers/chunk-Z5WQQHSL.js +0 -26
- package/dist/cesium/Workers/chunk-Z7B2VEL5.js +0 -26
- package/dist/cesium/Workers/combineGeometry.js +0 -26
- package/dist/cesium/Workers/createBoxGeometry.js +0 -26
- package/dist/cesium/Workers/createBoxOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createCircleGeometry.js +0 -26
- package/dist/cesium/Workers/createCircleOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createCoplanarPolygonGeometry.js +0 -26
- package/dist/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createCorridorGeometry.js +0 -26
- package/dist/cesium/Workers/createCorridorOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createCylinderGeometry.js +0 -26
- package/dist/cesium/Workers/createCylinderOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createEllipseGeometry.js +0 -26
- package/dist/cesium/Workers/createEllipseOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createEllipsoidGeometry.js +0 -26
- package/dist/cesium/Workers/createEllipsoidOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createFrustumGeometry.js +0 -26
- package/dist/cesium/Workers/createFrustumOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createGeometry.js +0 -26
- package/dist/cesium/Workers/createGroundPolylineGeometry.js +0 -26
- package/dist/cesium/Workers/createPlaneGeometry.js +0 -26
- package/dist/cesium/Workers/createPlaneOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createPolygonGeometry.js +0 -26
- package/dist/cesium/Workers/createPolygonOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createPolylineGeometry.js +0 -26
- package/dist/cesium/Workers/createPolylineVolumeGeometry.js +0 -26
- package/dist/cesium/Workers/createPolylineVolumeOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createRectangleGeometry.js +0 -26
- package/dist/cesium/Workers/createRectangleOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createSimplePolylineGeometry.js +0 -26
- package/dist/cesium/Workers/createSphereGeometry.js +0 -26
- package/dist/cesium/Workers/createSphereOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createTaskProcessorWorker.js +0 -26
- package/dist/cesium/Workers/createVectorTileClampedPolylines.js +0 -26
- package/dist/cesium/Workers/createVectorTileGeometries.js +0 -26
- package/dist/cesium/Workers/createVectorTilePoints.js +0 -26
- package/dist/cesium/Workers/createVectorTilePolygons.js +0 -26
- package/dist/cesium/Workers/createVectorTilePolylines.js +0 -26
- package/dist/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +0 -26
- package/dist/cesium/Workers/createVerticesFromHeightmap.js +0 -26
- package/dist/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +0 -26
- package/dist/cesium/Workers/createWallGeometry.js +0 -26
- package/dist/cesium/Workers/createWallOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/decodeDraco.js +0 -26
- package/dist/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +0 -26
- package/dist/cesium/Workers/decodeI3S.js +0 -26
- package/dist/cesium/Workers/transcodeKTX2.js +0 -56
- package/dist/cesium/Workers/transferTypedArrayTest.js +0 -26
- package/dist/cesium/Workers/upsampleQuantizedTerrainMesh.js +0 -26
- package/src/engines/Cesium/core/Globe.tsx +0 -104
- /package/src/{Visualizer → shared}/featureFlags.ts +0 -0
- /package/src/{Map/Sketch/utils.ts → utils/use-window-event.ts} +0 -0
|
@@ -37,6 +37,7 @@ export type SceneMode = "3d" | "2d" | "columbus";
|
|
|
37
37
|
|
|
38
38
|
export type ViewerProperty = {
|
|
39
39
|
globe?: GlobeProperty;
|
|
40
|
+
geoid?: GeoidProperty;
|
|
40
41
|
terrain?: TerrainProperty;
|
|
41
42
|
scene?: SceneProperty;
|
|
42
43
|
tiles?: TileProperty[];
|
|
@@ -56,6 +57,13 @@ export type GlobeProperty = {
|
|
|
56
57
|
depthTestAgainstTerrain?: boolean;
|
|
57
58
|
};
|
|
58
59
|
|
|
60
|
+
export type GeoidProperty = {
|
|
61
|
+
server: {
|
|
62
|
+
url: string;
|
|
63
|
+
geoidProperty: string;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
|
|
59
67
|
export type GlobeAtmosphereProperty = {
|
|
60
68
|
enabled?: boolean;
|
|
61
69
|
lightIntensity?: number;
|
|
@@ -66,7 +74,7 @@ export type GlobeAtmosphereProperty = {
|
|
|
66
74
|
|
|
67
75
|
export type TerrainProperty = {
|
|
68
76
|
enabled?: boolean;
|
|
69
|
-
type?: "cesium" | "
|
|
77
|
+
type?: "cesium" | "cesiumion" | "reearth_terrain";
|
|
70
78
|
url?: string;
|
|
71
79
|
normal?: boolean;
|
|
72
80
|
elevationHeatMap?: ElevationHeatMapProperty;
|
|
@@ -122,6 +130,7 @@ export type TileProperty = {
|
|
|
122
130
|
id: string;
|
|
123
131
|
type?: string;
|
|
124
132
|
url?: string;
|
|
133
|
+
cesiumIonAssetId?: number;
|
|
125
134
|
opacity?: number;
|
|
126
135
|
zoomLevel?: number[];
|
|
127
136
|
zoomLevelForURL?: number[];
|
|
@@ -132,6 +141,8 @@ export type TileLabelProperty = {
|
|
|
132
141
|
id: string;
|
|
133
142
|
labelType: "japan_gsi_optimal_bvmap";
|
|
134
143
|
style: Record<string, any>;
|
|
144
|
+
near?: number;
|
|
145
|
+
far?: number;
|
|
135
146
|
};
|
|
136
147
|
|
|
137
148
|
export type SkyProperty = {
|
|
@@ -61,13 +61,7 @@ export type TimelineCommit = (PlayCommand | PauseCommand | SetTimeCommand | SetO
|
|
|
61
61
|
};
|
|
62
62
|
|
|
63
63
|
export type TimelineCommitter = {
|
|
64
|
-
source:
|
|
65
|
-
| "widgetContext"
|
|
66
|
-
| "pluginAPI"
|
|
67
|
-
| "featureResource"
|
|
68
|
-
| "storyTimelineBlock"
|
|
69
|
-
| "storyPage"
|
|
70
|
-
| "initialize";
|
|
64
|
+
source: string;
|
|
71
65
|
id?: string;
|
|
72
66
|
};
|
|
73
67
|
|
|
@@ -87,7 +81,7 @@ type Props = {
|
|
|
87
81
|
multiplier?: number;
|
|
88
82
|
rangeType?: "unbounded" | "clamped" | "bounced";
|
|
89
83
|
};
|
|
90
|
-
engineRef?: RefObject<EngineRef>;
|
|
84
|
+
engineRef?: RefObject<EngineRef | null>;
|
|
91
85
|
timelineManagerRef?: TimelineManagerRef;
|
|
92
86
|
};
|
|
93
87
|
|
|
@@ -101,7 +95,7 @@ export default ({ init, engineRef, timelineManagerRef }: Props) => {
|
|
|
101
95
|
const [options, setOptions] = useState<TimelineOptions>({
|
|
102
96
|
animation: init?.animation ?? false,
|
|
103
97
|
stepType: init?.stepType ?? "rate",
|
|
104
|
-
multiplier: init?.stepType === "fixed" ? init?.step ?? 1 : init?.multiplier ?? 1,
|
|
98
|
+
multiplier: init?.stepType === "fixed" ? (init?.step ?? 1) : (init?.multiplier ?? 1),
|
|
105
99
|
rangeType: init?.rangeType ?? "unbounded",
|
|
106
100
|
});
|
|
107
101
|
|
|
@@ -112,7 +106,7 @@ export default ({ init, engineRef, timelineManagerRef }: Props) => {
|
|
|
112
106
|
const currentTime = current.getTime();
|
|
113
107
|
|
|
114
108
|
const convertedStartTime = startTime > currentTime ? currentTime : startTime;
|
|
115
|
-
const convertedStopTime = stopTime
|
|
109
|
+
const convertedStopTime = stopTime < currentTime ? currentTime + DEFAULT_RANGE : stopTime;
|
|
116
110
|
|
|
117
111
|
return {
|
|
118
112
|
start: new Date(convertedStartTime),
|
package/src/Map/utils.ts
CHANGED
|
@@ -6,7 +6,7 @@ export function useGet<T>(value: T): () => T {
|
|
|
6
6
|
return useCallback(() => ref.current, []);
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
export function wrapRef<T>(ref: RefObject<T>, keys: FunctionKeys<T>): WrappedRef<T> {
|
|
9
|
+
export function wrapRef<T>(ref: RefObject<T | null>, keys: FunctionKeys<T>): WrappedRef<T> {
|
|
10
10
|
return Object.fromEntries(
|
|
11
11
|
(Object.keys(keys) as (keyof T)[]).map(k => {
|
|
12
12
|
return [k, (...args: any[]) => (ref.current?.[k] as any)?.(...args)];
|
package/src/Visualizer/Error.tsx
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import type { FallbackProps } from "react-error-boundary";
|
|
2
2
|
|
|
3
3
|
export default function Error({ error, resetErrorBoundary }: FallbackProps) {
|
|
4
|
+
const err = error as Error;
|
|
5
|
+
const errorMessage = err?.message ?? String(error);
|
|
6
|
+
|
|
4
7
|
return (
|
|
5
8
|
<div>
|
|
6
9
|
<h1>Oops! An Error Occurred</h1>
|
|
7
|
-
<p>{
|
|
10
|
+
<p>{errorMessage}</p>
|
|
8
11
|
<p>
|
|
9
12
|
<button style={{ color: "#fff" }} onClick={resetErrorBoundary}>
|
|
10
13
|
Retry
|
|
@@ -2,11 +2,11 @@ import { FC, PropsWithChildren, RefObject, createContext, useContext, useMemo }
|
|
|
2
2
|
|
|
3
3
|
import { MapRef } from "../Map";
|
|
4
4
|
|
|
5
|
-
const context = createContext<RefObject<MapRef> | undefined>(undefined);
|
|
5
|
+
const context = createContext<RefObject<MapRef | null> | undefined>(undefined);
|
|
6
6
|
|
|
7
|
-
export type Context = RefObject<MapRef>;
|
|
7
|
+
export type Context = RefObject<MapRef | null>;
|
|
8
8
|
|
|
9
|
-
export const useVisualizer = (): RefObject<MapRef> => {
|
|
9
|
+
export const useVisualizer = (): RefObject<MapRef | null> => {
|
|
10
10
|
const value = useContext(context);
|
|
11
11
|
if (!value) {
|
|
12
12
|
throw new Error("Visualizer is not declared. You have to use this hook inside of Visualizer");
|
|
@@ -14,11 +14,11 @@ export const useVisualizer = (): RefObject<MapRef> => {
|
|
|
14
14
|
return value;
|
|
15
15
|
};
|
|
16
16
|
|
|
17
|
-
const filterMapRefToContext = (mapRef: RefObject<MapRef>): Context => {
|
|
17
|
+
const filterMapRefToContext = (mapRef: RefObject<MapRef | null>): Context => {
|
|
18
18
|
return mapRef as Context;
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
-
export const VisualizerProvider: FC<PropsWithChildren<{ mapRef: RefObject<MapRef> }>> = ({
|
|
21
|
+
export const VisualizerProvider: FC<PropsWithChildren<{ mapRef: RefObject<MapRef | null> }>> = ({
|
|
22
22
|
mapRef,
|
|
23
23
|
children,
|
|
24
24
|
}) => {
|
|
@@ -9,8 +9,8 @@ import {
|
|
|
9
9
|
LayerSelectWithRectStart,
|
|
10
10
|
} from "../Map";
|
|
11
11
|
import { SketchEventCallback, SketchType } from "../Map/Sketch/types";
|
|
12
|
+
import { InteractionModeType } from "../shared/interactionMode";
|
|
12
13
|
|
|
13
|
-
import { InteractionModeType } from "./interactionMode";
|
|
14
14
|
import { Viewport } from "./useViewport";
|
|
15
15
|
|
|
16
16
|
type CoreContext = {
|
|
@@ -26,6 +26,8 @@ type CoreContext = {
|
|
|
26
26
|
handleCameraForceHorizontalRollChange?: (enable?: boolean) => void;
|
|
27
27
|
handleInteractionModeChange?: (mode?: InteractionModeType | undefined) => void;
|
|
28
28
|
onSketchPluginFeatureCreate?: (cb: SketchEventCallback) => void;
|
|
29
|
+
onSketchPluginFeatureUpdate?: (cb: SketchEventCallback) => void;
|
|
30
|
+
onSketchPluginFeatureDelete?: (cb: SketchEventCallback) => void;
|
|
29
31
|
onSketchTypeChange?: (cb: (type: SketchType | undefined) => void) => void;
|
|
30
32
|
onLayerVisibility?: (cb: (e: LayerVisibilityEvent) => void) => void;
|
|
31
33
|
onLayerLoad?: (cb: (e: LayerLoadEvent) => void) => void;
|
package/src/Visualizer/hooks.ts
CHANGED
|
@@ -7,7 +7,6 @@ import type {
|
|
|
7
7
|
Camera,
|
|
8
8
|
ComputedLayer,
|
|
9
9
|
LayerEditEvent,
|
|
10
|
-
CursorType,
|
|
11
10
|
LayerVisibilityEvent,
|
|
12
11
|
LayerLoadEvent,
|
|
13
12
|
LayerSelectWithRectStart,
|
|
@@ -17,9 +16,9 @@ import type {
|
|
|
17
16
|
} from "../Map";
|
|
18
17
|
import { SketchEventCallback, SketchEventProps, SketchType } from "../Map/Sketch/types";
|
|
19
18
|
import { TimelineManagerRef } from "../Map/useTimelineManager";
|
|
19
|
+
import type { InteractionModeType } from "../shared/interactionMode";
|
|
20
|
+
import { INTERACTION_MODES } from "../shared/interactionMode";
|
|
20
21
|
|
|
21
|
-
import type { InteractionModeType } from "./interactionMode";
|
|
22
|
-
import { INTERACTION_MODES } from "./interactionMode";
|
|
23
22
|
import useCoreAPI from "./useCoreAPI";
|
|
24
23
|
import useViewport from "./useViewport";
|
|
25
24
|
|
|
@@ -56,7 +55,7 @@ export default function useHooks(
|
|
|
56
55
|
) {
|
|
57
56
|
const mapRef = useRef<MapRef>(null);
|
|
58
57
|
|
|
59
|
-
useImperativeHandle(ref, () => mapRef.current, []);
|
|
58
|
+
useImperativeHandle(ref, () => mapRef.current as MapRef, []);
|
|
60
59
|
|
|
61
60
|
const wrapperRef = useRef<HTMLDivElement>(null);
|
|
62
61
|
|
|
@@ -82,12 +81,24 @@ export default function useHooks(
|
|
|
82
81
|
reason: LayerSelectionReason | undefined,
|
|
83
82
|
info: SelectedFeatureInfo | undefined,
|
|
84
83
|
) => {
|
|
85
|
-
|
|
84
|
+
const isSketchLayer =
|
|
85
|
+
selectedLayer.layer?.layer?.type === "simple" &&
|
|
86
|
+
selectedLayer.layer?.layer?.data?.isSketchLayer;
|
|
87
|
+
// Sketch layer feature has a fixed featureId, we need to exclude it from the skip condition
|
|
88
|
+
if (
|
|
89
|
+
selectedLayer.layerId === layerId &&
|
|
90
|
+
selectedLayer.featureId === featureId &&
|
|
91
|
+
!isSketchLayer
|
|
92
|
+
)
|
|
93
|
+
return;
|
|
86
94
|
|
|
87
95
|
const computedLayer = await layer?.();
|
|
88
96
|
const computedFeature =
|
|
89
97
|
layerId && featureId
|
|
90
|
-
?
|
|
98
|
+
? ((isSketchLayer
|
|
99
|
+
? computedLayer?.features?.find(f => f.id === featureId)
|
|
100
|
+
: mapRef.current?.engine.findComputedFeatureById?.(layerId, featureId)) ??
|
|
101
|
+
info?.feature)
|
|
91
102
|
: undefined;
|
|
92
103
|
|
|
93
104
|
selectFeature(
|
|
@@ -108,7 +119,7 @@ export default function useHooks(
|
|
|
108
119
|
[selectedLayer, onLayerSelect],
|
|
109
120
|
);
|
|
110
121
|
|
|
111
|
-
const timelineManagerRef: TimelineManagerRef = useRef();
|
|
122
|
+
const timelineManagerRef: TimelineManagerRef = useRef(undefined);
|
|
112
123
|
|
|
113
124
|
// camera
|
|
114
125
|
const [camera, changeCamera] = useValue(initialCamera, onCameraChange);
|
|
@@ -119,24 +130,22 @@ export default function useHooks(
|
|
|
119
130
|
}, []);
|
|
120
131
|
|
|
121
132
|
// interaction mode
|
|
122
|
-
const [
|
|
123
|
-
initialInteractionMode,
|
|
133
|
+
const [interactionMode, changeInteractionMode] = useValue(
|
|
134
|
+
initialInteractionMode || "default",
|
|
124
135
|
onInteractionModeChange,
|
|
125
136
|
);
|
|
126
|
-
const interactionMode = _interactionMode || "default";
|
|
127
137
|
|
|
128
|
-
const [cursor, setCursor] = useState<CursorType>("auto");
|
|
129
138
|
useEffect(() => {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
139
|
+
if (interactionMode === "default") {
|
|
140
|
+
mapRef?.current?.engine?.setCursor("auto");
|
|
141
|
+
}
|
|
133
142
|
}, [interactionMode]);
|
|
134
143
|
|
|
135
144
|
// feature flags
|
|
136
|
-
const featureFlags = INTERACTION_MODES[interactionMode];
|
|
145
|
+
const featureFlags = INTERACTION_MODES[interactionMode ?? "default"];
|
|
137
146
|
|
|
138
147
|
// layer edit
|
|
139
|
-
const onLayerEditRef = useRef<(e: LayerEditEvent) => void>();
|
|
148
|
+
const onLayerEditRef = useRef<(e: LayerEditEvent) => void>(undefined);
|
|
140
149
|
const onLayerEdit = useCallback((cb: (e: LayerEditEvent) => void) => {
|
|
141
150
|
onLayerEditRef.current = cb;
|
|
142
151
|
}, []);
|
|
@@ -145,7 +154,7 @@ export default function useHooks(
|
|
|
145
154
|
}, []);
|
|
146
155
|
|
|
147
156
|
// layer visiblity
|
|
148
|
-
const onLayerVisibilityRef = useRef<(e: LayerVisibilityEvent) => void>();
|
|
157
|
+
const onLayerVisibilityRef = useRef<(e: LayerVisibilityEvent) => void>(undefined);
|
|
149
158
|
const onLayerVisibility = useCallback((cb: (e: LayerVisibilityEvent) => void) => {
|
|
150
159
|
onLayerVisibilityRef.current = cb;
|
|
151
160
|
}, []);
|
|
@@ -154,7 +163,7 @@ export default function useHooks(
|
|
|
154
163
|
}, []);
|
|
155
164
|
|
|
156
165
|
// layer load
|
|
157
|
-
const onLayerLoadRef = useRef<(e: LayerLoadEvent) => void>();
|
|
166
|
+
const onLayerLoadRef = useRef<(e: LayerLoadEvent) => void>(undefined);
|
|
158
167
|
const onLayerLoad = useCallback((cb: (e: LayerLoadEvent) => void) => {
|
|
159
168
|
onLayerLoadRef.current = cb;
|
|
160
169
|
}, []);
|
|
@@ -163,21 +172,21 @@ export default function useHooks(
|
|
|
163
172
|
}, []);
|
|
164
173
|
|
|
165
174
|
// multiple feature selection
|
|
166
|
-
const onLayerSelectWithRectStartRef = useRef<(e: LayerSelectWithRectStart) => void>();
|
|
175
|
+
const onLayerSelectWithRectStartRef = useRef<(e: LayerSelectWithRectStart) => void>(undefined);
|
|
167
176
|
const onLayerSelectWithRectStart = useCallback((cb: (e: LayerSelectWithRectStart) => void) => {
|
|
168
177
|
onLayerSelectWithRectStartRef.current = cb;
|
|
169
178
|
}, []);
|
|
170
179
|
const handleLayerSelectWithRectStart = useCallback((e: LayerSelectWithRectStart) => {
|
|
171
180
|
onLayerSelectWithRectStartRef.current?.(e);
|
|
172
181
|
}, []);
|
|
173
|
-
const onLayerSelectWithRectMoveRef = useRef<(e: LayerSelectWithRectMove) => void>();
|
|
182
|
+
const onLayerSelectWithRectMoveRef = useRef<(e: LayerSelectWithRectMove) => void>(undefined);
|
|
174
183
|
const onLayerSelectWithRectMove = useCallback((cb: (e: LayerSelectWithRectMove) => void) => {
|
|
175
184
|
onLayerSelectWithRectMoveRef.current = cb;
|
|
176
185
|
}, []);
|
|
177
186
|
const handleLayerSelectWithRectMove = useCallback((e: LayerSelectWithRectMove) => {
|
|
178
187
|
onLayerSelectWithRectMoveRef.current?.(e);
|
|
179
188
|
}, []);
|
|
180
|
-
const onLayerSelectWithRectEndRef = useRef<(e: LayerSelectWithRectEnd) => void>();
|
|
189
|
+
const onLayerSelectWithRectEndRef = useRef<(e: LayerSelectWithRectEnd) => void>(undefined);
|
|
181
190
|
const onLayerSelectWithRectEnd = useCallback((cb: (e: LayerSelectWithRectEnd) => void) => {
|
|
182
191
|
onLayerSelectWithRectEndRef.current = cb;
|
|
183
192
|
}, []);
|
|
@@ -194,6 +203,25 @@ export default function useHooks(
|
|
|
194
203
|
onSketchPluginFeatureCreateCallbacksRef.current.forEach(fn => fn(props));
|
|
195
204
|
}, []);
|
|
196
205
|
|
|
206
|
+
const onSketchPluginFeatureUpdateCallbacksRef = useRef<SketchEventCallback[]>([]);
|
|
207
|
+
const onSketchPluginFeatureUpdate = useCallback((cb: SketchEventCallback) => {
|
|
208
|
+
onSketchPluginFeatureUpdateCallbacksRef.current.push(cb);
|
|
209
|
+
}, []);
|
|
210
|
+
const handleSketchPluginFeatureUpdate = useCallback((props: SketchEventProps) => {
|
|
211
|
+
onSketchPluginFeatureUpdateCallbacksRef.current.forEach(fn => fn(props));
|
|
212
|
+
}, []);
|
|
213
|
+
|
|
214
|
+
const onSketchPluginFeatureDeleteCallbacksRef = useRef<SketchEventCallback[]>([]);
|
|
215
|
+
const onSketchPluginFeatureDelete = useCallback((cb: SketchEventCallback) => {
|
|
216
|
+
onSketchPluginFeatureDeleteCallbacksRef.current.push(cb);
|
|
217
|
+
}, []);
|
|
218
|
+
const handleSketchPluginFeatureDelete = useCallback(
|
|
219
|
+
(props: { layerId: string; featureId: string }) => {
|
|
220
|
+
onSketchPluginFeatureDeleteCallbacksRef.current.forEach(fn => fn(props));
|
|
221
|
+
},
|
|
222
|
+
[],
|
|
223
|
+
);
|
|
224
|
+
|
|
197
225
|
const onSketchTypeChangeCallbacksRef = useRef<((type: SketchType | undefined) => void)[]>([]);
|
|
198
226
|
const onSketchTypeChange = useCallback((cb: (type: SketchType | undefined) => void) => {
|
|
199
227
|
onSketchTypeChangeCallbacksRef.current.push(cb);
|
|
@@ -244,6 +272,8 @@ export default function useHooks(
|
|
|
244
272
|
handleCameraForceHorizontalRollChange,
|
|
245
273
|
handleInteractionModeChange: changeInteractionMode,
|
|
246
274
|
onSketchPluginFeatureCreate,
|
|
275
|
+
onSketchPluginFeatureUpdate,
|
|
276
|
+
onSketchPluginFeatureDelete,
|
|
247
277
|
onSketchTypeChange,
|
|
248
278
|
onLayerVisibility,
|
|
249
279
|
onLayerLoad,
|
|
@@ -261,6 +291,8 @@ export default function useHooks(
|
|
|
261
291
|
handleCameraForceHorizontalRollChange,
|
|
262
292
|
onLayerEdit,
|
|
263
293
|
onSketchPluginFeatureCreate,
|
|
294
|
+
onSketchPluginFeatureUpdate,
|
|
295
|
+
onSketchPluginFeatureDelete,
|
|
264
296
|
onSketchTypeChange,
|
|
265
297
|
onLayerVisibility,
|
|
266
298
|
onLayerLoad,
|
|
@@ -290,10 +322,10 @@ export default function useHooks(
|
|
|
290
322
|
featureFlags,
|
|
291
323
|
isLayerDragging,
|
|
292
324
|
timelineManagerRef,
|
|
293
|
-
cursor,
|
|
294
325
|
cameraForceHorizontalRoll,
|
|
295
326
|
coreContextValue,
|
|
296
327
|
containerStyle,
|
|
328
|
+
overriddenInteractionMode: interactionMode,
|
|
297
329
|
handleLayerSelect,
|
|
298
330
|
handleLayerDrag,
|
|
299
331
|
handleLayerDrop,
|
|
@@ -301,6 +333,8 @@ export default function useHooks(
|
|
|
301
333
|
handleCameraChange: changeCamera,
|
|
302
334
|
handleInteractionModeChange: changeInteractionMode,
|
|
303
335
|
handleSketchPluginFeatureCreate,
|
|
336
|
+
handleSketchPluginFeatureUpdate,
|
|
337
|
+
handleSketchPluginFeatureDelete,
|
|
304
338
|
handleSketchTypeChange,
|
|
305
339
|
handleLayerVisibility,
|
|
306
340
|
handleLayerLoad,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Meta, StoryObj } from "@storybook/react";
|
|
2
2
|
import { ComponentProps, FC, useEffect, useState } from "react";
|
|
3
|
+
import { fn } from "storybook/test";
|
|
3
4
|
|
|
4
5
|
import { useVisualizer } from "./context";
|
|
5
6
|
|
|
@@ -7,6 +8,20 @@ import { CoreVisualizer } from ".";
|
|
|
7
8
|
|
|
8
9
|
export default {
|
|
9
10
|
component: CoreVisualizer,
|
|
11
|
+
args: {
|
|
12
|
+
// Explicit action handlers for callback props
|
|
13
|
+
onMount: fn(),
|
|
14
|
+
onLayerSelect: fn(),
|
|
15
|
+
onCameraChange: fn(),
|
|
16
|
+
onLayerDrag: fn(),
|
|
17
|
+
onLayerDrop: fn(),
|
|
18
|
+
onLayerEdit: fn(),
|
|
19
|
+
onLayerSelectWithRectStart: fn(),
|
|
20
|
+
onLayerSelectWithRectMove: fn(),
|
|
21
|
+
onLayerSelectWithRectEnd: fn(),
|
|
22
|
+
onLayerVisibility: fn(),
|
|
23
|
+
onLayerLoad: fn(),
|
|
24
|
+
},
|
|
10
25
|
} as Meta;
|
|
11
26
|
|
|
12
27
|
type Story = StoryObj<typeof CoreVisualizer>;
|
package/src/Visualizer/index.tsx
CHANGED
|
@@ -12,22 +12,24 @@ import {
|
|
|
12
12
|
type LatLng,
|
|
13
13
|
type Cluster,
|
|
14
14
|
type ComputedLayer,
|
|
15
|
+
type Credits,
|
|
16
|
+
type CustomProviderConfig,
|
|
15
17
|
} from "../Map";
|
|
16
18
|
import { SketchFeature, SketchType } from "../Map/Sketch/types";
|
|
19
|
+
import type { InteractionModeType } from "../shared/interactionMode";
|
|
17
20
|
|
|
18
21
|
import { VisualizerProvider } from "./context";
|
|
19
22
|
import { coreContext } from "./coreContext";
|
|
20
23
|
import { engines, type EngineType } from "./engines";
|
|
21
24
|
import Err from "./Error";
|
|
22
25
|
import useHooks from "./hooks";
|
|
23
|
-
import type { InteractionModeType } from "./interactionMode";
|
|
24
26
|
|
|
25
27
|
export { useVisualizer, type Context as VisualizerContext } from "./context";
|
|
26
28
|
export * from "./engines";
|
|
27
29
|
export * from "./useViewport";
|
|
28
30
|
export * from "./coreContext";
|
|
29
|
-
export * from "
|
|
30
|
-
export * from "
|
|
31
|
+
export * from "../shared/featureFlags";
|
|
32
|
+
export * from "../shared/interactionMode";
|
|
31
33
|
|
|
32
34
|
export type CoreVisualizerProps = {
|
|
33
35
|
engine?: EngineType;
|
|
@@ -41,11 +43,13 @@ export type CoreVisualizerProps = {
|
|
|
41
43
|
interactionMode?: InteractionModeType;
|
|
42
44
|
shouldRender?: boolean;
|
|
43
45
|
meta?: Record<string, unknown>;
|
|
46
|
+
customProvider?: CustomProviderConfig;
|
|
44
47
|
style?: CSSProperties;
|
|
45
48
|
small?: boolean;
|
|
46
49
|
ready?: boolean;
|
|
47
50
|
hiddenLayers?: string[];
|
|
48
51
|
zoomedLayerId?: string;
|
|
52
|
+
displayCredits?: boolean;
|
|
49
53
|
onCameraChange?: (camera: Camera) => void;
|
|
50
54
|
onLayerDrop?: (layerId: string, propertyKey: string, position: LatLng | undefined) => void;
|
|
51
55
|
onLayerSelect?: (
|
|
@@ -58,7 +62,11 @@ export type CoreVisualizerProps = {
|
|
|
58
62
|
onMount?: () => void;
|
|
59
63
|
onSketchTypeChangeProp?: (type: SketchType | undefined) => void;
|
|
60
64
|
onSketchFeatureCreate?: (feature: SketchFeature | null) => void;
|
|
65
|
+
onSketchFeatureUpdate?: (feature: SketchFeature | null) => void;
|
|
66
|
+
onSketchFeatureDelete?: (layerId: string, featureId: string) => void;
|
|
61
67
|
onInteractionModeChange?: (mode: InteractionModeType) => void;
|
|
68
|
+
onAPIReady?: () => void;
|
|
69
|
+
onCreditsUpdate?: (credits?: Credits) => void;
|
|
62
70
|
};
|
|
63
71
|
|
|
64
72
|
export const CoreVisualizer = memo(
|
|
@@ -79,6 +87,8 @@ export const CoreVisualizer = memo(
|
|
|
79
87
|
interactionMode,
|
|
80
88
|
shouldRender,
|
|
81
89
|
meta,
|
|
90
|
+
customProvider,
|
|
91
|
+
displayCredits = true,
|
|
82
92
|
style,
|
|
83
93
|
zoomedLayerId,
|
|
84
94
|
children,
|
|
@@ -90,6 +100,10 @@ export const CoreVisualizer = memo(
|
|
|
90
100
|
onMount,
|
|
91
101
|
onSketchTypeChangeProp,
|
|
92
102
|
onSketchFeatureCreate,
|
|
103
|
+
onSketchFeatureUpdate,
|
|
104
|
+
onSketchFeatureDelete,
|
|
105
|
+
onAPIReady,
|
|
106
|
+
onCreditsUpdate,
|
|
93
107
|
},
|
|
94
108
|
ref: Ref<MapRef | null>,
|
|
95
109
|
) => {
|
|
@@ -101,10 +115,10 @@ export const CoreVisualizer = memo(
|
|
|
101
115
|
featureFlags,
|
|
102
116
|
isLayerDragging,
|
|
103
117
|
timelineManagerRef,
|
|
104
|
-
cursor,
|
|
105
118
|
cameraForceHorizontalRoll,
|
|
106
119
|
coreContextValue,
|
|
107
120
|
containerStyle,
|
|
121
|
+
overriddenInteractionMode,
|
|
108
122
|
handleLayerSelect,
|
|
109
123
|
handleLayerDrag,
|
|
110
124
|
handleLayerDrop,
|
|
@@ -112,6 +126,8 @@ export const CoreVisualizer = memo(
|
|
|
112
126
|
handleCameraChange,
|
|
113
127
|
handleInteractionModeChange,
|
|
114
128
|
handleSketchPluginFeatureCreate,
|
|
129
|
+
handleSketchPluginFeatureUpdate,
|
|
130
|
+
handleSketchPluginFeatureDelete,
|
|
115
131
|
handleSketchTypeChange,
|
|
116
132
|
handleLayerVisibility,
|
|
117
133
|
handleLayerLoad,
|
|
@@ -152,6 +168,8 @@ export const CoreVisualizer = memo(
|
|
|
152
168
|
isLayerDragging={isLayerDragging}
|
|
153
169
|
isLayerDraggable={isEditable}
|
|
154
170
|
meta={meta}
|
|
171
|
+
customProvider={customProvider}
|
|
172
|
+
displayCredits={displayCredits}
|
|
155
173
|
style={style}
|
|
156
174
|
featureFlags={featureFlags}
|
|
157
175
|
shouldRender={shouldRender}
|
|
@@ -160,9 +178,8 @@ export const CoreVisualizer = memo(
|
|
|
160
178
|
small={small}
|
|
161
179
|
ready={ready}
|
|
162
180
|
timelineManagerRef={timelineManagerRef}
|
|
163
|
-
interactionMode={
|
|
181
|
+
interactionMode={overriddenInteractionMode}
|
|
164
182
|
selectedFeature={selectedFeature}
|
|
165
|
-
cursor={cursor}
|
|
166
183
|
onCameraChange={handleCameraChange}
|
|
167
184
|
onLayerDrag={handleLayerDrag}
|
|
168
185
|
onLayerDrop={handleLayerDrop}
|
|
@@ -171,6 +188,10 @@ export const CoreVisualizer = memo(
|
|
|
171
188
|
overrideInteractionMode={handleInteractionModeChange}
|
|
172
189
|
onSketchFeatureCreate={onSketchFeatureCreate}
|
|
173
190
|
onSketchPluginFeatureCreate={handleSketchPluginFeatureCreate}
|
|
191
|
+
onSketchFeatureUpdate={onSketchFeatureUpdate}
|
|
192
|
+
onSketchPluginFeatureUpdate={handleSketchPluginFeatureUpdate}
|
|
193
|
+
onSketchFeatureDelete={onSketchFeatureDelete}
|
|
194
|
+
onSketchPluginFeatureDelete={handleSketchPluginFeatureDelete}
|
|
174
195
|
onSketchTypeChange={handleSketchTypeChange}
|
|
175
196
|
onMount={onMount}
|
|
176
197
|
onLayerVisibility={handleLayerVisibility}
|
|
@@ -178,6 +199,8 @@ export const CoreVisualizer = memo(
|
|
|
178
199
|
onLayerSelectWithRectStart={handleLayerSelectWithRectStart}
|
|
179
200
|
onLayerSelectWithRectMove={handleLayerSelectWithRectMove}
|
|
180
201
|
onLayerSelectWithRectEnd={handleLayerSelectWithRectEnd}
|
|
202
|
+
onAPIReady={onAPIReady}
|
|
203
|
+
onCreditsUpdate={onCreditsUpdate}
|
|
181
204
|
/>
|
|
182
205
|
<coreContext.Provider value={coreContextValue}>{children}</coreContext.Provider>
|
|
183
206
|
</div>
|
|
@@ -127,7 +127,7 @@ export const useHooks = ({
|
|
|
127
127
|
);
|
|
128
128
|
|
|
129
129
|
// ScalePoint event handlers
|
|
130
|
-
const currentPointIndex = useRef<number>();
|
|
130
|
+
const currentPointIndex = useRef<number>(undefined);
|
|
131
131
|
const handlePointMouseDown: PointEventCallback = useCallback(
|
|
132
132
|
(_, { index }) => {
|
|
133
133
|
if (!viewer) {
|
|
@@ -138,7 +138,7 @@ export const useHooks = ({
|
|
|
138
138
|
},
|
|
139
139
|
[viewer],
|
|
140
140
|
);
|
|
141
|
-
const prevMousePosition2dForPoint = useRef<Cartesian2>();
|
|
141
|
+
const prevMousePosition2dForPoint = useRef<Cartesian2>(undefined);
|
|
142
142
|
const handlePointMouseMove: PointEventCallback = useCallback(
|
|
143
143
|
(e, { position, oppositePosition, pointLocal, index, layerId }) => {
|
|
144
144
|
if (
|
|
@@ -282,7 +282,7 @@ export const useHooks = ({
|
|
|
282
282
|
}, [viewer]);
|
|
283
283
|
|
|
284
284
|
// Edge event handlers
|
|
285
|
-
const currentEdgeIndex = useRef<number>();
|
|
285
|
+
const currentEdgeIndex = useRef<number>(undefined);
|
|
286
286
|
const handleEdgeMouseDown: EdgeEventCallback = useCallback(
|
|
287
287
|
(_, { index }) => {
|
|
288
288
|
if (!viewer) {
|
|
@@ -293,7 +293,7 @@ export const useHooks = ({
|
|
|
293
293
|
},
|
|
294
294
|
[viewer],
|
|
295
295
|
);
|
|
296
|
-
const prevMouseXAxisForEdge = useRef<number>();
|
|
296
|
+
const prevMouseXAxisForEdge = useRef<number>(undefined);
|
|
297
297
|
const handleEdgeMouseMove: EdgeEventCallback = useCallback(
|
|
298
298
|
(e, { index, layerId }) => {
|
|
299
299
|
if (currentEdgeIndex.current !== index) {
|
|
@@ -54,7 +54,7 @@ export const useHooks = ({
|
|
|
54
54
|
const [outlineColorCb] = useState(
|
|
55
55
|
() =>
|
|
56
56
|
new CallbackProperty(
|
|
57
|
-
() => (isActiveRef.current ? activeOutlineColor ?? outlineColor : outlineColor),
|
|
57
|
+
() => (isActiveRef.current ? (activeOutlineColor ?? outlineColor) : outlineColor),
|
|
58
58
|
false,
|
|
59
59
|
),
|
|
60
60
|
);
|
|
@@ -68,11 +68,17 @@ function screenProjectVector(
|
|
|
68
68
|
ray.origin = position;
|
|
69
69
|
ray.direction = direction;
|
|
70
70
|
const nearPoint2d = scene.cartesianToCanvasCoordinates(Ray.getPoint(ray, 0), new Cartesian2());
|
|
71
|
+
if (!nearPoint2d) {
|
|
72
|
+
return result;
|
|
73
|
+
}
|
|
71
74
|
|
|
72
75
|
const farPoint2d = scene.cartesianToCanvasCoordinates(
|
|
73
76
|
Ray.getPoint(ray, length),
|
|
74
77
|
new Cartesian2(),
|
|
75
78
|
);
|
|
79
|
+
if (!farPoint2d) {
|
|
80
|
+
return result;
|
|
81
|
+
}
|
|
76
82
|
const screenVector2d = Cartesian2.subtract(farPoint2d, nearPoint2d, result);
|
|
77
83
|
return screenVector2d;
|
|
78
84
|
}
|
|
@@ -7,6 +7,7 @@ export function getFieldOfView(camera: Camera, zoom: number): number {
|
|
|
7
7
|
const fov = getFieldOfViewSeparate(camera, zoom, cartesianScratch);
|
|
8
8
|
const frustum = camera.frustum;
|
|
9
9
|
invariant(frustum instanceof PerspectiveFrustum);
|
|
10
|
+
invariant(frustum.aspectRatio !== undefined);
|
|
10
11
|
return frustum.aspectRatio > 1 ? fov.x : fov.y;
|
|
11
12
|
}
|
|
12
13
|
|
|
@@ -17,6 +18,7 @@ export function getFieldOfViewSeparate(
|
|
|
17
18
|
): Cartesian2 {
|
|
18
19
|
const frustum = camera.frustum;
|
|
19
20
|
invariant(frustum instanceof PerspectiveFrustum);
|
|
21
|
+
invariant(frustum.aspectRatio !== undefined);
|
|
20
22
|
result.x = Math.atan(Math.pow(2, 1 - zoom)) * 2;
|
|
21
23
|
result.y = 2 * Math.atan(frustum.aspectRatio * Math.tan(result.x / 2));
|
|
22
24
|
return result;
|
|
@@ -62,7 +62,7 @@ export const HeatmapMesh = memo(
|
|
|
62
62
|
) => {
|
|
63
63
|
const { scene } = useCesium();
|
|
64
64
|
const groundPrimitives = scene?.groundPrimitives;
|
|
65
|
-
const primitiveRef = useRef<GroundPrimitive>();
|
|
65
|
+
const primitiveRef = useRef<GroundPrimitive>(undefined);
|
|
66
66
|
|
|
67
67
|
const material = useConstant(() =>
|
|
68
68
|
createHeatmapMeshMaterial({
|
|
@@ -228,7 +228,7 @@ export default function Marker({ property, id, isVisible, geometry, layer, featu
|
|
|
228
228
|
position={
|
|
229
229
|
useTransition
|
|
230
230
|
? (translateCallbackProperty as unknown as PositionProperty)
|
|
231
|
-
: translatedCoords ?? pos
|
|
231
|
+
: (translatedCoords ?? pos)
|
|
232
232
|
}
|
|
233
233
|
layerId={layer?.id}
|
|
234
234
|
featureId={feature?.id}
|