JAVA code HULP hulp gevraagd bij maken preset verkeersborden.

Er is een Nederlandse preset, helaas geeft die niet volledig de mogelijkheden (ook onjuiste tagging, osmtags t.o.v. de wet) voor een verkeersbord en al helemaal niet voor de combinatie met een onderbord. Wat dan foute tagging geeft, meer kans op fouten taggen, eenmaal geplaatst is dat er later moeilijk uit halen. Graag zou ik deze preset willen verbeteren. Komt er op neer een Nederlandse preset uitwerken.

Nu kijkend naar road extended style zie je meer de fouten. Missende en onjuist gebruik, van motor-vehicle MV, bijvoorbeeld.

Ik ben te veel tijd kwijt om elke keer **de combinatie van borden **uit te werken en de juiste tags te zetten.
Laat staan :forward en :backward in te typen, voor elke vervoersvorm, er zijn toch heel veel borden met onderborden.

Preset maken:
code
https://josm.openstreetmap.de/wiki/TaggingPresets

Hierbij loop ik tegen het probleem aan dat de presets code mogelijkheden niet uitgebreid genoeg zijn om simpel een verkeersbord aan te geven met forward backward.

Nu heb ik het ook aangekaart bij JOSM. Waarbij nog geen oplossing naar voren is gekomen.
https://josm.openstreetmap.de/ticket/15007#ticket
Tevens had ik het ook aangekaart op het help forum.
https://help.openstreetmap.org/questions/57286/josm-preset-forward-backward-with-one-checkbox-how

De problematiek is dat bij veel C borden het niet makkelijk switchen is van beide richtingen, naar forward en backward, waarbij alle vervoersvormen in de key :forward en :backward krijgen.

Je moet elke vervoersvorm een checkbox geven, daarbij moet je goed weten wat je doet, kennis van het verkeersbord hebben ook in combinatie met een onderbord.

NU merk ik dat vertaling ook door geoefende mappers niet klopt. Ik heb mijzelf ook wel eens moeten vermanen, dit is niet correct.

Het mooiste zou zijn dat bij 1 check keuze verandering forward alle vervoersvormen dan verandert worden inclusief de traffic_sign:forward.

Simon Poole geeft aan:

Dit is ** cruciaal **, om tot een goede verkeersborden preset te komen.

Als voorbeeld heb ik het C12 bord gekozen.

Preset voor het bord.


<item name="C12 " icon="traffic_signs/NL/NL_C12.png" type="node,way">
        <key key="traffic_sign"value="NL:C12" />
        <key key="motor_vehicle" value="no" />
        <key key="mofa" value="yes" />
        <key key="moped" value="yes" />

        <space />
        <check key="traffic_sign:forward" text="Forward motor_vehicle" default="off" value_off="" value_on="NL:C12" />
        <check key="traffic_sign:backward" text="Backward motor_vehicle" default="off" value_off="" value_on="NL:C12" />
        <check key="motor_vehicle:forward" text="Forward motor_vehicle" default="off" value_off="" value_on="no" />
        <check key="motor_vehicle:backward" text="Backward motor_vehicle" default="off" value_off="" value_on="no" />
        <check key="mofa:forward" text="Forward motor_vehicle" default="off" value_off="" value_on="yes" />
        <check key="mofa:backward" text="Backward motor_vehicle" default="off" value_off="" value_on="yes" />
        <check key="moped:forward" text="Forward motor_vehicle" default="off" value_off="" value_on="yes" />
        <check key="moped:backward" text="Backward motor_vehicle" default="off" value_off="" value_on="yes" />
</item>


Je moet hier alle forward aan checken om de vervoersvormen/traffic_sign op :forward te zetten.
En de “<key key” key value zouden niet gebruikt moeten worden. Verwijdert uit de code.
In de plaats daarvoor, voor beide richtingen zou voor elke vervoermiddel/traffic_sign tag, een check gemaakt moeten worden.

Bij een enkelvoudige tagging is dat nog wel te maken, zie voorbeeld =use_sidepath. Verandering van de value. (Gelijk pas je dan =no aan, als deze verkeerd is, want er staat geen verbodsbord)

Maar als je de key wilt veranderen :foward blijft het originele key staan en moet je die dus uit zetten.

Dit is voor de tagging manier om het op de gehele of gedeeltelijke way te zetten.

Kan iemand aan workaround oplossing bedenken/uitwerken?

In welk richting van oplossing moeten we het zoeken?

Op de achtergrond een omzettooltje draaien, uitkomst op te vragen in de preset?

Ik wil het nog niet te moeilijk maken, maar er komt ook nog :conditional optie in de key voor.
Om alvast ook rekening mee te houden.

Voor zover ik het kan zien kun je met Java de values bepalen aan de hand van de vinkjes en dergelijke op het preset scherm.
Je zal ook aan de gang moeten met de match functionaliteit uit de presets om de getagde waarden weer terug te lezen naar het dialoog.

Maar hoe mooi wil je het gaan maken?
Met de onderborden erbij voor de :conditional voor de diverse uitzonderingsmogelijkheden ontkom je er bijna ook niet aan om er iets als de opening_hours editor in te verwerken. Dan gaat het al gauw de mogelijkheden van de preset voorbij en zal het een echte plugin moeten worden die behoorlijk complex kan worden…

Wanneer een bord of de combinatie met onderbord, dan liggen de tags vast, tenzij er nog een tweede bord op de paal hangt en invloed heeft op het andere bord, dat is een situatie die we zelf moeten beoordelen.

Het gaat dan vooral, dat je een keuze hebt uit drie.
Both directions
Forward
Backward

Net zoals bij voorbeeld use_sidepath, maar dan 1 regel die alle vervoervormen met een check tagt.

Zo simpel wil ik het eerst houden, dan hebben we een grote groep, die we moeten taggen te pakken. Vooral de C borden

conditional is zo divers in tijden. Wil ik eerst laten liggen.

Als het gaat om de keuze both, forward, backward, kun je ook met een comboboxje werken. Zoals ik heb gedaan met segregated. Both is in feite geen waarde, en dan heb je nog de keuze uit forward, backward. Dus een comboboxje met die waardes + leeg.

Segregated in een combo box, daar is het **een single key **segregated, de values veranderen.

Bij both forward backward directions, zijn het een groep van keys, die je wilt selecteren en dat kan niet.

Je wilt met 1 check/keuze de groep selecteren, waarbij de value zijn vastgelegd, ingevuld vanwege de bordencombinatie.

Daarom had ik bij JOSM om het uit te beelden de regel gemaakt, zodat je meerdere keys kon invullen.

<multicheck keys="traffic_sign:forward,motor_vehicle:forward,mofa:forward,moped:forward" text="Forward all" default="off" values_off="" values_on="NL:C12,no,yes,yes" />          

En dan de values in de juiste volgorde met komma behorende bij de key reeks.

Ik heb deze methode de naam multicheck gegeven. <multicheck keys="

Met 1 keer aanvinken alle keys zetten.

maar keys met een s kan niet. Dat zou dan ontwikkeld moeten worden, maar geen reactie.