Alla fordon på kartan animeras mellan positionsuppdateringar för att ge en känsla av flyt. Tidigare användes en ease-out cubic-kurva: fordonen startade snabbt och bromsade in mot slutet av varje cykel. Det lät bra i teorin, men skapade ett problem.

Jämförelse av ease-out cubic och linjär easing — ease-out kryper de sista 50% av tiden

Datadriven analys

Genom att analysera 60 på varandra följande API-svar kunde jag mäta hur ofta varje fordonstyp uppdaterar sin position:

Med ease-out cubic tillbringade fordonen de sista 50% av varje animationscykel med att knappt röra sig — de såg ut att "krypa". Med 2 sekunders uppdateringsintervall betydde det en hel sekund av nästan-stillastående per cykel.

Linjär interpolering

Genom att byta till linjär interpolering rör sig fordonen med jämn hastighet under hela animationscykeln. Resultatet mätt med ett Puppeteer-baserat testverktyg som spårar markörrörelser pixelvis:

Båtprediktion

Båtar uppdaterar sin position bara var 6:e sekund, men kartan känner till deras hastighet och kurs. Genom att extrapolera positionen 3 sekunder framåt fyller kartan gapet och båtarna glider naturligt även mellan uppdateringar.