#OSM

Previously, in this post, I mentioned that I would continue improving the modules. Here, I’ll outline the overall technical plan.

Goals and Approach

Let me summarize the general idea. Let’s assume that buildings and roads are fixed for now—after all, this is a public transport editor, and I currently lack the resources to handle an all-purpose editor.

We can introduce the concept of “editing mode,” starting with defining a public transport editing mode. Logically (even though the underlying implementation involves editing roads), this mode will operate on the existing paths and buildings, adding new information instead of modifying existing ones. Here’s what we need to achieve:

  1. Create new public transport routes:

    • Manually select or create some stops to form a route consisting only of stops.
    • Manually select paths in sequence to define the route. This might involve drawing operations, such as flexible selection via mouse dragging. Bidirectional routes might need additional handling.
    • Automatically generate routes based on stops. I haven’t figured out how to implement this yet.
    • Modify route metadata, including names, operators, etc.
  2. Edit existing routes:

    • Add, delete, or reorder stops.
    • Extend, shrink, delete, or reconnect paths.
    • Modify route metadata, including names, operators, etc.
  3. Delete routes:

    • Direct deletion will suffice for now. In the future, we might consider merging routes.

The above covers single-route operations.

Read More

(AI generated)
This report is also two weeks late. Actually, in terms of real progress, the project is nearly complete. However, I’ll sync the progress to when this report should have been published.

Project Progress

Filter and Collection

Completed the filter part, filtering the originally requested OSM bbox data into collections such as public transport and highway.

Considering that the editor primarily serves public transport, there’s no need to focus too much on editing building information and other data. The main focus is on highway and public transport. After referencing the OSM wiki, I wrote filters that use tag information to filter and categorize data.

For filtered data that needs to be displayed and edited, established a feature tree structure to maintain the tree relationships of OSM data, facilitating display and editing.

Read More

(AI generated)

Unfortunately, this report is two weeks late, so I’ll be publishing two reports together (the next one is also being written).

Project Progress

As of when this report should have been published, I had completed the React restructuring and preliminarily determined the composition of the UI editing module.

Restructuring

Deciding to restructure after one month into the project, with half of it already written, was certainly not an easy decision. However, the original technical choices couldn’t support the project’s continued development—not that it was technically impossible, but it would require more time and the complexity would become unmanageable.

Read More

(AI generated)

It’s been over two weeks since the last report, so it’s time to sync up on current progress.

Project Progress

The core modules have been largely finalized, allowing us to enter the latter stage of development. Future work will mainly involve adding new features within the existing framework.

First, we got the rendering part working, though some details still need polishing, such as styles and controlling rendered elements. These will be addressed alongside future functionality to ensure styles align with editing logic.

Second, I wrote an OSM API module that wraps some OSM interfaces with Promises and parses returned XML into JS Objects for easier program use.

Read More

(AI generated)

Two weeks of development have passed quickly, and it’s time to write a bi-weekly report.

Project Progress

The project is still in early development stages. While there isn’t a usable prototype yet, we can already render some test data.

The rendering implementation has been largely determined, and testing shows we can render points and paths.

However, some features haven’t been implemented yet since other module interfaces aren’t fully defined. For example, highlighting path segments individually rather than selecting the entire path as in the iD editor. Polygon rendering also hasn’t been implemented yet as it requires the editing module interface.

Read More

(AI generated)

In this OSPP project, I will develop an OpenStreetMap public transport relation editor based on modern frontend technology stack. I hope to make some contributions to the OSM community.

Project Goals

The goal of this project is to develop a cross-platform editor using modern frontend technology stack. This editor should be easy to operate with intuitive interactions. During the project, we will collaborate with the OSM China community to ensure high standards in both interaction design and functionality implementation.

Project Implementation

Basic Project Framework

Read More

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×