Hulp gevraagd bij opzetten server wandelroutes

Henk, weet je het zeker ? :laughing:

@Noordfiets: heb je misschien een voorbeeld hoe je een route in een marker om kunt zetten ?

Groeten,

Bert

ja of gewoon lui :roll_eyes:

1- de ways zijn nodig als je wegen wilt tekenen, anders weet de client niet welke nodes aan elkaar verbonden moeten worden. Welke query gebruik je ervoor?
2 - je kunt bij de layer als (extra) strategie ‘cluster’ opgeven. Dan worden dicht bij elkaar getekende punten slechts als 1 punt op de kaart getekend.

Deze:

http://overpass-api.de/api/interpreter?data=(relation[route~'hiking|foot'][name='Stelling van Amsterdam'];>>;);out+skel;

Dat kan vast efficienter.

Als ik dit toevoeg aan new OpenLayers.Layer.Vector ():

strategies : [new.OpenLayers.Strategy.Cluster({distance: 20, threshold: 3})]

Dan krijg ik een soort morse code: streepjes en puntjes door elkaar.

Maar dit wordt meer een OpenLayers cursus dan OSM. Ik kom er denk ik wel uit. Dit is absoluut de goede weg.

Mijn hersenspinsel:

Is de manier zoals hier gebruikt wordt niet iets?
Dat je bv eerst met markers werkt en daar dmv een click event de route uithaalt. de markers zoek je op mbv de boundingbox.
Zit het begin en het eindpunt van de route in de BBox dan laat je een marker zien, zit een deel van de route (een subrelatie) in de BBox dan haal je hem ook op.
Zo hoef je niet alle data eerst op te halen.
Misschien is er wel iets te doen met het zoomniveau.
Zo te zien zit je wat meer in het webpagina’s bouwen dan ondergetekende, ik probeer iets te maken om mijn Tracks vanuit een simpele SQL database op een kaart te krijgen met OSM en zit aan het bovenstaande te denken.

Edit: Ik zie dat Noordfiets dit ook zo benoemd hierboven…

Nauwelijks. Dat beetje data wat de relaties innemen is haast niks. En de rest is nodig. En het gaat redelijks snel toch? Het tekenen zelf kost trouwens heel weinig tijd van de client.
Eventueel moet dit nog werken:
relation[route~‘hiking|foot’][name=‘Stelling van Amsterdam’];rel(r);(way(r);node(w););out+skel;
Maar het scheelt echt heel weinig in data.

Ik heb wat met die kaarten gespeeld, maar het gaat redelijk snel, alleen het ophalen bij overpass is soms even traag.

Knap werk! :stuck_out_tongue:

Maar daar houdt het ook wel op. Ik kom er achter dat wandelroutes en mtb-routes niet echt consequent zijn ingevoerd, en dat veel info die je nodig hebt er niet instaat. Startpunt ontbreekt, richting van een route is er niet …
Om even MTB als voorbeeld te gebruiken: ik had verwacht dat de startpunten als node iets als mbt:route:start=yes zouden hebben en de relaties iets als mtb:route:clockwise = yes/no etc zouden hebben. Bij wandelroutes staat niet of er in 1 of 2 richtingen borden zijn etc.
Om een zinvolle kaart te maken moet je dus gewoon de info extern ophalen en over OSM laten zien. Of xml bestanden van de routes in OSM vorm met de eigen ingevulde info maken en vanaf de eigen server laden.

Dat is één probleem. Veel lange afstand wandelpaden zijn in stukjes en beetjes ingevoerd, met verschillende tags, soms opgedeeld in child en child-child relaties. En na verloop van tijd wordt alles weer vernaggeld :frowning: door andere gebruikers.

Maar ik ben toch een stapje verder. Met “>>” (tip sebastic) krijg ik alle geassocieerde relaties, en met “>” filter ik de relaties zelf er uit en hou ik alleen de ways en de nodes over. Dat scheelt 10% op een pad als de Stelling van Amsterdam.

overpass-api.de/api/interpreter?data=(relation[route~'hiking|foot'][name='Stelling van Amsterdam'];>>;);>;out+skel;

Mooi toch?!

Het tweede probleem zijn de echt lange paden. Een pad in Nederland laadt altijd snel. Maar een pad als de Via Alpina levert een XML bestand van 4,8 MB op. Door de recurse down query wordt dit slechts 100K minder. Ik vrees dat het niet anders is: die 4,7 MB moeten overgehaald worden naar de client.

overpass-api.de/api/interpreter?data=(relation[route~'hiking|foot'][name~'Via Alpina'];>>;);>;out+skel;

Maar dan nu het interessante! de cluster strategy in OpenLayers waar jij het over had! Wat ik zou willen, is bij verschillende zoom niveau’s zo efficient mogelijk lijnen tekenen. Daarmee voorkom ik het overbelasten van de browser (toch?). Heb jij hier meer ervaring mee?

Dit is een mooie oplossing voor kleine wandelroutes. Maar het kenmerk van Lange afstands wandelpaden (Traildino) is dat ze dwars door het land / continent lopen, en dat de bezoeker van Traildino wil weten hóe ze lopen.

Dat snap ik, en ik zou eerder zeggen dat locale routes geen marker nodig hebben omdat de downloadtijd erg laag is (weinig relaties).
Maar hoe ga je lange routes zichtbaar maken:

Wil je alle routes laten zien, dan zit de gebruiker eerst 5 minuten tegen een zandloper aan te kijken, je zult de data wel eerst moeten ophalen en omzetten. (dit was je commentaar ook op de Franse WMS)
Ik zou eerder zeggen dat een simpele marker (of een boundingbox die plaats aangeeft) met een info-ballon, met bv de naam en nadat je hier op klikt, je dan alle relaties ophaalt.

Voorbeeld: Noaberpad langs de grens: haal de lon en lat gegevens op voor de BBox en laat in de infobox de omschrijving en relevante data van je site zien, bv een waarderings cijfer. Klik ik hier op, wordt de data opgehaald.
Je kunt de data van de BBox bv eens per week ophalen en in een XML file op je eigen server zetten, hierdoor kun je snel een overzicht genereren.
De relevante gegevens haal je pas na het selecteren op.

Maar goed, het is natuurlijk jouw project, ben wel benieuwd of wat je wilt praktisch gaat werken, en dat is zeker niet negatief bedoeld :wink:

Edit: Moet zeggen dat me de snelheid me van deze niet tegenvalt vanavond, vanmiddag kreeg ik alleen een zandloper ?

LAW’s, LF’s en knooppuntroutes zijn allemaal twee richtingen en hebben niet echt speciale startpunten (je kunt overal opstappen). Die hebben dus ook allemaal geen speciale tags voor richting en startpunt(en). Deze routes maken echter wel de bulk uit van alle gemapte routes in Nederland. Blijven over de lokale routes.

Bij de paar lokale rondjes die ik heb gemapped heb ik de relaties zoveel mogelijk voorzien van:

  • Een tag: oneway=yes (maar geen oneway=no voor tweerichtingsroutes)
  • Een tag: direction=clockwise|counterclockwise (natuurlijk weer niet voor tweerichtingsroutes)
  • Nodes met de role start

Nu ik dit zo teruglees zou het waarschijnlijk handig zijn om voor de tweerichtingsroutes de tag direction=both te gebruiken.

Ik heb ooit een discussie gehad met Eimai. Die vond de direction tag niet goed genoeg, omdat je er niet alle rare uitzonderingen als rondjes in de vorm van een 8 of 9 mee kon taggen. Hij vond dat voor een éénrichtingsroute (maakt niet uit hoe lang) alle wegen van een role=forward|backward voorzien moesten worden.

IMHO zijn tags die beginnen met dingen als mtb:route: erg fout. Dat moet duidelijk zijn uit de context, als je de tags op de juiste plaats zet, namelijk in de relatie zelf.

Dat zag ik … de examenroute als lcn :slight_smile:
Lokale wandelroutes/fietsrondjes/mtb routes hebben vaak meerdere opstappunten, gunstig gelegen bij een parkeerplaats of nog liever cafe. Nou vallen die routes zobiezo een beetje buiten de OSM doelstelling, en voel ik me ook niet geroepen daar in te gaan roeren. Maar om mijn idee te geven: ik zou het liefst bij een relatie de start als tag geven met als waarde een node-id ipv een tag start op de node zelf. En dan kun je ook meerdere tags start geven met meerder nodes. En liefst lengte en richting ook op de relatie.
Dat ik mtb:route:start als voorbeeld gebruikte is omdat als je op de node zelf tagt die node deel uit kan maken van meerdere relaties. Tag je de node op de relatie dan vervalt die onduidelijkheid.
Maar ook voor bv Pieterpad kun je Pieterburen/Maastricht als begin/eind taggen. Daar hoef je niet te beginnen natuurlijk maar het zou wel duidelijk maken of een route compleet is, vooral als het geen rondje is.

Blijft de vraag of dat allemaal wel in OSM thuishoort. Ik denk eigenlijk van niet, of althans niet in de hoofd database. Ik heb geloof ik al vaker een pleidooi gehouden voor meer gelaagdheid in de database ipv 1 gigantische brij. Omdat ik uit ervaring weet dat dat op den duur altijd problemen geeft. Maar goed, OSM is zoals het is, en het zal wel goed doordacht zijn …

Dat is toch precies wat er gebeurt as je één of meerdere node(s) aan de relatie toevoegt en de role “start” geeft. De mapper hoeft zo niet dat nummer over te typen, maar het zit wel in de relatie. Bovendien waarschuwt een goede editor als je dingen weggooit die onderdeel zijn van een relatie.

Da’s ook weer waar. Morgen eens kijken of ik daar markers voor kan bedenken.

DAT moet je me eens uitleggen ???

en WIKI Project Fietsroutes

Zou wel eens willen weten wat dan precies de doelstelling is… en wat is het verschil tussen een regionaal knooppuntenroutenetwerk en een regionaal MTB netwerk dan ?

OSM is een wegenkaart, zoals je eerste quote al aangeeft. Die is bedoeld om wegen en andere geografische features in te zetten. De keus om alles maar in die database te dumpen is ronduit fout. Natuurlijk is het leuk om de fietsroutes te laten zien, maar stop die aub niet in de wegendatabase. Zet voor die niet-geografische dingen een aparte database op en voeg het geheel dan samen bij het bekijken.
Alle data zelf willen ‘hebben’ is ook niet meer van deze tijd. Het internet is een grote gemeenschappelijke database en het is niet zinvol al die gegevens zelf op te gaan slaan. Bovendien moet je ze dan ook zelf bijhouden.

Neem nou het hier vaak besproken BAG, en zet dat eens naast de GBA. Niemand komt op het idee die op 1 hoop te gooien. Een gebouw en zijn bewoners zijn verschillende dingen. De koppeling is dat in de GBA staat in welk gebouw iemand woont, en je via die link uit de BAG weer informatie kunt halen over dat gebouw. En omgekeerd natuurlijk. Toch is dat bij elkaar gooien precies wat we in OSM nog steeds doen. Sterker: er is zelfs veel gepraat over het in de OSM database dumpen van BAG.

Of kijk eens naar Google. Die stopt echt zijn wegen en poi’s niet in dezelfde database. Die maakt layers die verwijzen naar verschillende databases en voegt het samen in zijn api.

Wat mij betreft heeft OSM hiet echt een afslag gemist door op ouderwetse ( jaren 80 ) voet alles bij elkaar te gooien. Wie met databases werkt weet allang dat dat niet hoort en uiteindelijk een oncontroleerbare gegevensset oplevert. Als daar geen fundamentele verandering in komt loopt OSM straks achter de feiten aan en verliest zijn positie.

En is een singletrack dan geen geografische features dan ? volgens mij is dit nog steeds zo…

Ben met je eens dat een afvalbak of een hondedrol niet in een stratendatabase horen, maar een database zonder relaties gaat niet werken, dat is een bak met gegevens waar je niets mee kunt.
Wat je met de relaties doet is m.i. niets anders dan ID’s aan elkaar koppelen, ik verander niets aan de database.
Door het toevoegen van deze kun je query’s uitvoeren, volgens mij doe je dit met zelf ook met je gemaakte Fiets/wandelkaart.

Ik zal zelf ook geen borden of huisnummers toevoegen omdat dat geen enkel nut heeft, maar om nu te zeggen dat een landelijke route wel kan en een lokale niet vindt ik vreemd.
Een verzameling lokale route kan een regionale zijn,en deze weer landelijk. en dat kun je dus doen door relaties vast te leggen.

Dat is nu precies waar het om gaat. DB1 > wegen. DB2 > routes. Relatie DB2 > DB1.
Daarmee haal je de functies wegen en routes uit elkaar.
MTBroutes.nl heeft bv een prachtige database met routes. Waarom dan precies hetzelfde in de OSM database stoppen? Wat is dan de meerwaarde?

Meerwaarde is dat MTBroutes.nl die routes nu voor zichzelf claimt, dwz ik mag er geen gebruik van maken voor mijn OFM.
Als alles in OSM staat kan ik daar wél een kaartje van maken. Zie ook de discussie over de wandelroutes, http://forum.openstreetmap.org/viewtopic.php?id=19167
Verder zijn de officiële fietsknooppuntroutes niet foutloos, op OSM kunnen ze worden gecontroleerd en verbeterd. Kan natuurlijk ook door de officiële instanties gebeuren maar dan ben je weer vele jaren verder. Of door de Fietsersbond maar die claimt de gegevens dan ook en wil die voor zichzelf houden. Kortom de theorie die Noordfiets schetst is wel mooi maar de praktijk blijkt nog niet zo ver te zijn.