Het GPX-formaat is een universeel uitwisselingsformaat; niet alleen Garmin gebruikt het, maar ook fabrikanten van andere GPS-toestellen. Het formaat is gebaseerd op de XML-standaard. Je kunt zo'n bestand in een text-editor bekijken. Als je gegevens overzet naar een toestel, wordt daarvoor een GPX-bestand gebruikt.
Een GPX-bestand bevat vaak maar een enkel item (waypoint, route of track), maar het kan ook meerdere van die items in elke mogelijke combinatie bevatten. Aan de naam van het bestand kun je niet zien wat erin zit; die zul je dus eerst moeten openen in BaseCamp of in bijvoorbeeld JaVaWa RTWtool om dat te achterhalen.
Het GDB-formaat is Garmin-specifiek, en kan in essentie dezelfde zaken bevatten als een GPX-bestand, alleen is het een binair formaat. Toestellen kunnen er niet mee overweg; alleen BaseCamp, MapSource en o.a. JaVaWa RTWtool. Vanwege het binaire formaat zijn GDB-bestanden een stuk kleiner dan GPX-bestanden met dezelfde inhoud. Bij heel grote hoeveelheden gegevens kan BaseCamp het niet aan als die in het GPX-formaat staan, terwijl het met GDB dan nog wel lukt.
Het nadeel van het GDB-formaat is dat het enigszins gedateerd is, en daardoor niet alle gegevens die aan waypoints, routes en tracks gekoppeld kunnen zijn aankan. De belangrijkste daarvan zijn 'zachte' viapunten en cadans- en hartslaggegevens.
BaseCamp gebruikt overigens voor de database een variant van het GDB-formaat (wat wel die extra gegevens kan bevatten).
TCX-bestanden zijn net zoals GPX gebaseerd op de XML-standaard, en dus ook met een text-editor te bekijken. Vroeger gebruikte je het programma Garmin Training Center om TCX-bestanden te maken.
Nu gaan we wat dieper in op het GDB-formaat, en omdat BaseCamp dit intern gebruikt, op de consequenties daarvan op het werken met gegevens in het programma.
Een GDB-bestand bevat drie soorten items: punten, routes en tracks. Een punt kan een waypoint zijn, een viapunt, een richtingpunt of een combinatie van waypoint en viapunt. Een viapunt en een richtingpunt kunnen voorzien zijn van afslaginstructies (maar niet altijd; het fijne daarvan heb ik nog niet kunnen achterhalen).
Een route bestaat naast een aantal algemene gegevens uit een reeks verwijzingen naar de eerder genoemde punten, en in een aantal gevallen is er aan zo'n puntverwijzing nog een reeks coördinaten gekoppeld; die coördinaten zijn de autoroutepunten welke de route de wegen netjes laat volgen. Als je bij het maken van een route op een waypoint klikt komt er geen nieuw punt, maar wordt het waypoint 'gepromoveerd' tot viapunt. Bij herberekenen blijven viapunten zoals jij ze geplaatst hebt, richtingpunten en autoroutepunten worden automatisch opnieuw gemaakt.
Een viapunt dat je plaatst op een kaart-POI of op een ander kaartelement (weg, vlak) krijgt de kenmerken van dat kaartelement mee. Behalve naam is dat ook een uniek ID dat alleen voor dat item in die specifieke kaart geldig is. Waypoints krijgen wel de naam, maar niet het ID; in plaats daarvan krijgt het een generiek ID voor waypoints. Plaats je een viapunt niet op een kaartelement, dan zal dit meteen een waypoint worden.
Naamgeving
Elk punt moet een unieke naam hebben, routes en tracks idem (maar je kunt wel één punt, één route en één track met dezelfde naam hebben). Dit betekent dat viapunten ook allemaal een unieke naam moeten hebben; BaseCamp zet er automatisch een 1tje (2tje, 3tje.... etc) erachter als er sprake is van conflicten. Dit kan tot verwarrende situaties leiden: stel dat je een route hebt waarin een viapunt toevallig dezelfde naam heeft als die je voor een waypoint wilt gebruiken: dit gaat niet... Het verwarrende is dat je nergens een waypoint ziet staan met die naam, waardoor het naamgevingsconflict op het eerste gezicht niet verklaarbaar is.
Tracks zijn wat eenvoudiger: algemene gegevens en een reeks van coördinaten, tijdstempel en hoogte welke de trackpunten vormen.
Het toestel gebruikt echter het GPX-formaat met waypoints, routes en tracks. Er is een strikte scheiding tussen waypoints en punten in een route: je kunt de waypoints uit het GPX-bestand verwijderen (met bijv. JaVaWa RTWtool), zonder dat het routes beïnvloedt. De routepunten zijn opgeslagen in de route zelf; hier is geen sprake van verwijzingen zoals bij het GDB-formaat. Ook is hier de naamgeving niet zo strikt als in BaseCamp: je kunt op het toestel zelf gerust meerdere waypoints met dezelfde naam maken (dit kan mogelijk per model verschillen).
Een route bevat drie soorten punten: <rtept> (viapunten), <rpt> met een <subclass> (richtingpunten) en <rpt> zonder <subclass> (autoroutepunten), waarbij <rpt>'s subitems zijn van een <rtept>. De <subclass> is een afgeleide van het eerder genoemde unieke ID.
Met de introductie van de zūmo 350 is er nog een variant van de <rtept> bijgekomen: het stille/niet aangekondigde viapunt, wat Garmin 'shaping point' of vormpunt noemt. Het is nog steeds een viapunt, alleen dan eentje met een extra kenmerk dat ervoor zorgt dat een zūmo 3x0 of 590 die niet zal afroepen. Voor andere toestellen (zūmo 550, 660, outdoortoestellen) zijn vormpunten identiek aan viapunten, aangezien zij dat extra kenmerk negeren *).
Als je nu BaseCamp instelt om routepunten te laten verwijderen bij verzenden van de route, dan gooit die de viapunten voorzien van dat extra kenmerk weg (de vorm van de route verandert niet omdat er altijd een richtingpunt vlakbij een viapunt staat). Dit kan alleen slagen als het toestel in staat is om een route ongewijzigd over te nemen; voorwaarde daarbij is dat het toestel dezelfde kaart gebruikt. Wordt niet aan een van beide voorwaarden (ongewijzigd kunnen overnemen, zelfde kaart) voldaan, dan zal het toestel de route herberekenen, waarbij alléén de (resterende) viapunten gebruikt worden.
Deze aanpassing van BaseCamp is niets anders dan het klassieke 'ontvlaggen', behalve dan dat je zelf kunt bepalen welke viapunten wel, en welke niet verwijderd moeten worden.
Let op! Als je directe routes maakt, zet dan deze optie in BaseCamp beslist uit. Directe routes bevatten namelijk alleen viapunten; geen richting- en autoroutepunten. Als BaseCamp de (stille) viapunten uit een directe route verwijdert, dan zul je begrijpen dat er niet veel overblijft van je route...
In het GPX-bestand dat je met BaseCamp naar het toestel stuurt staat er bij de 'zachte' viapunten een speciaal kenmerk, waaraan een moderne zūmo kan zien dat hij dat punt niet moet aankondigen. Een 550 of 660 heeft nooit geleerd om met dat speciale kenmerk om te gaan, en negeert het daarom simpelweg.
Alle zelfgeplaatste viapunten, maar ook de door BaseCamp toegevoegde richtingpunten bevatten daarnaast een ander kenmerk wat bestaat uit een serie letters en cijfers; de zgn. Subclass. Deze subclass is al heel lang in gebruik. Wat de inhoud precies aangeeft weet alleen Garmin, maar het heeft in ieder geval een relatie met de onderliggende kaart, of preciezer: met het wegsegment waarop het routepunt staat. Hoort de subclass bij een wegsegment waaraan een adres gekoppeld is zullen de 550 en 660 een melding geven; is er geen adres aan gekoppeld, dan niet.
Nu heb ik in het verleden proberen te achterhalen of het mogelijk is om iets te veranderen aan de subclass zodat er geen melding meer komt; dit zou namelijk de ultieme ontvlagmethode opleveren: geen meldingen, maar toch een route die niet vernacheld wordt door herberekenen...
Uiteindelijk heb ik de zoektocht opgegeven en het idee opgevat dat het gewoon niet mogelijk is, en dat de subclass (behoudens wat variaties t.g.v. het type routepunt) een vast gegeven is voor een bepaald wegsegment.
En toen kwam Hans Vaessen met wat experimenten erachter dat het toch niet zo zwart/wit was met die routepunten...
Het blijkt namelijk dat wanneer je een punt op een adres plaatst en het vervolgens 'zacht' maakt, het toch niet aangekondigd wordt. Kijkend naar de inhoud van het GPX-bestand zie je dan dat de subclass toch verandert door het zacht maken. Het was dus in feite al jaren mogelijk om zachte viapunten te verkrijgen i.c.m. de toen gangbare toestellen, alleen heeft Garmin dat nooit ingebouwd in MapSource...
Overigens is dit een onomkeerbaar proces; als je het routepunt weer hard maakt in BaseCamp verandert de subclass niet meer terug, en zal zo'n punt nooit meer aangekondigd worden door een 550/660.
Deze methode lijkt dus ideaal voor bezitters van een 550 of 660 (bij andere toestellen zoals de zūmo 220 en outdoortoestellen werkt het trouwens niet), ware het niet dat het niet optimaal werkt: bij bestaande routes of bij routepunten die je verplaatst hebt lukt het truukje niet; alleen bij nieuw geplaatste routepunten. Daarnaast worden de punten ook weer 'hard' als de route gemaakt was op een andere kaartversie dan die in het toestel zit.