-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
'queryRenderedSymbols' results invalid between tile reload and next rendered frame #5887
Labels
Comments
This was referenced Dec 18, 2017
Linking mapbox/mapbox-gl-native#8799 as the gl-native equivalent. |
This was referenced Jan 17, 2018
This is what happened in closely-related issue #5506. We should get this fixed in the next release. |
5 tasks
ChrisLoer
added a commit
that referenced
this issue
Apr 12, 2018
Addresses hover flicker from issues #5887 and #5506. Also fixes issue #5475/#6298, so that symbols that bleed over tile boundaries don't get missed. Under the hood, there are some good simplifications: - No round-tripping of viewport query coordinates through tile space - No more need to merge duplicate results from the same symbol showing up in multiple tiles - All querying-related data can now be indexed with a bucket instance id and a feature index - `Placement` now manages lifetime of any data needed to query against its CollisionIndex - CollisionBoxArray no longer involved in querying at all
ChrisLoer
added a commit
that referenced
this issue
Apr 12, 2018
Addresses hover flicker from issues #5887 and #5506. Also fixes issue #5475/#6298, so that symbols that bleed over tile boundaries don't get missed. Under the hood, there are some good simplifications: - No round-tripping of viewport query coordinates through tile space - No more need to merge duplicate results from the same symbol showing up in multiple tiles - All querying-related data can now be indexed with a bucket instance id and a feature index - `Placement` now manages lifetime of any data needed to query against its CollisionIndex - CollisionBoxArray no longer involved in querying at all
ChrisLoer
added a commit
that referenced
this issue
Apr 13, 2018
Addresses hover flicker from issues #5887 and #5506. Also fixes issue #5475/#6298, so that symbols that bleed over tile boundaries don't get missed. Under the hood, there are some good simplifications: - No round-tripping of viewport query coordinates through tile space - No more need to merge duplicate results from the same symbol showing up in multiple tiles - All querying-related data can now be indexed with a bucket instance id and a feature index - `Placement` now manages lifetime of any data needed to query against its CollisionIndex - CollisionBoxArray no longer involved in querying at all
ChrisLoer
added a commit
that referenced
this issue
Apr 13, 2018
Addresses hover flicker from issues #5887 and #5506. Also fixes issue #5475/#6298, so that symbols that bleed over tile boundaries don't get missed. Under the hood, there are some good simplifications: - No round-tripping of viewport query coordinates through tile space - No more need to merge duplicate results from the same symbol showing up in multiple tiles - All querying-related data can now be indexed with a bucket instance id and a feature index - `Placement` now manages lifetime of any data needed to query against its CollisionIndex - CollisionBoxArray no longer involved in querying at all
Fixed in #6497. |
ChrisLoer
added a commit
that referenced
this issue
May 18, 2018
Addresses hover flicker from issues #5887 and #5506. Also fixes issue #5475/#6298, so that symbols that bleed over tile boundaries don't get missed. Under the hood, there are some good simplifications: - No round-tripping of viewport query coordinates through tile space - No more need to merge duplicate results from the same symbol showing up in multiple tiles - All querying-related data can now be indexed with a bucket instance id and a feature index - `Placement` now manages lifetime of any data needed to query against its CollisionIndex - CollisionBoxArray no longer involved in querying at all
ChrisLoer
added a commit
that referenced
this issue
May 18, 2018
Addresses hover flicker from issues #5887 and #5506. Also fixes issue #5475/#6298, so that symbols that bleed over tile boundaries don't get missed. Under the hood, there are some good simplifications: - No round-tripping of viewport query coordinates through tile space - No more need to merge duplicate results from the same symbol showing up in multiple tiles - All querying-related data can now be indexed with a bucket instance id and a feature index - `Placement` now manages lifetime of any data needed to query against its CollisionIndex - CollisionBoxArray no longer involved in querying at all
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Consider a currently loaded tile A, with symbol X displaying on screen and in the collision index, then trigger a reload of tile A.
Tile#loadVectorData
will get called, which will reset the tile'sfeatureIndex
to a new index from the result. The new index won't have acollisionIndex
set yet.SourceCache#_tileLoaded
immediately schedules a "full placement"Map#render
, full placement will run, and update thecollisionIndex
of all tilesIf someone queries the map between steps 2 and 3, symbol X will be present in tile A's featureIndex, but it won't show up in the query results because the featureIndex isn't linked to a collisionIndex.
The invalid state should only last milliseconds, but if something is querying the map frequently (for instance, the
mouseover
handler), and it happens to hit this gap, you'll see some form of flickering./cc @ansis @andrewharvey @livemixlove
The text was updated successfully, but these errors were encountered: