[Knooppuntnetwerken] 2020-11-01 Release Knooppuntnet 3.0 + Planner!

Ik download in JOSM nu alleen met de overpass query:

[out:xml][timeout:90][bbox:{{bbox}}];
(
  way["highway"];
  node["node_network"];
);
(._;>;<<;);
out meta;

Door de extra “<<” in de laatste regel download je ook de relaties waar de ways of nodes lid van zijn.

Iets sneller: als je net een n2n hebt gemaakt, staat die in de relations-tab (rechts bij mij) geselecteerd. Daaronder zit een knop “copy to a new relation”. Scheelt weer de oude sluiten en daarmee foutkansen.

Oh, die ben ik vergeten op de nodes te zetten die ik tot nu toe gemaakt heb…

Ah, ik zit hier met 2 full HD-monitoren (en dat is eigenlijk nog te weinig… JOSM neemt 1½ monitor als je met relaties bezig bent, en wandelnet ook een hele … Geen zin om een 3e monitor er bij te zetten :D)

Hmm, kennelijk heb ik een andere versie van JOSM (15937)… Ik zal eens updaten — Ik heb de JOSM repository toegevoegd aan (k)Ubuntu, nu heb ik ineens versie 17084… Maar in een relatie zie ik nog steeds van nodes alleen het de naam en als ze die niet hebben (zaosl dde meeste wandelnet-nodes) de id, maar niet de ref. Wel kan ik mouseover doen… Interessante verbetering.

Hier wordt verteld hoe je weergave in je selectie-venster kunt aanpassen voor werk aan netwerken:
https://wiki.openstreetmap.org/wiki/User:Polyglot/Some_ways_to_simplify_editing_cycle_node_routes_with_JOSM#Custom_Name_Formatters

Door tms:https://tilecache-routemaker.irias.nl/tiles/opentopo/{zoom}/{x}/{y}.jpg toe te voegen krijg je wel de achtergrond van Wandelnet, de OpenTopo kaart.
Het netwerk zelf zit verpakt in dit JSON bestand: https://wandelnet.routemaker.nl/routemaker/getNetwork, is er een makkelijke manier om dit in JOSM te importeren, anders moet ik er best wel wat tijd in stoppen en kijken of ik het kan omzetten naar een GPX, maar die wordt dan wel groot… Weet iemand welke coördinaten hier worden gebruikt?

Edit: de link werkt zo niet, maar via de netwerk inspector van Firefox kon ik een JSON bestand (7.9MB groot) downloaden:
{“result”:
{“lines”:[
{“id”:214593,“id_from”:237704,“id_to”:239802,“geom”:,“colors”:,“length”:118},
{“id”:320326,“id_from”:324051,“id_to”:324253,“geom”:[[734359.402319394,7054448.42250999],[731776.559447782,7052494.72554625]],“colors”:,“length”:2196},
{“id”:214595,“id_from”:239548,“id_to”:242670,“geom”:[[518736.771684206,6801046.30789553],[518721.829731003,6801031.68634928]],“colors”:,“length”:13},
{“id”:214596,“id_from”:242386,“id_to”:242663,“geom”:[[523055.518566841,6834102.00719725],[521973.158623324,6834901.59839042]],“colors”:,“length”:938},
etc.
},
“pois”:[
{“id”:235813,“geom”:[707381.994243874,6819419.31440245],“name”:“”,“tags”:},
{“id”:235814,“geom”:[713109.177032063,6798292.41316413],“name”:“U74”,“tags”:},
{“id”:315118,“geom”:[676808.709440073,6684580.83039176],“name”:“”,“tags”:},
{“id”:315119,“geom”:[673242.69946271,6670450.96025387],“name”:“72”,“tags”:},
{“id”:235817,“geom”:[488382.555734519,6807159.91663309],“name”:“71”,“tags”:},
{“id”:304170,“geom”:[525043.266837709,6962999.21523556],“name”:“0”,“tags”:},
etc.
}
}

Die achtergrond helpt mij niet, ben ik bang. De JSON zou wel handig zijn, denk ik, als ik hem in porties zou kunnen knippen en inlezen. Ik ben technisch niks waard wat dit betreft, ik heb dus een tool nodig. In de opendata plugin zie ik JSON niet als bestandtype. Jammer want eerder heb ik daar wel shapefiles mee kunnen inlezen.
Dat bleek ook niet echt handig uiteindelijk, want je moet nog steeds alles vergelijken met wat er al is, en alle punten een voor een aanpassen of nieuw invoeren, en alle relaties aanpassen of nieuw invoeren. Eigenlijk heb je het wandelrouteplanner beeld als ondergrond nodig, niet als data.
Dus inderdaad, gpx zou helpen want die kan je veilig inlezen zonder dat het data wordt.

Converteren naar een GPX bestand moet te doen zijn met een simpel python script. Moet ik alleen wel weten hoe ik de coördinaten uit het Json bestand omzet…

Andere vraag: waarom rendert knooppuntnet.nl de route 37-37 niet (hij routeert hier ook niet over)? https://knooppuntnet.nl/nl/route/11525591 Of kan ik hier beter 1 knooppunt van maken dat een stukje weg vaker wordt gebruikt?
Waymarkedtrails doet het wel goed: https://hiking.waymarkedtrails.org/#?map=18!52.7289!6.6336

Als ik in de history van 37-37 kijk, zie ik Fix wrong networktype.
Het kan best dat dat ergens nog in een cache van knooppuntnet.nl rond zwerft
Het beste kun je een issue aanmaken. Dan kan Marc kijken wat er aan de hand is.

Nagekeken in de database: er klopt inderdaad iets niet met deze route in knooppuntnet. Er is iets misgegaan met de bepaling van de kaarttegels voor deze route. Ik zoek het verder uit…

Ik heb ondertussen een GPX-file met alle nodes gegenereerd, hoe is deze het makkelijkst te delen?
Ben nog bezig met een versie waar ook de routes in zijn verwerkt.

Inmiddels is ook het converteren van routes naar GPX gelukt, helaas kan dat niet voor heel NL in één keer (dan worden de knooppunten met een rechte lijn verbonden), maar wel voor vrij grote regio’s.

Hier het stukje python voor de liefhebber:

from pyproj import Transformer
import json

json_file = 'getNetwork.json'
nodes_gpx = 'nodes.gpx'
routes_gpx = 'routes.gpx'

node_network = json.load(open(json_file))

transformer = Transformer.from_crs("epsg:3857", "epsg:4326")

gpx_file = open(nodes_gpx, 'w')
gpx_file.write('<?xml version="1.0" encoding="UTF-8" standalone="no" ?>\n<gpx creator="Python3" version="1.1">\n')
gpx_file.close()

for i in node_network["result"]["pois"]:
    if i["name"] and i["geom"]:
        lat, lon = transformer.transform(i["geom"][0], i["geom"][1])
        gpx_file = open(nodes_gpx, 'a')
        gpx_file.write('<wpt lat="{}" lon="{}"><name>{}</name></wpt>\n'.format(lat, lon, i["name"]))
        gpx_file.close()

gpx_file = open(nodes_gpx, 'a')
gpx_file.write('</gpx>')
gpx_file.close()

gpx_file = open(routes_gpx, 'w')
gpx_file.write('<?xml version="1.0" encoding="UTF-8" standalone="no" ?>\n<gpx creator="Python3" version="1.1">\n')
gpx_file.close()

nodes = {}
for i in node_network["result"]["lines"]:
    if i["geom"]:
        gpx_file = open(routes_gpx, 'a')
        gpx_file.write('<trk><trkseg>')
        for j in i["geom"]:
            lat, lon = transformer.transform(j[0], j[1])
            gpx_file.write('<trkpt lat="{}" lon="{}" />'.format(lat, lon))
        gpx_file.write('</trkseg></trk>\n')
        gpx_file.close()
        
gpx_file = open(routes_gpx, 'a')
gpx_file.write('</gpx>')
gpx_file.close()

Het JSON bestand is te downloaden met Shift + F5 in Firefox, inzoomen op de wenselijke regio, en dan onder Netwerk te dubbelklikken op bestand getNetwork, type json.

Dat ziet er wel handig uit, dank voor het delen.

Sorry maar ik ben hier te blont voor en op mijn leeftijd leer ik niet meer zo makkelijk… Ik heb gewoon echt een gpx nodig als overtrekplaatje.

Kunnen we hier een op-verzoek-keten van maken?

Bijv als ik het gebied van Alkmaar en Z-O daarvan de Schermer vraag, dat jij dat omzet naar GPX en opstuurt naar wandelingen.digitaal@gmail.com , zie je dat zitten of is dat heel veel extra werk?

Dat kan, als men er niet uit komt, kan er altijd een verzoek gedaan worden. Ik heb je ondertussen al wat GPX bestanden gemaild, hoop dat dit de goede regio is.

Ik heb de bestanden binnen, ze tonen prima in JOSM, helemaal goed! Morgen ga ik kijken of ik mijn werkproces er echt mee kan versnellen.

2020-10-15 De routes zijn helaas niet bruikbaar, er staan heel veel lange rechte lijnen die geen echte routes zijn, als je uitzoemt is het hele beeld zwart! Maar het knooppuntenbestand helpt wel. Ik moet even kijken hoe ik ze wat groter in beeld kan krijgen want ze zijn nu heeeeel klein.

Goeie tip, het gaat sneller en ik maak inderdaad minder fouten. Daardoor kan ik ook makkelijker nodes en routes om de beurt doen.

Ik heb op mijn website ook een pagina geplaatst die een geoJSON bestand maakt van een gekozen gebied. Gewoon inzoomen op een gebied en op exporteren drukken en dan wordt er vanzelf een bestand gedownload (kan even duren om te beginnen).

Probleem opgelost.

Route 37-37 staat weer op de kaart (samen met een flink aantal andere routes die hetzelfde probleem hadden).

Heb hiervoor een paar eenvoudige presents gemaakt

Knooppunt node

<?xml version="1.0" encoding="UTF-8"?>
<presets xmlns="http://josm.openstreetmap.de/tagging-preset-1.0">
  <item name="Wandel Knooppunt" type="node">
    <label text="Wandel Knooppunt" />

    <text key="rwn_ref" text="Nummer Knooppunt" />
    <text key="expected_rwn_route_relations" text="Aantal Routes" />

    <key key="network:type" value="node_network" />

  </item>
</presets>

Knooppunt Route

<?xml version="1.0" encoding="UTF-8"?>
<presets xmlns="http://josm.openstreetmap.de/tagging-preset-1.0">
  <item name="Knooppunt Route" type="relation">
 <label text="Knooppunt Route" />

    <text key="note" text="01-02" />
    <text key="distance" text="De lengte" />
    <text key="survey:date" text="jjjj-mm-dd" />


    <key key="type" value="route" />
   <key key="route" value="hiking" />
   <key key="network" value="rwn" />
    <key key="network:type" value="node_network" />
  </item>
</presets>

Ook nuttig, heel goed! Ik zal kijken of dat handiger is dan zelf de tags toevoegen.

Installeren gelukt.

Ik heb wel een paar dingetjes gewijzigd, de voornaamste is: ref gebruiken ipv note voor het kenmerk van de route. Verder:

  • Distance is MI niet nuttig want wie gaat dat nou nameten, en de data user kan de lengte makkelijk bepalen uit de relatie.
  • Ik gebruik altijd route=foot voor Nederlandse knooppuntroutes (route=hiking voor lange routes).
  • Voor expected_ … heb ik als tekst # Routes gezet, want de mapper mapt gewoon het aantal routes wat zhij op het paaltje ziet staan, daar is niks “verwachts” aan.
  • survey:date wordt hoop ik in de onderhoudsfase belangrijk.
  • ref en rwn_ref heb ik nu als “Kenmerk” aangeduid. Knooppuntlabeltjes kunnen nu al letters bevatten, en er zijn al knooppuntnetwerken gesignaleerd die tekstlabels gebruiken.

Wandelknooppunt:

Wandelknooppuntroute:

Je kunt voor de route nog een osmc:symbol overwegen.
Veel netwerken gebruiken dat

distance zet ik er ook altijd in, die is in jouw versie weg gevallen

colour mis ik, nodig voor Overijssel, Achterhoek en ook min of meer Noord-Holland, ik heb op foto’s gezien, dat die ook gekleurde routes heeft.

Ook operator kun je nog toevoegen.

Ik mis ook de source nog. Want die moet toch ook toegevoegd worden als Wandelnet gebruikt wordt?