Google Summer of Code/2017/AcceptedProjects/pt assistant

From OpenStreetMap Wiki
Jump to navigation Jump to search

This page kept track of the progress of the work done on the Public Transport Assistant plugin (pt_assistant) by Giacomo Servadei, within the GSoC 2017.

The plugin, when this year's GSoC started, was highlighting and validating Public Transport routes. The main goal of the project was to make the plugin more useful also during the creation and editing phases of the mapping of Public Transport routes, as well as making it work also on foot and bicycle routes.

All the tickets closed during the period are here, while all the commits are listed here.

Main Results

Roundabout before and after the split

Besides fixing small bugs and making adjustments on what was already in the plugin, the following main additions have been made.

Roundabout Splitter

This functionality allows splitting a roundabout consisting of only one way, into all the pieces needed to restore all the PT routes that are traversing it. The surroundings of the roundabout are downloaded in order to take into account all the possible ways and relations.

Highlighted bicycle route

Support for foot and bicycle routes

The plugin now supports foot and bicycle routes. They are validated, and they are also highlighted when selected. Everytime the route splits into two one-way legs, this is detected and the two legs are colored with different colors.

Relation Sorter

The relation sorter takes all the members and sorts them in two steps. The first one sorts the ways, while the seconds sorts the stops (both stop positions and platforms) along with the order of the ways that are assigned to them.


The Timeline is divided into the three periods according to the evaluations.

First period (May 30 - June 23)

May 30 - June 2

  • fixed bug with layer being added and removed many times #14859
  • added a fix for the "Route should start and end with a stop_position" error #14861
  • added a delay between automatic fixes #14865
  • when showing fixing variants, the plugin will zoom to the whole stretch between 2 stops #14866
  • it is now possible to open highlighted routes in the relation editor with a shortcut without selecting them again #14873

June 5 - June 9

  • added edge selection map mode. the plugin selects the whole stretch between two crossings/forks. it also supports the future development of heuristics so that it can make decisions when coming at crossings based on the relation the mapper is working on #14904
  • started development of the test for checking if a route has been wrongly tagged as version 2 #14931
  • released a new version of the plugin with what has been done so far

June 12 - June 16

  • implementation and unit tests for the roundabout splitter #14933

June 19 - June 23

  • continued the work on the roundabout splitter #14933
  • partial sorting of messy routes #14957

Second period (June 26 - July 24)

June 26 - June 30

  • continued the work on the roundabout splitter #14933

July 3 - July 7

  • using good segments for fixing only from completely corrected routes #14990
  • started work on stop sorter #14977

July 10 - July 14

  • continued work on stop sorter #14977
  • changed the insertion point of nodes in the stop_position map mode #15005
  • split first or last way and update pt routes when using the add stop position map mode #15020

July 17 - July 21

  • fixed bug that caused crashes when adding stop_position on an preexisting node #15027
  • fixed bug that was preventing from uploading #15015

Third period (July 24 - August 21)

July 24 - July 28

  • Highlight bicycle, foot and horse routes #15068
  • continuity test for bicycle foot and horse routes #15073

July 31 - August 4

  • SegmentChecker and PTRouteDataManager refactoring
  • Check if the tags 'from' and 'to' match the first and last stops #15042
  • comparison of first/last stop names to from/to labels in route relations #15082
  • convert note and lines tags to route_ref in CreatePlatformNodeAction #15037

August 7 - August 11

  • added support for entry and exit only stops (preserve roles on those stop_positions and platforms)
  • Sort the stops of multiple relations at once #15142
  • fixed bug that prevented upload #15090
  • fixed sorting bug #15100
  • propose fix for closing gap when it is possible to do so by adding a single suitable way to the route relation #15088

August 14 - August 18

  • added railway=narrow_gauge as a suitable way for public_transport=train #15103
  • fixed bug of the from to tag check #15166
  • Propose fix for route with tag fixme:relation=order members #15171
  • fixed bug with relation sorter #15176