3.5 KiB
3.5 KiB
Arbejdsplan for kort7
Mål
Bygge en løsning med to samtidige kortvisninger over samme positionsdata, hvor hvert kort repræsenterer sit eget perspektiv på usikkerhed.
Principper
- Samme køretøjspositioner og tidslinje i begge kort
- Hvert kort har sit eget usikkerhedssæt
- Zoom og pan skal kunne ske uafhængigt i hvert kort
- Visning skal være viewport-drevet, ikke bundet til et bestemt geografisk udsnit
- UI'et skal beskytte læsbarheden, også ved meget store usikkerheder
Funktionel plan
1. Datamodel
- Udvide
data.js, så hver observation har:- fælles position, retning, hastighed, timestamp
uncertaintyAuncertaintyB
- Sikre at begge usikkerheder hører til samme observation i streamen
2. Layout
- Opdatere
kort7.htmltil to separate kortcontainere - Give hvert kort sin egen HUD/indikatorzone for køretøjer uden for viewport
- Beholde fælles styring til play/pause/reset
3. Rendering-arkitektur
- Omskrive
app.js, så rendering sker per map-instans i stedet for globalt - Lade begge kort abonnere på samme simulerede tid og samme positionsstream
- Lade hvert kort bruge sit eget usikkerhedsfelt
4. Viewport-logik pr. kort
For hvert køretøj og for hvert kort skal systemet afgøre:
- inside: køretøjet er inden for viewporten
- possible: køretøjet er uden for viewporten, men usikkerheden overlapper viewporten
- outside: køretøjet og dets usikkerhed er irrelevante for viewporten
Denne vurdering skal genberegnes:
- ved hver dataopdatering
- ved zoom
- ved pan
5. Visuel adfærd
- Inside:
- vis køretøjet på kortet
- vis trail
- vis transparent usikkerhedscirkel omkring køretøjet
- Possible:
- skjul køretøjets normale markør på kortet
- vis en hjørneindikator i det relevante kort
- indikatoren skal vise hvilket køretøj der muligvis kan være i området
- gerne med farve, navn og retning/side i forhold til viewporten
- usikkerhed på kortet kan evt. stadig vises diskret, hvis det giver mening
- Outside:
- vis hverken markør eller hjørneindikator
- trail kan tones ned eller skjules
6. Håndtering af store usikkerheder
- Undgå at enorme usikkerheder ødelægger læsbarheden
- Klip visning naturligt til viewporten
- Brug lav opacity for store usikkerhedsflader
- Lad hjørneindikatoren være den primære forklaring, når centrum ligger uden for kortet
7. Sammenligning mellem perspektiver
- Et køretøj må gerne være:
- synligt på kort A
- kun en mulig tilstedeværelse på kort B
- eller omvendt
- Dette er en ønsket effekt, fordi forskellen mellem perspektiverne netop skal være tydelig
Implementeringsrækkefølge
- Gemme arbejdsplanen
- Opdatere datamodellen i
data.js - Splitte
kort7.htmltil to kortviews - Refaktorere
app.jstil to renderingskontekster - Implementere usikkerhedscirkler per kort
- Implementere hjørneindikatorer per kort
- Teste zoom/pan og dynamiske overgange mellem inside/possible/outside
- Finjustere styling og læsbarhed
Åbne designvalg
- Om hjørneindikatorer skal ligge i et fast hjørne eller langs den nærmeste kant
- Om store usikkerheder altid skal tegnes som cirkler på kortet, eller nogle gange kun repræsenteres via indikator
- Hvordan vi bedst navngiver de to perspektiver i UI’et
- Om trails skal vises ens i begge kort eller tones forskelligt
Kort version
Samme data. To kort. To forskellige usikkerhedsperspektiver. Dynamisk viewport-logik. Hjørneindikatorer for mulige off-map køretøjer.