visgl / visgl/deck.gl

[Feat] HeatmapLayer: render more consistently across zoom levels

Open
#7,794 6 comments 10 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature
Dominant language
TypeScript
Stars
14.6k
Forks
2.3k
Avg merge
2d 9h
Merged PRs (30d)
42

Description

Target Use Case

It would be nice to have a way to keep a Heatmap rendering consistently across multiple zoom levels. Currently zooming in results in significant changes to the visualization which can be disorienting.

deck.gl current behavior

(via deck.gl HeatmapLayer docs)

https://user-images.githubusercontent.com/120596/227360722-f92f12c3-4693-4e7d-8df7-bbefb0c21cc6.mp4

Examples of expected behavior

Uber
  • movement.uber.com - note how it's not as disorienting when zooming in, since the heatmap doesn't change too abruptly when rerendering:

https://user-images.githubusercontent.com/120596/227361397-74701107-68c3-4545-ad5e-c6aba3e69e10.mp4

ArcGIS docs
  • ArcGIS - zooming results in rendering changes that aren't too jarring:

https://user-images.githubusercontent.com/120596/227363837-051516d4-e7a0-40fb-806a-12986d582548.mp4

Related discussions

Proposal

Some layers such as Scatterplot allow users to set radiusUnits to meters which helps make visualizations more consistent across zoom levels. It would be nice if HeatmapLayer had something like radiusUnits as well, though this would probably require a breaking change (radiusPixels would need to be renamed to radius).

Alternatively it would be nice to have some new boolean property to turn on which would result in more consistent rendering between different zoom levels.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the HeatmapLayer API and documentation, then review discussions 6908 and 7191 and issue 5003 for prior context. Compare the current zoom behavior with the linked Uber and ArcGIS examples. Done should mean an agreed API and heatmap rendering that changes less abruptly across zoom levels, with the behavior documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
data-visualization
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.