nlthijs48 / josm-bag-quick Goto Github PK
View Code? Open in Web Editor NEWJOSM OpenStreetMap editor plugin to do 1 click building updates in The Netherlands using official BAG data
JOSM OpenStreetMap editor plugin to do 1 click building updates in The Netherlands using official BAG data
The current CTRL+ALT+A
clashes with area selector
When updating a building, upgrade the building
tag to be more specific if better specified in BAG. For example when OSM has building=yes
and BAG has building=house
, apply building=house
. But when the other way around, preserve the value in OSM that is already more specific.
Check how these buildings are exposed on the BAG plugin layer, and see how those can be matched to the ways+nodes on the OSM layer properly.
Example: https://www.openstreetmap.org/relation/12759753 (thanks Vincentvd on Discord)
For example if there is a connected driveway, the target way will have an extra node where that driveway connects. This node won't be present in the BAG data, and therefore the current algorithm will try to remove it. That means the driveway gets disconnected though.
entrance=*
nodeWill disconnect the entrance node, it should put it back into the way.
Try to keep the size of UpdateBuilding down, these search things are easy to extract.
Probably best to:
AssignmentProblem
usage (slow algorithm)UpdateBuilding
This would move a bunch of code out of UpdateBuilding
, and make the pairing algorithm selection nicer
building=construction
in OSM:
contruction
tag as the new value of the building
tagbuilding
tag value from BAG
more specific? Use that (after implementing #16 this should be automatic)BAG
building is under construction:
BAG
layerCurrently it will import the BAG way as a new building in this case, which is incorrect.
Just warn about this issue and fatally stop the update? Instruct the user to first solve the duplicate ref:bag
(possibly by simply removing both buildings, remembering additional tags on them)
Would be good to first show a popup with the note in that tag and let the user confirm that they want to continue anyway.
List of note-related tags to probably warn about:
note
note:bag
fixme
https://bagviewer.kadaster.nl/lvbag/bag-viewer/#?searchQuery={ref:bag value}
seems to work nicely.Create a logo to use on the github page and in JOSM.
Maybe also suitable or inspiration for the cursor icon the tool itself uses.
In build.gradle
in the josm
> manifest
section add iconPath = "path/to/my/icon.svg"
To make sure master builds correctly, and always have a latest development version available on Github.
See the workflows of JOSM itself for the initial steps to setup a JOSM build environment: https://github.com/JOSM/josm/tree/master/.github/workflows
Not meant for tagging building (which it can indicate in the popup), but it can link to the BAG viewer, making it easy to view details about that building.
Somehow also add this to address nodes? Harder because those don't have ref:bag
though.
The AreaSelector
JOSM plugin also has a custom dialog with instructions what to do with the output, helps to easily report bugs to this repository.
Currently it create a few separate entries because some actions depend on previous ones already being committed in the DataSet
. This means pressing CTRL+Z
after doing an update will rollback only partially, and you need to press it multiple times to undo it fully, which is really annoying.
Approaches to explore:
DuplicateNode
fixing passCollect interesting test cases in empty OSM+BAG layers, save a .joz
file and commit that to the repository.
Makes it easy to test the tool after changes, and ideally it can later be converted to automated unit tests.
Warn the user when the building way or one of its nodes is in a relation, because updating them might have unwanted side-effects.
It might be part of a Relation:building
, in which case extra caution needs to be taken.
The building:part
s might need updates as well, so warning the user about their presence gives them a chance to check if everything is still working as expected.
This could be represented in the data in 2 ways:
building:part
ways that are fully inside the outer building=*
(often connected to nodes of the main building, but that is not a guarantee)
building:relation
When using the tool on a building, it should update the address points as well.
Probably only add new points, and update tags of existing points. Don't move existing points, because probably they have a better location in OSM than BAG.
Double-check that all address points are inside the building.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.