Hvor langt er du?

Jeg arbejder stadig det meste af tiden med at gøre app'en nemmere at bruge for blinde men er langsomt begyndt at kigge lidt fremad på nogle nye ideer. En af de ting jeg tænker måske at kigge på lidt senere på året er at få app'en til at kunne følge med i hvor langt du er på en rejse.

Jeg er ved den absolutte begyndelse af at finde ud af hvordan det skal fungere og der hvor jeg er startet er med at kigge på: hvis jeg kender din position og ved hvor en rute går hvordan finder jeg så ud af hvor på ruten det svarer til? Den tilgang jeg har forsøgt mig med i dag virker okay lovende. Jeg deler ruten ind i linjer mellem hvert par af stop der kommer efter hinanden og du finder ud af hvilke stop du er mellem ved at finde det linjesegment der er tættest på dig og så tage stoppene i hver ende.

Jeg har afprøvet det ved lave et lille program der kan tage et billede hvor der er indtegnet nogle linjesegmenter i forskellige farver og så tegner den de områder der hører til hver segment.

Der er lang vej igen men det ligner et sted at starte. Næste trin er at finde ud af: okay du er mellem de her to stop – men hvor meget af vejen mellem dem har du tilbagelagt?

Nærmeste færdig

Bare en kort opfølgning: det er med i næste opdatering at man får vist de nærmeste transportformer først når man søger på ruter. Her er hvordan rækkefølgen er i Kastrup, Aarhus C, Frederikshavn og Ystad:

Nærheden mellemregninger

Jeg blev færdig med koden til at kunne finde hvilke trafikselskaber og transportformer der er i nærheden i sidste uge. Jeg mangler stadig at binde det ind i brugergrænsefladen, det gør jeg i dag, men nu er funktionaliteten der i hvert fald sådan at hvis man giver et punkt og en radius kan man få en liste tilbage af hvilke trafikselskaber og transportformer er der i det område. De er sorteret efter omtrent afstand hvor omtrent betyder i værste tilfælde op til +/- 10 km.

For at checke om resultaterne ser rimelige ud har jeg prøvet lidt forskellige steder rundt i Danmark og er blevet overrasket et par gange. Her er et par eksempler.

Aakirkeby:
$ atb query_grid --type agencies --radius 50 55.070895 14.920060
+----+---------+------------------+
| id | dist_km | name             |
+----+---------+------------------+
| 0  | 0       | Bornholms Trafik |
| 28 | 0       | Rute700          |
| 9  | 15      | Mols-Linien      |
+----+---------+------------------+
$ atb query_grid --type route_types --radius 50 55.070895 14.920060
+----+---------+-------+
| id | dist_km | name  |
+----+---------+-------+
| 3  | 0       | BUS   |
| 4  | 15      | FERRY |
+----+---------+-------+
Mols-Linien på Bornholm? Det viser sig at den er god nok -- Rønne-Ystad er teknisk set Mols-Linien.

Skagen:
$ atb query_grid --type agencies --radius 50 57.724226 10.598802
+----+---------+------+
| id | dist_km | name |
+----+---------+------+
| 3  | 0       | NT   |
+----+---------+------+
$ atb query_grid --type route_types --radius 50 57.724226 10.598802
+----+---------+-------+
| id | dist_km | name  |
+----+---------+-------+
| 2  | 0       | TRAIN |
| 3  | 0       | BUS   |
| 4  | 35.3553 | FERRY |
+----+---------+-------+
Kun et trafikselskab men tre transportformer? Den er osse god nok, NT har både busser, tog, og færger.

Aarhus C:
$ atb query_grid --type agencies --radius 50 56.154194 10.214894
+----+---------+-------------+
| id | dist_km | name        |
+----+---------+-------------+
| 1  | 0       | DSB         |
| 3  | 0       | NT          |
| 7  | 0       | Midttrafik  |
| 10 | 0       | Arriva tog  |
| 6  | 29.1548 | Rejseplanen |
| 25 | 32.0156 | Samsø Bus   |
| 19 | 50      | Sydtrafik   |
+----+---------+-------------+
$ atb query_grid --type route_types --radius 50 56.154194 10.214894
+----+---------+-------+
| id | dist_km | name  |
+----+---------+-------+
| 2  | 0       | TRAIN |
| 3  | 0       | BUS   |
| 5  | 0       | TRAM  |
| 4  | 29.1548 | FERRY |
+----+---------+-------+
Ikke de store overraskelser der andet måske end at Samsø er tættere på Århus i lige linje end jeg ville have troet -- kun 30 km.

Frederiksberg:
$ atb query_grid --type agencies --radius 50 55.673477 12.521350
+----+---------+-------------------------------+
| id | dist_km | name                          |
+----+---------+-------------------------------+
| 1  | 0       | DSB                           |
| 4  | 0       | Movia                         |
| 13 | 0       | DSB S-tog                     |
| 14 | 0       | Metroselskabet                |
| 28 | 5       | Rute700                       |
| 17 | 5       | Gråhundbus                    |
| 12 | 10      | Movia                         |
| 23 | 28.2843 | Öresundståg                   |
| 22 | 40.3113 | Sporvejsmuseet Skjoldenæsholm |
| 6  | 41.2311 | Rejseplanen                   |
+----+---------+-------------------------------+
$ atb query_grid --type route_types --radius 50 55.673477 12.521350
+----+---------+---------+
| id | dist_km | name    |
+----+---------+---------+
| 1  | 0       | METRO   |
| 2  | 0       | TRAIN   |
| 3  | 0       | BUS     |
| 6  | 0       | S_TRAIN |
| 4  | 5       | FERRY   |
+----+---------+---------+ 

Nærheden

Denne uge har jeg arbejdet på at gøre A til B nemmere at bruge for blinde. Det lyder måske langhåret men jeg fik en masse feedback sidste uge jeg går ud fra og det der skal laves om er ikke så omfattende som jeg havde frygtet. Det der er langhåret ved det er at selv hvis du ved hvordan du gerne vil have din app til at fungere er TalkBack på android uhyggeligt tungt at danse med.

Som en afveksling når jeg bliver frustreret er jeg begyndt at arbejde på noget jeg længe gerne har villet lave. Der er flere steder jeg viser lister af ting hvor det der er relevant afhænger af hvor du befinder dig i landet. F.eks transportformer: hvis du er i København er det typisk relevant at se metro, det er det ikke hvis du er i Århus. Tilsvarende er det typisk relevant at se letbanen hvis du er i Århus men ikke i København. Tilsvarende med trafikselskaber: hvis du er i Aalborg er det typisk mere relevant at se NT end Fynbus. Og så videre. Så jeg vil gerne kunne ordne listerne baseret på hvor du er.

For at kunne det har jeg brug for at vide hvad der er relevant forskellige steder i landet og kunne slå op, givet et bestemt sted brugeren befinder sig: hvad er relevant lige her. Min løsning er i store træk at lave nogle små, meget grove, kort som giver hvad der findes forskellige steder. Her er kortene for hvilke transportformer der findes, der er et for hver type:

De er, i rækkefølge, metro, tog, bus, færge, letbane, og s-tog. Tilsvarende gemmer jeg kort der giver hvilke trafikselskaber der er i hvilke dele af landet, her er et udsnit:

De er Samsø Bus, Arriva, Sydtrafik, DSB, og Movia.

Hvis jeg kan finde ud af at få det til at spille i forhold til at bede om den nuværende position (det er altid langhåret på grund af tilladelser og den slags) vil transportformer blive vist i rækkefølge i forhold til hvor man befinder sig. Trafikselskaberne bliver ikke brugt endnu men det kommer på længere sigt.

Klynger af stop

I forbindelse med at jeg har arbejdet på at finde naboerne til et stop har jeg osse indført noget der hedder "klynger" af stop. En klynge er nogle stop i nærheden af hinanden der hedder det samme. Det er næsten altid par af stop, et på hver side af vejen, men ikke altid. Den største klynge er Slagelse St. (Ndr.Stationsvej) hvor der er 17 stop lige ved siden af hinanden der alle hedder det samme:

Problemet før var at når man søgte efter et stop fik man ofte flere og fordi de hedder det samme er det ikke til at hitte ud af hvilket der er det rigtige. Efter den næste opdatering bliver stop i den samme klynge ikke vist individuelt men kun en gang. Her er et eksempel på før og efter:

Det burde gøre det lidt nemmere at finde det man leder efter.