Idea: human brains are good at pattern matching and figuring out where things are on a very simple map. Use GPS to provide basic data, and allow quick panning and zooming on that date, to "feel" the geometry of a place. GUI principle: Operation is tap or touch-drag: - touch Zout, drag down = zoom out (using logarithmic scale) - touch Zin, drag up = zoom in - touch Pan, drag anywhere = pan - touch Rotate, drag = rotate by relative angle - touch Longer, drag right = increase tail length - touch Shorter, drag left = decrease tail length - tap Time/Distance = switch tail unit of measure between time and distance (switch preserves on-screen tail length, so we can use this to measure speed) - tap Menu = bring up menu - dragging into a touch/tap zone has no effect, only touch/tap has Indicators: - Scale = indicates scale of trace drawn. NNN for meters, NNNk for kilometers - Time/Distance = total length of tail shown - Compass = rotation of canvas Menu: - Reset = center on current position, north is up, scale = 100m - Exit Trail shown: - current position if fat dot, maybe in different color than rest - last GPS fixes of specified length as drawn as line - last segment is interpolated (i.e., the tail length shown is exact) Layering: - touch zones (central circles, compass, zoom and tail length areas and start ellipses) are at bottom - tail (uses entire screen) - current position (can be on entire screen) - indicators Interaction: - updates must be instantaneous (we we can't do this, simplify further, e.g., by only showing trail head and end) - all indicators and the trail are updated on all actions - trail is updated in real time, from GPS - canvas does not move when current position changes (maybe make this an option) - therefore, we keep the interface very very simple - when dragging, allow some departure from area (e.g, Zin-drag does zoom, even if drifting out of the zoom area) - dragging works at pixel accuracy, e.g., zoom is smooth - full-screen application, to maximize information Future extension (this is where it gets sexy): - add ability to show trail of other person, received via GPRS or (with manual trigger, because it's expensive) SMS - likewise, send own position to other person