Google Summer of Code 2018 with OpenStreetMap [Phase- 2]
Hello! The details regarding my work during GSoC Phase 2 for my project which deals with OSM Public Transport Editor are described below:
Week 1: I continued with the work on highlighting the map data with certain validation rules which would help in fixing, mapping and migration to PTv2. Depending on the selected option this would allow simple visual validation during the whole editing process. The availability of different highlights will vary with the selected mode — Beginner/Expert. Highlights dealing with more complex edits will only be available in the expert mode.
I finalized the work on highlighting all stops/platforms which do not have name tags. Aiming to provide a seamless UX, I added an interface through which users can jump from one error location to another and correct it, instead of showing all the error highlights at once.
As the missing name highlight deals with simple correction, it is made to be available in both the beginner and expert mode. I also started the work on the highlight regarding the correction/completion of the route_ref tags. Currently, tooltips and different icons are used to help users navigate through the app. I also plan to add walk-through tutorials to the app. The tutorials will highlight specific buttons/areas around the page to recreate several scenarios which will be offered to the user to choose from.
Week 2: The route_ref tag should ideally mention the routes which are connected through that stop/platform, but often it is not used. Therefore, in order to encourage the mappers to add route references, I worked on a tool which makes it easier to fill everywhere semi-automatically by highlighting and suggesting the missing references. This was achieved by comparing the route_ref tags of platforms/stops with their parent relations. This particular highlight is only available in the expert mode.
Nearby routes are also available while filling up of missing references. If a nearby route is added, the route_ref tag is updated in addition to updating the route’s children members. To include nearby routes in the suggestions, more data is needed to be downloaded. In order to make sure that this does not negatively affect the performance of the application, I added device detection depending on which lesser data is downloaded in case of mobile users.
More highlighting options such as highlights which will help in migration to PTv2 will be added in the next phase.
Week 3: I started the work on route creation wizard which automatically creates a draft for the new route with the help of route_ref tags. This newly created route can then be modified if needed. The wizard is contained within a big modal and I dealt with rendering/downloading data in a second leaflet map in that modal.
The wizard displays the progress of the whole route creation process by breaking it up into multiple logical and numbered steps. By focusing the user’s attention on a single task, we hope that they are less likely to miss out important things and will hence make fewer errors.
The first step requires the user to select a particular area. This area is used for forming the suggested routes.
The user then browses through different available suggestions and eventually selects the one which he wishes to go forward with.
It is also possible to move backwards at any given step in order to avoid re-running of the whole wizard in case the user changes his/her mind.
Week 4: I continued the work on the route creation wizard. After selecting the route from the list of suggested route drafts, the user has the option to modify it. New members can be added by selecting them directly from the map. It is also possible to reorder the members by dragging items up and down the list. The resultant route highlight is updated on the map each time.
The last step deals with adding/removing tags from the route. Certain tags are pre-filled to further help with the process.
Later this tool is planned to also work with ways and will be enhanced by adding features such as automatically guessing the ways of the route, guessing the direction and dealing with adding stops on the correct side of the road.
Some of the remaining work regarding this wizard was completed in the beginning of phase 3. I look forward to contributing more to this application.
Thanks for reading! :)