Een website op een telefoon is niet genoeg
map.flights werkt in de browser van elke telefoon, en toch zijn er dingen die alleen een app kan. Hij laat je weten dat het vliegtuig dat je volgt net is opgestegen. En in de modus Boven mij hef je de telefoon gewoon naar de lucht: het kompas laat zien in welke richting en hoe ver weg elk vliegtuig is, de camera kan ze desgewenst direct in beeld benoemen, en de weergave Laatste uur toont wat er overkwam voordat je je telefoon zelfs maar had gepakt.
Het kompas van een telefoon is magnetisch, en het magnetische noorden is niet het ware noorden. Het verschil hangt af van de plek: een paar graden in Midden-Europa, makkelijk meer dan twintig in het noorden van Canada. De app neemt de richting naar het ware noorden, en als de telefoon die niet kan leveren, zegt de app dat. Staat het kompas ernaast, dan stelt hij voor om met de telefoon een liggende acht in de lucht te tekenen.
Je locatie blijft ondertussen in de telefoon. Richtingen worden op de telefoon zelf berekend, en de server krijgt alleen een vraag over de omgeving, afgerond op zo’n honderd meter. De app zegt dat meteen in de vraag, nog voordat hij om toestemming vraagt.
Fotografen zullen transits waarderen. De zon en de maan zijn aan de hemel elk ongeveer een halve graad breed, en een verkeersvliegtuig steekt hun schijf over in een fractie van een seconde. Website en app berekenen uit live posities welk vliegtuig in de komende tien minuten de schijf zal kruisen, gezien vanaf precies de plek waar jij staat. De voorspelling is een rechte lijn: een vliegtuig dat afbuigt of begint te dalen, maakt haar ongedaan, en de hoogte die een vliegtuig meldt, is maar zo nauwkeurig dat de fout op twintig kilometer ongeveer zo groot is als de schijf. Daarom toont de lijst ook bijna-treffers, en waar de lens heen moet wijzen, blijft de keuze van de fotograaf.


De instapkaart in je telefoon
De streepjescode op een instapkaart volgt één wereldwijde standaard. Hij bevat de naam van de passagier, de boekingscode, van waar en naar waar, de maatschappij, het vluchtnummer, de stoel en de dag van vertrek. De dag echter alleen als het nummer van de dag in het jaar, helemaal zonder jaartal: 17 juni is dag 168.
De app leest de code met de camera direct in de telefoon en berekent het jaar zelf, want een instapkaart is bijna altijd voor de eerstvolgende zo’n dag. De naam blijft in de telefoon, de boekingscode wordt helemaal niet opgeslagen, en de server krijgt alleen de maatschappij, het vluchtnummer en de luchthaven.
Dan komt het mooiste deel. Het vliegtuig dat jou gaat vervoeren, is meestal nog ergens in de lucht als een andere vlucht. Als we het vinden, toont de app boven de kaart dat jouw vliegtuig nu van Amsterdam naar Praag vliegt, met een geschatte landingstijd. Of het je vertrek haalt, zegt de app niet: dat zou een gok zijn, geen meting.
Gemaakt voor duimen
Bijna niets komt zomaar van de website mee. Pijltjesknoppen zijn zinvol met een muis, op een telefoon wil niemand ze. Het vluchtpaneel volgt je vinger en blijft waar je het loslaat, panelen sluit je met een veeg, door de tijdlijn van het afspelen te slepen spring je door de tijd, en een aanraking van de kaart pauzeert het volgen van een vliegtuig.
Links van de website openen direct in de app. In september haalde de app de website in een paar golven in: spotterplekken, vluchtanomalieën, groepsmodus met tot zes vliegtuigen, verbindingen tussen steden en de 3D-weergave van luchthavens.


Een stukje kaart op andermans site
Spotters streamen luchthavens op YouTube, vliegclubs hebben websites, kleine luchthavens hebben geen budget voor een eigen vertrekbord. In plaats van reclame boden we ze een stukje kaart aan: kopieer een paar regels uit de configurator en er verschijnen live vliegtuigen op de pagina. De eerste widget bestond op 11 augustus, nog voordat de site accounts had. Eind september waren er zes soorten: een kaart, vertrek- en aankomstborden, een badge met het aantal vliegtuigen in de buurt, de status van één vlucht, een stationskaart en de vloot van één maatschappij, in drie thema’s.
Een widget leeft op een site die niet van ons is. Hij mag die niet vertragen, haar stijlen niet breken en haar bezoekers niet verzamelen. Daarom laadt hij pas als de lezer ernaartoe scrolt, leeft hij in een eigen frame waar hij niet bij het uiterlijk van de hostpagina kan, en op een verborgen browsertabblad vraagt hij nergens om. Heeft een bezoeker JavaScript uitgeschakeld, dan blijft er op zijn plek een gewone link naar map.flights staan.
Het bord toont de tijd van de luchthaven, ook aan een bezoeker op een ander continent. Klik op een vliegtuig en zijn details openen direct in de widget: op een telefoon schuift de kaart van onderen omhoog, één vinger scrolt de hostpagina en twee vingers verschuiven de kaart. Het logo blijft in de hoek, ook als de host de kop verbergt.


De vermelding van de databronnen in een widget is niet uit te zetten. De licenties zeggen dat ze met de data meereist, dus reist ze ook mee naar andermans site.

