Convert the three interactive markers (yellow click, purple vehicle,
blue draggable pin) from per-client state to cross-client sync:
- Yellow click marker: PubSub broadcast on map click, all clients
subscribe and update signal-backed marker position
- Purple vehicle marker: single shared goroutine (sync.Once + RWMutex)
replaces per-client random movement so all clients see identical path
- Blue draggable pin: extra hidden input triggers server action on
dragend, which publishes new position via PubSub to all clients
Provides a Go API for interactive maps within Via applications:
- Plugin serves vendored MapLibre GL JS v4.7.1 assets
- Map struct with pre/post-render source, layer, marker, popup management
- Viewport signal sync (center, zoom, bearing, pitch) via hidden inputs
- FlyTo, SetCenter, SetZoom and other viewport setters via ExecScript
- Idempotent init script with SPA cleanup via MutationObserver
- Example app demonstrating markers, GeoJSON layers, and FlyTo actions