Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3d height from terrain not working with cesium terrain provider #9189

Closed
landryb opened this issue May 23, 2023 · 5 comments · Fixed by #9191 or #9192
Closed

3d height from terrain not working with cesium terrain provider #9189

landryb opened this issue May 23, 2023 · 5 comments · Fixed by #9191 or #9192
Assignees
Labels
3D All issues related to the 3D rendering in CesiumJs Accepted bug investigation
Milestone

Comments

@landryb
Copy link
Collaborator

landryb commented May 23, 2023

Description

Playing with 3d measure tools on latest 2023.01.xx , they all seem to work fine except 3d height from terrain documented here : https://docs.mapstore.geosolutionsgroup.com/en/v2023.01.00/user-guide/measure/#measure-height-from-terrain

I've configured a custom terrain layer:

           "terrainProvider": {
              "type": "cesium",
              "url": "https://3d.craig.fr/terrain",
              "requestVertexNormals": true
          }

loading some 3dtiles such as https://3d.craig.fr/datasets/Domerat_bati3d/3dtiles/tileset.json, enabling the measurement tools in 3d mode, checking the measure height tool yields nothign in the web UI.

in the browser console i have this error message:

Uncaught (in promise) TypeError: promise.then(...).catch is not a function
    getSampledTerrainPositions webpack://mapstore2/./web/client/components/map/cesium/DrawGeometrySupport.jsx?:231
    getSampledTerrainPositions webpack://mapstore2/./web/client/components/map/cesium/DrawGeometrySupport.jsx?:225
    handleMouseMove webpack://mapstore2/./web/client/components/map/cesium/DrawGeometrySupport.jsx?:406
    DrawGeometrySupport webpack://mapstore2/./web/client/components/map/cesium/DrawGeometrySupport.jsx?:451
    Lodash 3
    handleMouseMove webpack://mapstore2/./node_modules/cesium/Source/Core/ScreenSpaceEventHandler.js?:387
    listener webpack://mapstore2/./node_modules/cesium/Source/Core/ScreenSpaceEventHandler.js?:68

i've checked on https://dev-mapstore.geosolutionsgroup.com/mapstore/#/viewer/39079 and it works there so i guess something missing in my config, or the measure tools dont support cesium terrain ?

@landryb landryb added the bug label May 23, 2023
@landryb
Copy link
Collaborator Author

landryb commented May 23, 2023

trying with a wms terrain provider from mapserver, i get this in the console:

Uncaught 
Object { name: "DeveloperError", message: "sampleTerrainZoomLevel must not be called before the terrain provider is ready.", stack: "DeveloperError@webpack://mapstore2/./node_modules/cesium/Source/Core/DeveloperError.js?:44:11\nget@webpack://mapstore2/./web/client/utils/cesium/GeoServerBILTerrainProvider.js?:481:15\nhandleMouseMove@webpack://mapstore2/./web/client/components/map/cesium/DrawGeometrySupport.jsx?:406:11\nDrawGeometrySupport/</<@webpack://mapstore2/./web/client/components/map/cesium/DrawGeometrySupport.jsx?:451:24\ninvokeFunc@webpack://mapstore2/./node_modules/lodash/debounce.js?:95:19\nleadingEdge@webpack://mapstore2/./node_modules/lodash/debounce.js?:105:22\ndebounced@webpack://mapstore2/./node_modules/lodash/debounce.js?:172:16\nhandleMouseMove@webpack://mapstore2/./node_modules/cesium/Source/Core/ScreenSpaceEventHandler.js?:387:11\nlistener@webpack://mapstore2/./node_modules/cesium/Source/Core/ScreenSpaceEventHandler.js?:68:13\nEventListener.handleEvent*registerListener@webpack://mapstore2/./node_modules/cesium/Source/Core/ScreenSpaceEventHandler.js?:74:13\nregisterListeners@webpack://mapstore2/./node_modules/cesium/Source/Core/ScreenSpaceEventHandler.js?:133:21\nScreenSpaceEventHandler@webpack://mapstore2/./node_modules/cesium/Source/Core/ScreenSpaceEventHandler.js?:948:20\nDrawGeometrySupport/<@webpack://mapstore2/./web/client/components/map/cesium/DrawGeometrySupport.jsx?:442:25\ncommitHookEffectList@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:21893:26\ncommitPassiveHookEffects@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:21927:31\ncallCallback@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:362:14\ninvokeGuardedCallbackDev@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:411:16\ninvokeGuardedCallback@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:466:31\nflushPassiveEffectsImpl@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:25338:28\nunstable_runWithPriority@webpack://mapstore2/./node_modules/scheduler/cjs/scheduler.development.js?:815:12\nrunWithPriority$2@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:12188:10\nflushPassiveEffects@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:25305:12\nperformSyncWorkOnRoot@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:24163:5\nflushSyncCallbackQueueImpl/<@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:12238:24\nunstable_runWithPriority@webpack://mapstore2/./node_modules/scheduler/cjs/scheduler.development.js?:815:12\nrunWithPriority$2@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:12188:10\nflushSyncCallbackQueueImpl@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:12233:24\nflushSyncCallbackQueue@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:12221:3\ndiscreteUpdates$1@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:24365:7\ndiscreteUpdates@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:1486:12\ndispatchDiscreteEvent@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:5926:18\nEventListener.handleEvent*addEventBubbleListener@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:4592:11\ntrapEventForPluginEventSystem@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:5920:27\ntrapBubbledEvent@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:5861:32\nlistenToTopLevel@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:6234:27\nlistenTo@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:6193:21\nensureListeningTo@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:7728:11\nsetInitialDOMProperties@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:7800:26\nsetInitialProperties@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:8007:26\nfinalizeInitialChildren@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:9537:23\ncompleteWork@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:20950:40\ncompleteUnitOfWork@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:24673:16\nperformUnitOfWork@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:24649:12\nworkLoopSync@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:24614:22\nperformSyncWorkOnRoot@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:24182:11\nflushSyncCallbackQueueImpl/<@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:12238:24\nunstable_runWithPriority@webpack://mapstore2/./node_modules/scheduler/cjs/scheduler.development.js?:815:12\nrunWithPriority$2@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:12188:10\nflushSyncCallbackQueueImpl@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:12233:24\nflushSyncCallbackQueue@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:12221:3\nscheduleUpdateOnFiber@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:23601:9\ndispatchAction@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:17060:17\nuseModulePlugins/</<@webpack://mapstore2/./web/client/hooks/useModulePlugins.js?:122:19\npromise callback*useModulePlugins/<@webpack://mapstore2/./web/client/hooks/useModulePlugins.js?:113:10\ncommitHookEffectList@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:21893:26\ncommitPassiveHookEffects@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:21927:31\ncallCallback@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:362:14\ninvokeGuardedCallbackDev@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:411:16\ninvokeGuardedCallback@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:466:31\nflushPassiveEffectsImpl@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:25338:28\nunstable_runWithPriority@webpack://mapstore2/./node_modules/scheduler/cjs/scheduler.development.js?:815:12\nrunWithPriority$2@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:12188:10\nflushPassiveEffects@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:25305:12\nperformSyncWorkOnRoot@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:24163:5\nflushSyncCallbackQueueImpl/<@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:12238:24\nunstable_runWithPriority@webpack://mapstore2/./node_modules/scheduler/cjs/scheduler.development.js?:815:12\nrunWithPriority$2@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:12188:10\nflushSyncCallbackQueueImpl@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:12233:24\nflushSyncCallbackQueue@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:12221:3\nscheduleUpdateOnFiber@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:23601:9\nenqueueSetState@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:14029:17\nComponent.prototype.setState@webpack://mapstore2/./node_modules/react/cjs/react.development.js?:335:16\nsubscribe/this.unsubscribe<@webpack://mapstore2/./node_modules/react-redux/es/components/Provider.js?:63:14\ndispatch@webpack://mapstore2/./node_modules/redux/es/createStore.js?:180:19\ndispatch@webpack://mapstore2/./node_modules/@carnesen/redux-add-action-listener-enhancer/lib/index.js?:17:13\nrouterMiddleware/</</<@webpack://mapstore2/./node_modules/connected-react-router/esm/middleware.js?:27:18\nepicMiddleware/</<@webpack://mapstore2/./node_modules/redux-observable/lib/esm/createEpicMiddleware.js?:79:26\nepicMiddleware/</<@webpack://mapstore2/./node_modules/redux-observable/lib/esm/createEpicMiddleware.js?:79:26\nthunkMiddleware/</<@webpack://mapstore2/./node_modules/redux-thunk/lib/index.js?:12:74\nbindActionCreator/<@webpack://mapstore2/./node_modules/redux/es/bindActionCreators.js?:7:12\nhandleLoad@webpack://mapstore2/./web/client/components/theme/Theme.jsx?:60:5\nEventHandlerNonNull*Theme</<@webpack://mapstore2/./web/client/components/theme/Theme.jsx?:84:9\ncommitHookEffectList@webpack://mapstore2/./node_modules/react-dom/cjs/react-dom.development.js?:21893:26\n" }
GeoServerBILTerrainProvider.js:481:15

@landryb
Copy link
Collaborator Author

landryb commented May 23, 2023

and with the default ellipsoid it "works" but shows the height relative to the ellipsoid (eg actual altitude), so not really "interesting" :) since it seems to work in master, maybe a backport missing in 2023.01 ?

@tdipisa
Copy link
Member

tdipisa commented May 23, 2023

@landryb thank you for reporting. We will check it asap.

allyoucanmap added a commit to allyoucanmap/MapStore2 that referenced this issue May 24, 2023
@tdipisa tdipisa added the 3D All issues related to the 3D rendering in CesiumJs label May 24, 2023
@tdipisa
Copy link
Member

tdipisa commented May 24, 2023

Dear @landryb it seems the problem was also on master branch. We merged a PR for a fix this morning (#9191). Do you want to check it?

@tdipisa tdipisa self-assigned this May 24, 2023
@tdipisa
Copy link
Member

tdipisa commented May 24, 2023

Dear @landryb it seems the problem was also on master branch. We merged a PR for a fix this morning (#9191). Do you want to check it?

@landryb I just saw your comment here. You have anticipated me by a few minutes :-) Thank you.

@ElenaGallo ElenaGallo self-assigned this May 24, 2023
allyoucanmap added a commit to allyoucanmap/MapStore2 that referenced this issue May 24, 2023
tdipisa pushed a commit that referenced this issue May 25, 2023
…th cesium terrain provider (#9191) (#9192)

* Fix #9189 3d height from terrain not working with cesium terrain provider (#9191)

* fix failing test

* remove path test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment