← Retour aux issues

About transit in Cartes

publié le
Avatar github de laemlaem

The base ingredients for great transport calculations are these :

    1. quality GTFS data
    1. an instance of a routing engine loaded with these GTFS
    1. a transit plans and general purpose GTFS API
    1. integrating transit in the end-user app

GTFS is the most widely used standard. Transport agencies must publish GTFS datasets in France. Or Netex, but we haven't yet seen a Netex-only agency. We do have GTFS data for France, with the transport.data.gouv.fr initiative, but the quality is average. There are collisions between agencies on GTFS ids, some networks can disappear without notice, some loose their stop coordinates, some are not published at all (e.g. ferries) in contradiction to the law. We're following closely what's being done by the Transitous initiative, but their aim is to include all data without reviewing the output : what works works, what doesn't does not. We're focusing on France in order to be able to review the output, correct problems. It's already a big task, we're late on lots of networks but still planning to have 90 % of France in 2025, but we'd need offshore human presence to do the same in other countries. Preparing the GTFS datasets, understanding them, is quite hard. Once they're correct, injecting them in the routing engine is easy.

  1. We're using Motis. Transitous is based entirely on Motis, it's a data collection that is injected in Motis. Transitous did not exist back then, but our buildConfig script in cartesapp/server is basically what Transitous is, but with a more specific country scope, not international. We're doing the same kind of plumbing. We'd like to provide Transitous's official server as a fallback when ours fails or when ours (France) is out of scope or goes down. As for the routing engine, when we started the project, we did investigate OTP, Motis, and also Mobroute. OTP has more history but is heavier : we couldn't make it start on our server while Motis worked without problems. We did submit the question of the differences between both https://github.com/motis-project/motis/issues/423. We found some cool UIs (see 4) but none was a generalist modern map application, and integrating UIs together is almost impossible (iframes makes for poor UX, and the scope goes fare beyond simple framework components). We did have the impression that Motis was more mature than Mobroute at the time. Mobroute had no working demo, Motis had and still has a great Europe demo server. Mobroute seems to focus on offline calculation, which is perfect for Organic and Osmand but not necessary for us. We're not too tied to Motis (see 4) but we've been greatly enjoying their work, we've had a call with Felix the main developer, who fixed some problems for us and published the v2 of Motis that we have yet to integrate.

  2. Transit routers provide APIs to find routes from A to B, but do not offer transit maps. Our intuition is that we must provide maps, also called "plans". We also believe it is a huge funding perspective as e.g. each French city administrations spends hundreds of thousand euros to build digital transit maps. So we've built our own API at cartesapp/server to display barebone transit maps, covering about 1/2 of France right now. Organic has metro maps, but to our knowledge, no bus maps. Buses are 99 % or the worlds transit. Our API also provides the "geoStops" route, enabling us to show next departures on bus stops on the map. We also show a map of our our areas covered (https://cartes.app/?style=transports). These are basic features that we want to provide next to classical A->B routing.

  3. Most of the work goes there. Building good interfaces is harder than plugging them on the quality FOSS transit planning software. Talented people do great stuff on server-side transit projects. Our v2 enables users to chose how they want to go from point A to the next stop station : walk, bike, car. In the future, we could switch from Motis to another calculator, if it appears that another calculator could resolve big problems or add major functionality, but for the time being Motis is great and we've not even yet transitioned to v2. It would take days, but not weeks or months. Integrating transit to a map application's interface, with UX tests and iteration, takes months, that's the bottleneck in our experience.

  1. Avatar github de laemlaem

    GTFS and transit are handled in https://github.com/cartesapp/serveur


✏️ Participer à la discussion