Viewport selection, polyline clip, project and simplify #40
Labels
No labels
area:companion
area:docs
area:shared
area:tooling
area:watchapp
blocker
kind:chore
kind:feature
kind:spike
kind:test
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
robert/PedalPebble#40
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Prepare a map frame small enough to send once a second.
Acceptance criteria
int16pairsFiles
companion/.../map/ViewportRenderer.ktNotes
Vector, not raster: a 200x228 bitmap is roughly 45 KB against an 8000 byte AppMessage cap and a few KB/s of Bluetooth.
Update — 2026-09-02: send geometry, not screen coordinates
The phone no longer projects (D39). It sends a slice of the route in a stable metric frame and the
watch projects it.
Three problems this fixes: the phone was never told the watch's screen geometry; zoom and re-centre
were Bluetooth round-trips, making NFR-P6 unsatisfiable; and a dropout froze the map.
MAP_ANCHOR_LAT/MAP_ANCHOR_LONplusint16decimetre offsets east/north of theanchor — ±3.2 km of range, more than any viewport offered
SCREEN_W/SCREEN_H, not to a hard-coded 200×228 pixel gridper few hundred metres — not at 1 Hz
MAP_CUES, rider position asMAP_POS, in the same frameThis is what takes the map off the critical path for bandwidth: link traffic for it drops by roughly
an order of magnitude.