CesiumGS / CesiumGS/cesium

DrillPick on 2D map broken based on zoom level

Open
#8,052 2 comments 0 reactions 0 assignees View on GitHub
category - graphics category - picking type - bug
Dominant language
JavaScript
Stars
15.7k
Forks
3.9k
Avg merge
4d 6h
Merged PRs (30d)
34

Description

When you have a 2D map enabled and you try to use the drillpick or pick methods the results will either be correct or empty depending on the zoom level of the map. It seems like the more zoomed out you are it can say there are 0 things picked, but if you zoom in it will correctly detect things. This doesn't seem to be an issue with the 3D map.

Expected Behavior of Sandcastle:
* Have a mouse move handler that will call drillPick whenever moved and print to the console the results

Instructions to replicate in sandcastle below:
1) Enable the console tab of the sandcastle.
2) Move cursor around the map. Move cursor on the striped rectangle on top of Australia. You will observe that the drillpick is recording nothing in the console.
3) Zoom in and move the mouse. After passing some random threshold you will start seeing messages in the console for drillpick results that correspond to the rectangle entity.
4) Zoom out again and the console messages stop.

Tested Environments:
* CentOS Desktop + Chrome + NVIDIA GPU
* Windows 10 Laptop/Desktop + Firefox + Some GPU
* Windows 10 Desktop + Firefox + Chrome + GTX 1080 Ti

I can't confirm if we've had this issue with older versions of cesium

This is pretty critical for what we are doing since our maps default in 2D mode and the drillpick is the basis for basically all of our event handling. A fix would be great, but if there is a known workaround we would gladly take it

Thanks

https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/#c=dVNdT+MwEPwrVl9IpeJ+IF4gVHdXIoFEr9UFuJdIJ2Nvi4VjR7YTlEP979hxQ9L2bvNgez07mh1vKqJRxeEdNLpBEt7RAgwvc/zc5KIz2hwXSlrCJeizEfpAhoKEpWJw1aLTNoPTRfIzmd2i3fA6k5kM1JiSHDTBBqznjT4yifbBwFguieVKoi+6BdHW7Yi8wBut8lvYagATdVU+prPZ6DBzfpK5mITossOwPZQH0nLLwWDCWCtOA7VEbgU4WT29VCnNvGAwnd5fLfZA7nQ2wZORU3Xpl2lYzn1y2JOZOyrNiXBsPftTq3kBy/3dWqsCtK37xvmACuRCCaU75/wJ/767f0yOrFCM/Qv64+HpGKmhAGKv0GWX3rW2ZXLv3KaUtHm0XJXGPX0FkVdjh96sAK7caDXO1m609k43o4OZ5kKsOX0LNdhY9+BrZbhnDPzBa2mUM1WobRSIwt2ueTrH/kokE8eTm1LnvkwLQiHx7HcBFB0ooMQRmEDnvz2Tn9B7WZT2e9Nc1Cppu/3q8bTt3agF/0fHY10AXq6e0uTPcvWcePTwejAaxMbWAuah9hvPC6UtKrWIMB5byAvhZ238UtI3sJiaRnQ8botixivE2U02OPpTswGighjjbjalECn/C9lgHo8d/qBMKOLmebuqQAtSe8jrdP4QkhjjeOyOp1VWKfFCdI/xEw

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the issue in the linked Sandcastle example with a 2D map, using the mouse-move handler and its drillPick or pick calls. Trace the 2D picking path and compare results while zooming in and out. Done means the rectangle is consistently detected at every zoom level, rather than returning empty results when zoomed out.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
computer-graphics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.