globe.pick() returns undefined if antimeridian is in view (2D INFINITE_SCROLLING)
- Dominant language
- JavaScript
- Stars
- 15.7k
- Forks
- 3.9k
- Avg merge
- 4d 6h
- Merged PRs (30d)
- 34
Description
**Update**: [minimal Sandcastle reproducing the issue](https://sandcastle.cesium.com/index.html#c=lZRhb9owEIb/ipUvTbTMacuXiVK0KrCtGt3QqPZlmSbjHGDV2JbtpMom/vucmAAhQtOQQM7dPe97NueURKOSwStodI8EvKIUDCu2+HsTC69o85hKYQkToK9i9CcTyH0MBQFPMgc0bJlFG8KLdPplejvJxC66y0QmSueyISLn5zYLqgHEQhEK0xKE/eSLQt8SbkwwJU7A1Ep7DWzAPgpV2AdqmRThqhB+AbVG1LbIwSIlDatTtxNn3KRxG7rrVw3qqjPvLWiCFaMvU86ZMpLl4VE0OhHRpLpAr8HOncA3Ul1A11wuoS6ZuzSzUpwLNQVNF6GziTvJVohKYSQHzOU6zAJ/soedDVEWoDeob9+lvFvjE3WJwYHwv0nSJU86vEj+i+gdw9FyF18amedKAZ5NPzz/SmeP6Wc/cEmCHoRlyB0/yxmQegb9kTnCdQUGkzwP94OiJK+4G+/h6WjO98GPmqgNo6Yt9oDfmukQ7pYYS4Sda6lA2yr8cSTQoYho61ZEDPBKy+0E1m47Jrx5dx2j+nsdxf9Jve1hP6N2vYuaOxjEwcjYisPYJ96zrZLaokLzEOPEwlZx4gySZUFfwGJqmus2SlpolLMSsfw+C85eCO5/o5wY4zKrgvMF+w1ZMB4lrr6DcUlyJtZfS9CcVHXJ5mY880GM8Shxj33KSsmXRJ8o/gU). Click anywhere to get the pick position. Notice globe.pick will return undefined when antimeridian is in view, whereas pickEllipsoid will always return the correct value.
When in 2D infinite scrolling mode, globe.pick() returns undefined if the antimeridian is in view.
In the Sandcastle example, switch to 2D and pan around the map. As soon as the AM is in view the scale graphic disappears and the logging indicates that the result from globe.pick() is undefined, even if the pick ray is not near the AM.
[Sandcastle example](https://sandcastle.cesium.com/#c=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)
Browser: Chrome
Operating System: macOS
Contributor guide
Research direction
Start with the globe.pick() and pickEllipsoid() entry points and reproduce the linked Sandcastle example in 2D infinite-scrolling mode. Verify the behavior while panning with the antimeridian in view; done means globe.pick() returns the correct pick position instead of undefined when the ray is not near the antimeridian.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 35/100