Overpass-turbo en downloaden met relaties

Hoi,

Nadat ik een (terecht) geirriteerde Dvdhoven op mijn dak kreeg omdat ik onbewust een aantal relaties stuk had gemaakt, ben ik even gaan doorzoeken.

Het blijkt dat als je in JOSM van de overpass-API download, je niet automatisch alle relaties waar de ways/nodes die je download lid van zijn, meekomen in de overpass.

Daarom is het handig om dan met recursieve downloads te gaan werken, dmv de overpass-operaties <;<<;>> en >

Het is een beetje afhankelijk van wat je downloadt.
Bijvoorbeeld hier wil ik in een gebied alle bushaltes downloaden, dan alle routes die daar onderdeel van uitmaken, maar ook alle relaties die weer deel uitmaken van een way of node uit een van die relaties (<;>>;<< = omhoog, omlaag, omhoog)

[out:xml][timeout:100][bbox:{{bbox}}];
(
  node["public_transport"="stop_position"];
);
(._;<;>>;<<;);
out meta;

Maar als ik bijvoorbeeld in een gebied alle primary wegen wil downloaden en weten waar die onderdeel van zijn, dan is het volgende voldoende (eenmaal omhoog)

[out:xml][timeout:100][bbox:{{bbox}}];
(
  way["highway"="primary"];
);
(._;<;);
out meta;

Bedankt IVQ.

Er zijn 2 belangrijke foutbronnen, naar mijn idee:

  • doorverbinden over afslagen heen
  • doorknippen van wegen

Wat het doorverbinden over afslagen/zijwegen betreft, heb ik een eenvoudige remedie.
Nooit doorverbinden.
Het is niet nodig.
Het resultaat is alleen een veel langere weg, die vaker ook nog moeilijker in JOSM in te laden is, want hapt meer geheugen.
En de history van OSM wordt er alleen maar extra door belast.
En als later er nog een route moet worden ingelegd, die die afslag nodig heeft, heb je weer een probleem met doorknippen.

Het doorknippen is een ander probleem, dat is meestal onvermijdelijk, dus daar is het goed dat duidelijk is welke routerelaties er allemaal op een weg liggen.

Ik ben overigens blij dat ik niet met overpass werk, als ik dat had gemoeten, was ik zeer waarschijnlijk nooit aan OSM begonnen. :slight_smile:

JOSM geeft ook een duidelijke waarschuwing dat routerelaties worden beînvloed.
De meeste mappers (ook zeer ervaren mappers) negeren zo’n waarschuwing en beschadigen dan de relaties.

Soms ook een verkeerde werkwijze: een highway wordt verwijderd en vervangen door een nieuwe weg op nagenoeg dezelfde plaats.
Dan zijn dus alle relaties over die weg beschadigd. (vooral mappers die met iD werken)

Het opknippen van wegen heeft 2 varianten: Als de route in dezelfde richting loopt als de highway wordt de relatie niet beschadigd.
In het andere geval staan de twee nieuwe highways in de verkeerde volgorde in de relatie. Makkelijk te repareren maar vrijwel niemand doet dat.

Mijn ervaring is nu dat er dagelijks 2 a 3 busroutes worden beschadigd.
Het houdt mij (net als Dick) wel aan het werk :slight_smile:

Het punt is echter dat bij de veel gebruikte Overpass query niet alle routerelaties worden ingeladen. En ja als de routerelatie niet in JOSM is ingeladen, kan JOSM ook geen waarschuwing afgeven. Dus het kan heel goed zijn dat de mappers de waarschuwing niet negeren, maar in het geheel niet krijgen.

Daarom kijk ik altijd voor elk wegdeel of er een routerelatie aanhangt en download ik dan alsnog die gehele relatie(s).

Better safe than sorry…

Ik maakte daar fouten mee, tot Dick me erop wees. Ik dacht dat JOSM het automatisch goed deed, relaties aanpassen bij knippen. Vaak is dat ook zo (ik deed steekproeven, het was iedere keer goed) maar te vaak ook niet en dan had ik het niet gemerkt.

Dus nu bij elke knipaktie: kijken welke routes er over de way lopen, die allemaal openen voor bewerken, dan knippen, en dan al de routes bijwerken met het yinyang-knopje en opslaan. Iedere keer. Altijd weer. Dus ik hoop dat ik nooit meer de schuldige ben, al zit een vergissing in een klein hoekje zeker als er 15 routes alle kanten op over 1 wegdeel lopen met forward en backward rollen.

Doorverbinden over afslagen/zijwegen heen: wat bedoel je precies en wat gaat er dan fout? Dat je extra takken maakt of zo?

Als je doorverbindt over een zijweg/afslag heen, gaat de route, die daar afslaat doorlopen, dus je krijgt de afslaande tak en de doorgaande tak. Als er ook nog een knooppunt ligt, gaan de route over het knooppunt heen. Of het gaat andersom je verbindt een leeg stuk door met een stuk waar wel een relatie op ligt, peng relatie weg. Let wel, dit gebeurt niet als je alle relaties geladen hebt, maar alleen in de situatie dat niet alle relaties geladen zijn. Als je alle relaties geladen hebt, waarschuwt JOSM.

Begrijp ik goed dat je met “doorverbinden” bedoelt: verlengen van een weg tot aan een andere?

Hmmm… best mogelijk dat ik daar wel eens niet op gelet heb. Maar normaal gesproken is dat niet iets wat ik doe.

Voor LAW wandelroutes is het allemaal geen ramp, een zijtakje, een rondje of een onderbrekinkje, die kunnen er normaal ook al inzitten, maar voor OV-routes misschien wel, heb ik geen kijk op.

Doorverbinden is van 2 weg stukken één geheel maken. De C toets
En het is voor elke routerelatie schadelijk omdat de route niet meer afslaat, maar rechtdoor loopt en afslaat. VMarc meldt dat als overbodige segmenten.
Een tijd terug heb ik eens een Belgisch dorp uitgemest, waar alle doorgaande wegen met ID doorverbonden waren over afslagen en knooppunten heen. Een korte wandelroute is ineens gegroeid tot 1,5 km! Het heeft me een flinke tijd gekost om alles op de plek te krijgen. Echt doorverbinden kan heel schadelijk zijn. Je kunt beter doorknipfouten hebben, die los je meestal sneller op.

Hoi, even een combinatiereactie:

Ik heb in Noord-Holland Noord zojuist alle nieuwe busroutes gezet, maar ook wat andere kleine wijzgingen gedaan.

één van de grotere kleine wijzigingen :slight_smile: is dat ik in Middenmeer de maxspeed-tag op wegen heb gezet, die ontbrak voor het gehele dorp, op zowel doorgaande wegen als residential wegen in de wijk.
Deze wegen zijn grotendeels nog historisch van de AND-import. Daarbij is élk wegsegment tussen 2 kruisingen een aparte way. Ik ontdekte daarin ook veel foutjes, zoals dat een weg die er uitziet als 1 doorgaande weg maar een aantal zijwegen had, aan beide uiteinden één naam had, maar tussenin een segment anders, vaak een “haakje” van een zijweg. Dit heb ik steeds naar logisch inzicht gecorrigeerd.

Ik ga niet “vanuit het niets” wegen zitten doorverbinden, maar als alle tags van al die ways gelijk zijn, dan wil ik nog wel even “combine” doen.

Wat ik niet door heb gehad is dat ik door de manier van downloaden met overpass-turbo niet alle routerelaties had die aan deze ways hingen, en dat van deze ways dus wel alle tags, maar niet alle relaties gelijk waren.

En ik moet mij daarvoor zeer diep schamen, want ik ben daar al eerder voor gewaarschuwd maar heb er dus niet voldoende op gelet.
Daarom mijn nederige excuses naar Jack en Dirk (en eventuele anderen) die relaties door mij kapotgemaakt hebben gerepareerd.

Ik negeer deze waarschuwing nóóit, maar als je via Overpass download, krijg je dus niet automatisch de juiste relaties te zien. Dus daar moet iedereen erg goed op letten.

JOSM doet dit sinds een aantal versies vrijwel automatisch goed, bij knippen en combineren

  1. Survey while driving betekent dat ik onder het rijden dingen opneem, niet dat ik ze al tijdens het rijden corrigeer. Het “doorverbinden” doe ik thuis achter de computer (of heel af en toe op mijn mobiel):smiley:
  2. Ik ben niet zeker van je tweede statement. Ik weet niet hoe de OSM-servers zijn opgezet, maar voor wikipedia was er één master-database waar alle historie in stond (met een paar kopieën wereldwijd) en heel veel “cache”-versies, die alleen de meest actuele versie van de pagina’s bevatten. Als dat bij OSM ook zo is dan worden de cache-databases wél lichter. De hoofddatabase ook als er daarna nog veel wijzigingen worden uitgevoerd: bijv 5 keer dezelfde wijziging op 5 ways is zwaarder dan 1x een wijziging over 5 ways + 6 nodes en daarna nog 4x een wijziging over die éne lange way.

Daarnaast, zolang je hiet niet op grote schaal doet, zijn die bewerkingen peanuts vergeleken met andere bewerkingen.

Bij wikipedia was het argument altijd: doe alles om het doel van wikipedia te heiligen, en let niet op bandbreedte en databaseruimte.

Bovendien zou ik zeggen dat routebepaling er computational goedkoper van wordt. Er moet toch elke keer weer gekeken worden “welke nodes van deze way verbinden met welke volgende ways”.

Als je bij het samenvoegen er goed op let dat de tags van beide wegen gelijk zijn en dat er geen relaties bestaan die maar van een van de wegen gebruik maken, dan zie ik geen probleem met doorverbinden. Maar let er dus vooral op dat je geen relaties kapot maakt. Ik snap dat Dick geïrriteerd raakt, omdat er elke dag weer relaties kapot gaan doordat daar niet op wordt gelet.

In het geval van wegen splitsen, levert dat meestal geen probleem op in JOSM, in ieder geval wanneer je in JOSM een gebied download (inclusief relaties). Een weg die middenin het gedownloade deel van de route ligt, kun je splitsen zonder de relatie in de war te brengen. Alleen de laatste gedownloade weg van de relatie levert soms problemen op, omdat JOSM niet weet welke weg erna komt. Die is namelijk niet gedownload.