Wegen en aangrenzende gebieden parallel maken

Is er een makkelijke manier om een aantal wegen en de aangrenzende gebieden parallel aan elkaar te maken? Anders dan met de hand node voor node gaan slepen?

Ik zie dat er wel een tool is om een nieuwe weg te maken parallel aan een bestaande: https://josm.openstreetmap.de/wiki/Help/Action/Parallel
Maar kan dat ook worden toegepast op al bestaande wegen en gebieden?

Zie bijvoorbeeld hier:
https://www.openstreetmap.org/directions#map=19/52.26041/4.54180
Langs de van Lyndenweg lopen twee voetpaden, maar die zijn “schot en scheef” ingetekend op dit moment. Terwijl ze in werkelijkheid natuurlijk netjes parallel lopen.

Je zou ze kunnen verwijderen en opnieuw intekenen met de “Parallel mode” maar dan ben je de history kwijt, dat is ook niet wenselijk toch?

Er is een tool voor JOSM waarmee je een object met al zijn geschiedenis kan vervangen door een nieuwe. Deze heet Replace Geometry en zit in de plugin UtilsPlugin2. Je tekent dan met de parallele lijnentool de nieuwe lijn in, selecteert zowel de oude als de nieuwe, en kiest ‘Replace Geometry’ uit het menu. De geschiedenis blijft dan behouden, en de nieuwe vervangt de oude.

Let wel op als de voetpaden deel uitmaken van relaties van wandelnetwerken, dan wordt het een tikje ingewikkelder.

Verdere tip: lijn eerst de weg zelf goed uit met de BGT-onderlaag en de satellietfoto’s voor je de parallelle lijn maakt.

Dit wandelpad maakt inderdaad deel uit van een wandelnetwerk, dus controleer de relatie ook na het omzetten.

W (expert mode only) — is one of the working modes

https://josm.openstreetmap.de/wiki/Help/Action/ImproveWayAccuracy

Dan BGT omtrekgericht met als onderlaag AHN3 maaiveld ( prive gratis licentie) of PDOK luchtfoto 25.

Ook al teken je een nieuwe weg in zet eerst begin- en eindnode (rechte lijne) en gebruik dan W, hierdoor kleef je nieuwe nodes ook niet aan bestaande vast.

https://www.youtube.com/watch?v=NzunbvpVIX4

Bewerk ze een voor een.

En met een pentablet werkt het nog beter.

Satellietfoto is niet nauwkeurig genoeg alleen te gebruiken als indicatie.

Juist, maar dus nog niet met 1 druk op de knop.

Ik heb me eens verdiept in het maken van plugins voor JOSM en heb wat in elkaar geknutseld. Het doet nu redelijk wat ik wil als proof of concept.
Moet nog wel het een en ander aan gebeuren om het robuust en user-friendly te maken.

Maar lijkt me wel een nuttige functie als toevoeging in JOSM.

Dat ziet er veelbelovend uit. Mooi gemaakt hoor. Ga zo door.

Behoorlijk indrukwekkend, JJWW! Daar zou ik zeker gebruik van maken! Geldt hier het eerst geselecteerde als referentie voor het parallel laten lopen? Ofwel het daarna geselecteerde (vlak) zal de weg “volgen”?

Ja, je selecteert als eerste een node op de weg of vlak van de “source” die het beginpunt aangeeft, daarna de node op de weg of vlak van de “destination”.
En daarna nog een node op de source en op de destination die het eindpunt aangeven.

In het segment op de destination voeg ik dan extra nodes toe of verwijder ik nodes zodat het er evenveel zijn als het source-segment.
Vervolgens plaats ik de nodes parallel.
De afstand tussen de eerste twee geselecteerde nodes bepaald de afstand tussen de twee parallel gemaakte segmenten.

Ik moet nog even gaan uitzoeken hoe ik het zo kan programmeren dat de actie ook weer ongedaan gemaakt kan worden (want dat is nu niet het geval). En nog de nodige checks toevoegen voor als de input niet is zoals verwacht.

Als de destination meer nodes bevat dan de source, verwijder ik die nu dus. Dus een waarschuwing toevoegen als die nodes extra informatie bevatten lijkt me ook wel wenselijk.

Gewoon je actie toevoegen aan de UndoRedoHandler. Zo bijvoorbeeld.

Je zou de nodes die tags bevatten kunnen behouden en ze zo dicht mogelijk bij hun oorspronkelijke positie kunnen plaatsen. Je kan dan dus ook meer nodes dan je referentie-way hebben, maar die kun je op rechte stukken wel kwijt. Ik zou dan eerst de nieuwe way tekenen en daarna de nodes met tags er nog bij plaatsen waar ze het beste kunnen. Het algoritme wordt wel flink ingewikkelder zo, dus je kan het ook bij een foutmelding houden en weigeren de actie uit te voeren als er tags staan.

Kijk ook even wat er gebeurt als de way deel uitmaakt van relaties. Veel fiets- en wandelpaden maken deel uit van knooppuntennetwerken, dus dat moet wel goed werken.

Wow :sunglasses: Testers nodig? Ik meld me direct aan :slight_smile:

edit: Eerste en tweede node bepalen de afstand tussen de parallelle lijnen?

Dit gaat een nuttige plugin worden!

Soms liggen sommige nodes over de andere polygon, of samen met een andere node.
In praktijk zullen dit soort problemen in allerlei vormen voorkomen.
Hier zul je (hopelijk) een oplossing voor vinden.

Ik wacht met smart af.

Plugin controleert volgens mij nu redelijk of de input voldoet aan de verwachtingen en gaat geen nodes verwijderen die tags bevatten, of onderdeel zijn van meerdere wegen/gebieden.

Het is me nog niet helemaal duidelijk hoe ik hem nu tussen de andere plugins krijg. Ik heb dit wel gezien https://josm.openstreetmap.de/wiki/DevelopersGuide/DevelopingPlugins maar verder nooit iets gedaan met svn enzo. Iemand hier daar ervaring mee?

Voor de geinteresseerden hier kan hij gedownload worden via https://github.com/JJWW-osm/josm-makeparallel/releases/download/v1.0.0/MakeParallel.jar en met de hand in de plugin directory geplaatst worden.

Ik hoop dat hij zo werkt.

Gezien de plugin code in git staat hoeft je alleen svn:externals aan te passen zoals voor de andere plugins die niet in SVN staan (e.g. todo plugin).

De git plugins leven allemaal onder de JOSM namespace op GitHub, dus je kan het beste met de JOSM developers coordineren om de plugin daarin op te nemen.

Link naar het artefact hier toevoegen: https://josm.openstreetmap.de/wiki/PluginsSource

Aan dat bovenste blok van plugins bijvoorbeeld.

Nou hij staat erbij in de lijst: https://josm.openstreetmap.de/wiki/Plugins
Ik heb nog even een link toegevoegd in de plugin naar wiki pagina met korte instructies: https://github.com/JJWW-osm/josm-makeparallel/wiki

Ik hoop dat het zo duidelijk is hoe je de plugin gebruikt.

Ik heb de Lyndenweg in ieder geval al netjes parallel gemaakt met behulp van de plugin :slight_smile:
https://www.openstreetmap.org/changeset/96785708

Nuttig stukje werk! Ik kon hem al een flink aantal keer gebruiken.

Mooie plugin. Top.
Echter nu al een paar keer gehad dat de destnation aan de andere kant van de source komt te liggen. Hij is dan wel parallel, maar aan de verkeerde kant van het source segment.

Mijn “links of rechts” algoritme doet het inderdaad niet altijd goed. Zal daar binnenkort nog eens naar kijken