CesiumGS / CesiumGS/cesium

globe.pick() returns undefined if antimeridian is in view (2D INFINITE_SCROLLING)

Open
#8,768 4 comments 0 reactions 0 assignees View on GitHub
category - picking type - bug
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.