acteng / overview

Overview of Active Travel England projects and repos
Apache License 2.0
0 stars 0 forks source link

GeoJSON diff tool #15

Open dabreegster opened 1 year ago

dabreegster commented 1 year ago

Imagine a web app where you load two different GeoJSON files. The app shows you interactively explore the difference between the two -- what's been added, removed, changed, split, merged? The changes could be at the geometry level -- maybe a route has been slightly offset, or extended / trimmed. Or at the property level -- there've been additions/removals/changes at the JSON level there.

This is a pretty general-purpose idea, but there are a few immediate use cases:

1) I have two versions of an ATIP scheme, and I want to compare them. Maybe they represent the same scheme with one being a more recently edited copy, and I want to understand the changes since last time. Or maybe they're two competing / diverging ideas. 2) Say we extract some existing walking/cycling infra from OSM, like cycle Advanced Stop Lines, or signalized crossings, and show that as a contextual layer in ATIP. Later we grab fresh OSM data and repeat this extract. There'll be some diff, and manually checking what's happened would be very useful.

As an idea for implementation, I would break the problem into a smaller first step: assume every geojson feature has a unique ID that's stable between the two files. We can first focus on the UI of showing the diff between these features. Then we can remove that assumption, and try to figure out when two features should count as the same (maybe modified) or different. Map matching is a very related problem.

robinlovelace-ate commented 1 year ago

That would be really cool. As a component of ATIP, that allows you to step through changes and accept/reject/re-edit upstream changes to OSM it could be helpful to ATE.

dabreegster commented 1 year ago

Maybe this has existed for a long time?! https://github.blog/2014-02-05-diffable-more-customizable-maps/