-
-
Notifications
You must be signed in to change notification settings - Fork 353
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Incorporate LTN edits into map_model #1079
Comments
In-progress at https://github.com/a-b-street/abstreet/tree/ltn_map_edits. High confidence I can finish this with another uninterrupted day of work! |
dabreegster
added a commit
that referenced
this issue
May 1, 2023
…r the LTN tool. #1079 1) Merge intersection control and crosswalk edits into a larger intersection edit command. 2) Use FnOnce for edit_*_cmd, so we don't have to clone for no reason 3) Get rid of the old merge_zones hack 4) Track the original road state instead of changed roads, to be consistent with intersections These are breaking changes to the map edit format, without any backwards compatibility built-in. I'm giving up on that for now.
dabreegster
added a commit
that referenced
this issue
May 1, 2023
1) Move a bunch of types into map_model, adding them to the edit commands (in a totally backwards incompatible way) 2) Rip out the ad-hoc proposal and undo system in the LTN tool, and just use MapEdits
dabreegster
added a commit
that referenced
this issue
May 1, 2023
1) Move a bunch of types into map_model, adding them to the edit commands (in a totally backwards incompatible way) 2) Rip out the ad-hoc proposal and undo system in the LTN tool, and just use MapEdits
5 tasks
|
dabreegster
added a commit
that referenced
this issue
May 1, 2023
1) Move a bunch of types into map_model, adding them to the edit commands (in a totally backwards incompatible way) 2) Rip out the ad-hoc proposal and undo system in the LTN tool, and just use MapEdits
dabreegster
added a commit
that referenced
this issue
May 2, 2023
… snapping step when lane config doesn't change. #1079
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
#995 is about referring to roads, intersections, turns, etc using geometry and robustly handling upstream OSM changes. While thinking through how to make this change just for the LTN tool, I've been revisiting why the LTN proposal save file is different from the older
map_model::MapEdits
format. Another problem with the LTN savefile is that it currently writes all existing filters. We want a command-based approach to sanely handle undo/redo, reduce the size of the savefiles, and handle upstream changes to existing filters. That command-based approach already exists. I started LTN savefiles as something different fromMapEdits
in the beginning to iterate rapidly on unknown requirements, but now it's time to go back and make the formats / representations be the same.So the change:
map_model
Road
Intersection
EditCmd
s to modify these thingsThis won't quite let us replace the LTN savefile with the classic
PermanentMapEdits
just yet, because of boundaries / partitioning. I also want to stop saving all neighbourhood boundaries and only represent edits. But this is trickier, and I think first requires a big user-visible change to boundary management. More on that later.This change is orthogonal to #995, and could be done in either order. But both together will be great, also because it opens the way for other people to produce and consume A/B Street edit files, without needing to understand a bunch of weird internal implementation details.
Alternative considered: reinvent map edits from scratch in the LTN crate
Since we're also switching to GeoJSON output and using geometry to ID things, I thought about starting from scratch with map edits for the LTN tool. But this'd wind up reinventing lots of logic that's already working fine in
MapEdits
, like compacting changes and efficiently applying a diff.Alternative considered: base map edits v2 on top of osm2streets instead of map_model
osm2streets
in many ways has been acting as a v2 ofmap_model
, so maybe all these new ideas for map edits should be implemented there. Eventually I do want the concept of edits to live there, but not yet -- too huge a step. The LTN tool can't just rely on osm2streets today, because it needs areas, buildings, and file loading from map_model. #1041 would maybe be some intermediate step here, but it's not important yet.The text was updated successfully, but these errors were encountered: