per https://github.com/mapbox/mapbox-gl-js/pull/6289#issuecomment-416363685
In the recent addition of data-driven styling support for *-pattern properties, feature-state dependent expressions do not work. The removal of the possibleOutputs state (https://github.com/mapbox/mapbox-gl-js/pull/6289#discussion_r210777581) makes it possible that the icons needed forfeature-state related paint array updates may not be available in the tile's ImageAtlas at update time.
We haven't run into this before because the other data-driven properties that require glyph/icon assets are layout properties which don't support feature-state expressions yet.
I see a couple options on how to fix this:
CrossFadedCompositeBinder#updatePaintArrays method that runs on the main thread when feature states are updated/changed and update the tile's ImageAtlasImageManager, binder would have to send the new ImageAtlas to the tile somehowpossibleOutputs state and require that feature-state dependent expressions for cross-faded-data-driven properties be contained as literalsfeature-state expressions for cross-faded-data-driven propertiesleaning towards the first option here, but curious if anyone has a different preference or another idea.
cc @asheemmamoowala @jfirebaugh
I lean toward the first option, although it sounds like we have a few other issues also pushing us towards the second one.
Overall, it feels to me like we might have to think about rearchitecting how we partition work to the worker.
SharedArrayBuffer to share feature data?feature-state or when setLayoutProperty is used.Any update on this @mollymerp?
I would love some attention on this from the team, it's holding me on a fork since the days of #6289.
@charandas currently there are no plans to implement this because it requires a lot of effort to implement, and our team is focused on higher priority issues at the moment.
Would it please be possible to explicitly state in the docs which style specs are supported by feature-state operations?
@songololo Thank you for the suggestion. It turns out that we already have the relevant infromation to update the docs. You can follow the docs update in https://github.com/mapbox/mapbox-gl-js-docs/pull/171
Native PR is moving at: https://github.com/mapbox/mapbox-gl-native/pull/15872
Is there any chance this is going to get worked on? @jmalanen says the native PR is on hold? This is a critical feature for us.
My team also has a deep shared interest in this piece of work. Any updates on when we might possibly see some traction on this? Or any ways we can help catalyze that?
Any updates on this?
I'm still stuck on a fork because of this. It's really frustrating.
Hi @asheemmamoowala I've got some customers that aren't able to enjoy the benefits of v2 due to reliance on feature state to show multiple data overlays. Do we have any updates in v2 that might be a solve here?
Most helpful comment
Any updates on this?