Test application for the Makepad MapView widget - a cross-platform map component with OSM tile rendering.
Working Features:
- OSM tile loading and rendering
- Mouse drag to pan
- Scroll wheel to zoom (cursor-anchored with dampening)
- Touch pan (single finger)
- Pinch-to-zoom (two fingers)
- Smooth fractional zoom with tile scaling
- Fallback tile rendering (shows lower-zoom tiles while loading)
- Dynamic min zoom (map always fills viewport)
- LRU tile cache (512 tiles max, ~128MB)
- Inertial scrolling (momentum after pan gesture)
- Map markers with labels (city pins with text)
- Marker click detection (shows clicked marker in panel)
cargo run| Input | Action |
|---|---|
| Mouse drag | Pan the map |
| Scroll wheel | Zoom in/out |
| Touch drag | Pan (mobile) |
| Pinch | Zoom (mobile) |
| Click marker | Show marker info in panel |
makepad-map-codex/
├── Cargo.toml # Project config (depends on makepad-guofoo)
├── src/
│ ├── app.rs # Test app with MapView widget
│ ├── lib.rs # Library root
│ └── main.rs # Entry point
└── docs/plans/
├── 2026-01-20-makepad-map-widget-design.md # Architecture design
└── 2026-01-21-fix-map-initial-load.md # Bug fix plan (completed)
The MapView widget implementation is in the makepad-guofoo repository:
/makepad-guofoo/widgets/src/map_view.rs
- Keyboard navigation (arrow keys to pan, +/- to zoom)
- iOS/Android native backends
See docs/plans/2026-01-20-makepad-map-widget-design.md for full roadmap.