Implementing feature interactivity
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 12.4k
- Forks
- 2.4k
- PR merge metrics
- No merged PRs in 30d
Description
At a high level I think feature interactivity can be split into two main pieces:
- RFC: Tracking feature state for interactivity https://github.com/mapbox/mapbox-gl-js/issues/6021
- RFC: Updating the appearance of individual features https://github.com/mapbox/mapbox-gl-js/issues/6020
Both of these proposals have plenty of other open questions that could be split into separate issues.
One open question is how to merge features across tile boundaries:
- RFC: Feature identity for interactivity https://github.com/mapbox/mapbox-gl-js/issues/6019
Next steps
@kkaefer @asheemmamoowala @mollymerp @anandthakker @mourner @lucaswoj
It would be good to get feedback on these proposals. What seems like a good idea and what doesn't? What alternative options did I miss?
After we figure out the high level direction we can start splitting up the design and implementation work into pieces.
@asheemmamoowala compiled list of all relevant issues:
Suggestions/Requests
- style-spec hover and active style properties: https://github.com/mapbox/mapbox-gl-js/issues/200
- feature-enter and feature-leave events: https://github.com/mapbox/mapbox-gl-js/issues/5539
- ray picking for selecting extrusions: https://github.com/mapbox/mapbox-gl-js/issues/3122
- optimize for hover and select: https://github.com/mapbox/mapbox-gl-js/issues/2874
- optimise setFilter: https://github.com/mapbox/mapbox-gl-js/issues/2443
- hover issues: https://github.com/mapbox/mapbox-gl-js/issues/550
- callouts for POIs: https://github.com/mapbox/mapbox-gl-native/issues/5432
- re-constitute query geometry for geojson:
https://github.com/mapbox/mapbox-gl-js/issues/5639
https://github.com/mapbox/mapbox-gl-native/issues/6178
https://github.com/mapbox/mapbox-gl-native/issues/7376
Related tickets:
- js color expressions for highlighting: https://github.com/mapbox/mapbox-gl-js/issues/5676
- selection at tile boundaries breaks: https://github.com/mapbox/mapbox-gl-native/issues/10615
- iOS tap gesture for feature querying: https://github.com/mapbox/mapbox-gl-native/issues/6515
- query methods to work with raster layers: https://github.com/mapbox/mapbox-gl-js/issues/1404
- ignore holes in polygon query: https://github.com/mapbox/mapbox-gl-js/issues/2293
- string feature IDs: https://github.com/mapbox/mapbox-gl-js/issues/2716, -
- https://github.com/mapbox/vector-tile-spec/issues/94
- frequent geojson data updates: https://github.com/mapbox/gl-internal/issues/818
- improved event handling https://github.com/mapbox/mapbox-gl-js/issues/5818
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the linked RFC issues 6021, 6020, and 6019, along with the related tickets listed in this issue. The immediate work is to evaluate the proposed direction and unresolved questions, then split agreed design and implementation work into concrete follow-up issues. Done means the high-level direction has feedback and actionable follow-ups.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend, web-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100