Skip to content

feat(headmap): Add outings density heatmap and tracks layers to the map - #4574

Open
Nayor wants to merge 1 commit into
masterfrom
feature/outings-heatmap
Open

Nayor wants to merge 1 commit into
masterfrom
feature/outings-heatmap

Conversation

@Nayor

@Nayor Nayor commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Summary

  • New opt-in "outings density" toggle in the outings search map's layer switcher (off by default): below a zoom threshold shows an aggregated heatmap (GET /outings/map/heatmap), above it fetches and draws individual tracks for the current viewport (GET /outings/map/tracks), reusing the existing addDocumentFeature() styling logic.
  • Clicking a spot with several overlapping tracks opens a small disambiguation popup instead of navigating to one arbitrarily (skitour.fr-style), via client-side hit-testing on already-loaded features — no extra network round-trip per click.
  • LayerButton.vue now tolerates a layer entry without an image (needed for this toggle's button), since it previously assumed every entry provided one.
  • Requires the backend endpoints added in feat(heatmap): Add outings map density endpoints (heatmap + tracks) v6_api#2231.

Closes #4573 (once merged alongside the backend PR) — see that issue for the community forum context behind this feature and the rationale for the zoom-tiered design.

Test plan

  • eslint/vue-cli-service lint clean.
  • Manually verified in a running dev build against production data: toggle is off by default, correctly switches between heatmap/tracks by zoom level, and fails gracefully (no unhandled rejection) when the backend endpoint isn't available yet.
  • Full click-to-identify popup flow needs a manual pass against a dev backend once feat(heatmap): Add outings map density endpoints (heatmap + tracks) v6_api#2231 is deployed (a dense, real bbox is needed to exercise the multi-track picker).

🤖 Generated with Claude Code

Adds an opt-in "outings density" toggle to the outings search map's
layer switcher (off by default): below a zoom threshold it shows an
aggregated heatmap fetched from the new /outings/map/heatmap endpoint,
above it fetches individual tracks from /outings/map/tracks and draws
them as vector features, reusing the existing addDocumentFeature()
logic. Clicking a spot with several overlapping tracks opens a small
picker popup instead of navigating to a single outing.

LayerButton.vue is adjusted to tolerate a layer without an image
(needed for the new toggle's button), since it previously assumed
every layer entry provided one.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 12, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 47 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: c3395438-32bc-4731-8e51-9aa10d0be68d

📥 Commits

Reviewing files that changed from the base of the PR and between 6bb7e25 and cd45826.

📒 Files selected for processing (6)
  • src/components/map/LayerButton.vue
  • src/components/map/OlMap.vue
  • src/components/map/map-utils.js
  • src/js/apis/c2c/index.js
  • src/js/libs/ol.js
  • src/views/documents/DocumentsView.vue

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Nayor Nayor changed the title Add outings density heatmap and tracks layers to the map feat(headmap): Add outings density heatmap and tracks layers to the map Sep 12, 2026
@github-actions github-actions Bot added the enhancement New feature or request label Sep 12, 2026
@Nayor Nayor self-assigned this Sep 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature: Outings density map (heatmap + GPS tracks)

1 participant