diff --git a/web/client/utils/cesium/ClickUtils.js b/web/client/utils/cesium/ClickUtils.js index 9e31191651..b9efc5dbf1 100644 --- a/web/client/utils/cesium/ClickUtils.js +++ b/web/client/utils/cesium/ClickUtils.js @@ -81,8 +81,9 @@ export function computePositionInfo(map, movement, { const feature = scene.pick(position); const depthCartesian = scene.pickPosition(position); - - if (!!(feature && depthCartesian)) { + if (!(feature?.primitive instanceof Cesium.GroundPrimitive) + && !(feature?.primitive instanceof Cesium.GroundPolylinePrimitive) + && !!(feature && depthCartesian)) { return { cartesian: depthCartesian, cartographic: Cesium.Cartographic.fromCartesian(depthCartesian), diff --git a/web/client/utils/cesium/DrawGeometryInteraction.js b/web/client/utils/cesium/DrawGeometryInteraction.js index aaeefddd73..3a42a5bd79 100644 --- a/web/client/utils/cesium/DrawGeometryInteraction.js +++ b/web/client/utils/cesium/DrawGeometryInteraction.js @@ -215,7 +215,11 @@ class CesiumDrawGeometryInteraction { this._coordinatesLength = options?.coordinatesLength; this._geodesic = options?.geodesic; this._sampleTerrain = options?.sampleTerrain; - this._getObjectsToExcludeOnPick = options?.getObjectsToExcludeOnPick; + this._getObjectsToExcludeOnPick = () => [ + ...(options?.getObjectsToExcludeOnPick ? options.getObjectsToExcludeOnPick() : []), + this._dynamicPrimitivesCollection, + this._dynamicBillboardCollection + ]; this._depthTestAgainstTerrain = options?.depthTestAgainstTerrain; this._getPositionInfo = options?.getPositionInfo || defaultGetPositionInfo;