mapbox / mapbox/nepomuk

implement route annotation

Open
#98 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Backend Feature Request Starter Task
Dominant language
C++
Stars
24
Forks
7
PR merge metrics
No merged PRs in 30d

Description

The routes.txt (see [reference](https://developers.google.com/transit/gtfs/reference/routes-file)) offers a lot of information for lines, which can even be augmented with information from the trips.txt (see [reference](https://developers.google.com/transit/gtfs/reference/trips-file) for headsigns).

We should allow access to this information in an annotation class. The annotation should allow requesting all stored information from routes.txt and trips.txt that is purely descriptive.

This tasks requires the implementation of a `line_annotator` class to be constructed in the master_service, adding all information from the routes.txt / trips.txt to be accessed from line_ids.
I would expect that remembering a trip-id for every line should simplify the efforts to:

- [ ] remember trip id for every line during creation of line_tables
- [ ] add annotation tool for lines
- [ ] implement mapping from `LineID` -> `TripID`
- [ ] construct internal mapping from `TripID` -> `RouteID`
- [ ] store appropriate information to be accessed via `RouteID` / `TripID`

The internal mappings should hide any translation from `LineID` into any other type to access the data but simply allow accessing headsigns, route names and descriptions from the `LineID` itself.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing master_service and the line_tables creation path, then review the routes.txt and trips.txt fields referenced in the issue. The work is complete when a line_annotator maps LineID through the relevant trip and route data and exposes descriptive route names, descriptions, and headsigns by LineID.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend, data
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.