[00:00.000 --> 00:24.360] So, to have enough time for our last routing specialist now from Finland, we would start [00:24.360 --> 00:25.360] on time. [00:25.360 --> 00:26.360] Yes? [00:26.360 --> 00:32.200] Please, no, it's not working because it's for the camera. [00:32.200 --> 00:35.880] I'm screaming because we don't have an audience here. [00:35.880 --> 00:38.360] Yeah, it's not a microphone. [00:38.360 --> 00:44.400] Yeah, but yeah, let's welcome our last, more like the speaker from Finland. [00:44.400 --> 00:45.720] It's Joel Lappallian. [00:45.720 --> 00:48.160] I hope I speak your name well. [00:48.160 --> 00:50.640] And yeah, we are really glad to have you with us. [00:50.640 --> 00:56.040] Introducing Diki Transits to us, like from Finland we expect a lot because you are already [00:56.040 --> 00:58.600] known for great mobility solutions. [00:58.600 --> 01:04.280] And yeah, let's give him the chance to explain Diki Transits to us and highlight the really [01:04.280 --> 01:30.280] interesting components. [01:30.280 --> 01:33.800] Hello, hopefully you can hear me well. [01:33.800 --> 01:35.280] My name is Joel Lappallianen. [01:35.280 --> 01:40.000] I'm from Finland, a set, and I work as a developer on the OpenTrip planner and the Diki [01:40.000 --> 01:41.760] Transits projects. [01:41.760 --> 01:45.640] And today I'm here to talk about the Diki Transits project. [01:45.640 --> 01:47.600] So what is Diki Transits? [01:47.600 --> 01:55.080] It's an open source project that does multimodal public transportation, journey planning. [01:55.080 --> 01:59.240] It was founded in Finland around 2014 or 15. [01:59.240 --> 02:04.520] I have personally been working on the project since 2017. [02:04.520 --> 02:10.800] The goal of the project was to replace existing legacy property, journey planners, and the [02:10.800 --> 02:17.600] project is funded by three transportation authorities or sort of authorities in Finland. [02:17.600 --> 02:22.160] The project has, or the components of the projects have since been used elsewhere, for [02:22.160 --> 02:25.120] example in Germany. [02:25.120 --> 02:32.200] The project consists of user interfaces, which I'm going to talk more about in this presentation, [02:32.200 --> 02:35.800] and backend services and open APIs. [02:35.800 --> 02:39.800] So first a bit about the backend services. [02:39.800 --> 02:44.480] So for routing and much more, we are using OpenTrip planner. [02:44.480 --> 02:47.760] Hannes will have a presentation next about OpenTrip planner, so I'm not going to go too [02:47.760 --> 02:50.520] much into it now. [02:50.520 --> 02:57.400] For geocoding, we are using Pellias that we have further improved, so it deals with [02:57.400 --> 03:00.440] GTFS data and so on. [03:00.440 --> 03:06.600] And for maps, we are using this project called HSL Map Server, which uses Thileive GL and [03:06.600 --> 03:08.600] OpenStreetMap. [03:08.600 --> 03:13.360] And we also use OpenStreetMap for the geocoding as well. [03:13.360 --> 03:15.440] So now for the user interfaces. [03:15.440 --> 03:20.480] So first, this is the digit transit user interface. [03:20.480 --> 03:25.080] It's written in JavaScript and uses React. [03:25.080 --> 03:30.200] It's responsive, most of our users are on mobile devices. [03:30.200 --> 03:40.760] It's browser-based, and it's also meant to be, so you can use it with screen readers [03:40.760 --> 03:44.560] and so on. [03:44.560 --> 03:47.680] It's configurable, you can have different themes. [03:47.680 --> 03:52.120] My screenshots will be from different sites, so they will have different configurations [03:52.120 --> 03:53.800] and themes. [03:53.800 --> 03:56.640] So this is the front page on desktop. [03:56.640 --> 03:59.000] Here you can start the itinerary search. [03:59.000 --> 04:04.040] You can enter origin and destination, which can be like addresses or stops or whatever. [04:04.040 --> 04:08.280] And you can add some favorites or use favorites for locations. [04:08.280 --> 04:11.160] And then you can enter these stops near you pages. [04:11.160 --> 04:14.280] I will display later on what this means. [04:14.280 --> 04:21.360] And then you have this search box for stops and routes and bike rental station and bike [04:21.360 --> 04:23.200] and car parks and so on. [04:23.200 --> 04:28.440] I won't show those views now because the time is a bit limited. [04:28.440 --> 04:32.120] And on the map, if I would have tuned in a bit more, there would have been more shown. [04:32.120 --> 04:36.440] Now it's just showing some stations. [04:36.440 --> 04:40.960] Okay, so these are the itinerary views on mobile. [04:40.960 --> 04:47.080] The view on the left, it's showing the summary of the found results. [04:47.080 --> 04:51.560] It's showing multiple itineraries in this view and just like a summary of those. [04:51.560 --> 04:55.560] The length of the legs is based on the duration of the leg. [04:55.560 --> 05:02.240] And we support real-time data, so the screen numbers are real-time estimates. [05:02.240 --> 05:09.240] And this is multimodal, so in this suggestions there's buses, trains, metros, walking, there [05:09.240 --> 05:11.080] could be bike rental. [05:11.080 --> 05:16.920] And then we have this multimodal also split into separate suggestions on the top. [05:16.920 --> 05:22.040] There's cycling, there could be just walking, combining cycling with public transportation [05:22.040 --> 05:26.400] or combining cars with public transportation. [05:26.400 --> 05:31.160] And on the right, the view is shown when you click open some suggestions. [05:31.160 --> 05:35.280] It shows more details about the suggestions and it shows the map. [05:35.280 --> 05:40.600] If the trip was happening right now, we could display the relevant vehicle on map for the [05:40.600 --> 05:48.440] suggestions and yeah, there's more details here. [05:48.440 --> 05:52.640] This view is the stops near you page that I mentioned earlier. [05:52.640 --> 06:00.640] So we did some design and discuss with real users and they found this view to be useful. [06:00.640 --> 06:03.600] So we have split this into like different modes. [06:03.600 --> 06:07.520] It shows the next departures for buses in this view, but there's another view that shows [06:07.520 --> 06:12.240] for example trains or metro or whatever is available in the city. [06:12.240 --> 06:20.240] And there's also one view that shows the departures for your fare stops. [06:20.240 --> 06:25.400] And these stops are the stops that are near you or a selected location. [06:25.400 --> 06:30.800] And on the map it will show the vehicles that travel through the stops and also the bus [06:30.800 --> 06:37.200] lines. [06:37.200 --> 06:42.600] So here's an example how this digital unit UI can be integrated into different websites. [06:42.600 --> 06:46.640] This is the front page for the Helsinki Regional Transportation Authority. [06:46.640 --> 06:50.960] On the left side, we have the same components we had in the front page from the digital [06:50.960 --> 06:52.040] unit UI. [06:52.040 --> 06:55.480] This is drawn to shared components. [06:55.480 --> 06:57.800] So this only acts like an entry point. [06:57.800 --> 07:06.080] So once user does select locations here, he or she will be redirected into the digitized [07:06.080 --> 07:10.920] user interface. [07:10.920 --> 07:14.960] And here's another example how digitized UI can be integrated. [07:14.960 --> 07:18.840] This is done through an iframe widget. [07:18.840 --> 07:24.360] There's a view which can be used to generate this iframe snippets. [07:24.360 --> 07:30.240] And this is for general routing, but it's also possible to have only this for walking [07:30.240 --> 07:31.240] or cycling. [07:31.240 --> 07:39.120] So the user will be redirected to the correct view. [07:39.120 --> 07:43.000] This is another project, another user interface. [07:43.000 --> 07:48.640] Previously we called it virtual monitor, but now there's more called stop monitor, which [07:48.640 --> 07:50.720] kind of describes it better. [07:50.720 --> 07:58.520] So this stop monitor is meant for like businesses or private persons or public transportation [07:58.520 --> 07:59.520] authorities. [07:59.520 --> 08:06.160] So they can have this screen somewhere which displays the departures for the stops near [08:06.160 --> 08:07.760] that location. [08:07.760 --> 08:13.080] So this view is for, I should also mention that this is written with TypeScript and also [08:13.080 --> 08:15.200] used React. [08:15.200 --> 08:21.200] This view is for generating this view, the stop monitor view. [08:21.200 --> 08:25.880] In this you can have multiple stops on the same view and you can have multiple views [08:25.880 --> 08:28.840] that can rotate based on some time frame. [08:28.840 --> 08:33.400] So for every five seconds it will change which view is shown. [08:33.400 --> 08:39.280] And there's many options for layouts here. [08:39.280 --> 08:41.240] Here is just an example end result. [08:41.240 --> 08:46.640] You can have like this speed view where there's departures on the left and on the right this [08:46.640 --> 08:53.400] is for airport and on the bottom there's relevant alerts for that stop. [08:53.400 --> 08:58.240] And this stop can be modified later on, so once you have created this it's not really [08:58.240 --> 09:04.520] final, you can still do modifications. [09:04.520 --> 09:09.040] So what's next in the digitized project? [09:09.040 --> 09:13.560] We started the project so early on that Open Tree Planner only had version one out. [09:13.560 --> 09:17.880] So we are currently working on improving the support for using Open Tree Planner version [09:17.880 --> 09:18.880] two. [09:18.880 --> 09:22.200] It's already working but there's some optimizations that can be done. [09:22.200 --> 09:27.880] So the digitized UI that I showed it's like version two and we have version three that [09:27.880 --> 09:31.480] is better optimized for using Open Tree Planner two. [09:31.480 --> 09:36.560] And then we will have a possibility to have a map view on the stop monitor so you can [09:36.560 --> 09:43.200] have displayed the vehicles that are going to the stop so the user can see okay this [09:43.200 --> 09:48.080] vehicle is going here maybe I should start going to the stop. [09:48.080 --> 09:51.880] And then we will improve the support for first and last month services. [09:51.880 --> 09:57.480] So we have already been supporting like bike rental stations and in Germany they have added [09:57.480 --> 10:04.880] support for like scooter rentals, like floating vehicles and we will also focus more on like [10:04.880 --> 10:12.360] flexible public transportation so there's many types of services like that and this [10:12.360 --> 10:17.920] can include like taxis or stuff like that. [10:17.920 --> 10:24.120] So for more information you can visit d-transit.fi which contains some documentation relevant [10:24.120 --> 10:32.280] to the project and the repositories are hosted under this HSL development community GitHub [10:32.280 --> 10:37.760] account there's many projects there some are not digitized projects but if you search [10:37.760 --> 10:41.920] for digitized projects you will find the relevant ones. [10:41.920 --> 10:48.040] And we have this email address digitized at HSL.fi which if you send message there it [10:48.040 --> 10:51.880] will I will get the message. [10:51.880 --> 10:57.560] So thank you that was the presentation now there's time for questions if you have any. [10:57.560 --> 11:07.280] Yes for me it's interesting from your country that I would like to have this kind of information [11:07.280 --> 11:08.280] for Europe. [11:08.280 --> 11:09.280] Yeah. [11:09.280 --> 11:16.040] In community first and it would be interesting to have the best range to reach a place everywhere [11:16.040 --> 11:24.200] in Europe and it's not easy for the moment you have only national lines and so I remember [11:24.200 --> 11:30.720] it was 20 years ago when it was CEPRO with regional trains in Germany but they were slow [11:30.720 --> 11:39.360] and had problems with that also I know I know also to go from Brussels to Firebook in Brysgau [11:39.360 --> 11:46.560] in Germany it was CEPRO by the train in Germany and so on so all this kind of information [11:46.560 --> 11:52.480] and you plan to have to extend your project to the European level. [11:52.480 --> 11:58.280] So we might expand it to include Estonia for this finished project but there's still some [11:58.280 --> 12:04.480] issues with scaling this because if we are using multi-criteria search it doesn't scale [12:04.480 --> 12:09.160] to this continental scale yet on the machines we are running on. [12:09.160 --> 12:14.320] So there's some optimizations needed to get it work. [12:14.320 --> 12:35.120] This might be included in the first and last mile services I'm not quite sure on the details [12:35.120 --> 12:40.200] yet we are still on the like design phase on what we will support but that is an idea [12:40.200 --> 12:48.880] that we have discussed previously.