Introduction to JOSM Route Visualization
Hi, this diary is for showing what I have done in GSoC 2022. Two months went so fast that I suddenly realize the final date has come. But I still want to follow the guidance and try something I haven't done before, and I can't wait to show the power of this plugin and some new functions that help.
JOSM route visualization plugin is for displaying the full picture of the public transport routes, which is convenient for users to query and greatly improves the efficiency of route maps and members modification.
Checking the relevant function, you can open the relation editor of some route or public transport objects , and then grasp a big picture of the distribution of routes by specially enhanced image instead of a list of way members. In the meanwhile, the path-finding algorithm and logic handling is great for users to choose the next way to extend existed routes from given options rather than add ways needed manually.
First Half Summary
- Fix the problem that target route figure is under the layer of other irrelevant models.[merge_request1][merge_request2]
- Make the ways under the route relation of same type as the selected relation of route more evident and add waterway features.[merge_request2]
- Mark the selected stop in main window[merge_request3]
- Listing distance from next and previous stops and relation routes in the dropdown of clicked stop[merge_request4]
Second Half Summary
- Add turn restriction to guarantee path-finding logic to avoid ways it shouldn't be turning to. [merge_request5]
- Add access restriction to guarantee path-finding logic to avoid ways that have no permission for route extension according to transport mode match.[merge_request5]
- Handling Roundabout[merge_request6]
Effect Contrast (Part of visual effects display)
Target route floating problem:
Route figure enhancement:
Stops distance and related routes showing:
The turn retriction below is no-right-turn
The upper branch is labeled [highway:primary] which allows bus route extension but [bus:destination] which means the bus route is not permitted. So the path-finding logic will find another path to destination.
Roundabout display error:
There shouldn't be any breakpoint in roundabout.
One-way path-finding logic on roundabout
The roundabout in the picture only allows driving counterclockwise.
Things I Have Learned
- how to use DevOps platform
- The CI/CD pipeline to integrate qualified code into main source
- The Swing APIs to improve UI
- More familiar with Java development environment
- Basic data structures and algorithms
- The way of thinking how to analyze the problem and express it correctly.
First of all, I would like to say that I really appreciate the help of my mentors Michael Zangl and Polyglot. From the start when I wrote my proposal and discussed with them, they have been really willing to help though sometimes there is not much time left before the deadline. During the project, we kept in touch very frequently. My mentors were very concerned about my work progress, urged me and patiently guided me step by step （although my progress was never faster than planned hahaha） which I am really touched.
And I am grateful to GSoC program to give me a chance to understand how the whole process of product goes which is very beneficial for my future learning and understanding of programming.
This is really a platform very friendly and can mobilize more people to participate in the programming, and let me experience its charm. Although my ability and contribution were quite limited, I still gained satisfaction and learned a lot of knowledge.
Final thanks to OSM community, it is very enjoyable to be in.