Process Garmin shaping point information in .gpx file on import

My comment only referred to the import of a Garmin based .gpx file and the recognition of shaping points with the following structure:


I don’t think we should make any changes on export. I’m not sure if older Garmin devices and TomTom navis can handle this.

Is there somewhere documentation about Garmin’s GPX extensions?

Sorry - not really found anything … :confused:
starting here: got a 404-error
then this one:
next try: - no infos about shaping points

guess you know this one:
for my opinion one can put every thing into {extentions} and has to handle it accordingly - and Garmin didn’t say much about it …

Give it another try this evening - now I’ve to handle my Granddaughter :slightly_smiling_face:

Please can you post also some Garmin GPX files so we can check their structure and how they work.

we had a similar discussion 2 years ago, in this forum:

In the old Google Group I put some examples:!topic/kurviger/5tTTeGXoNSU
If you can not acces them, I can put them also here. I analyzed the format by “reverse engineering” of some Garmin GPX (Garmin Navi, BaseCamp), there are some rules:

  • 1st point of route (start) has to be a ViaPoint
  • last point of route (destination) has to be a ShapingPoint
  • there is a maximum of ViaPoints per route (BMW Navigator: 31) - if there are more ViaPoints, the route will be split in 2 or more routes during import
  • there is a maximum of consecutive ShapingPoints (Manual BMW Navigator: 50) - I do not know, what happens, if there are more, I did some tests, sometimes it works, sometimes you get an error during import, and I also generated Navigator 5 crashs of using “maximum routes” with 31 Viapoints and 1500 ShapingPoints - but that was just when trying to find the limit, during “real life” it is no problem
  • in a route with inly 2 ViaPoints (start/destination) it seems to be allowed to have more than 50 ShapingPoints
  • the kind of route points (Via / Shaping) is defined by extensions
  • as far as I have seen, all ViaPoints in a route have the same calculation mode (in BMW Nav5 you can set the calculation mode of a route, but not of a single segment / ViaPoint )
  • there are 4 calculation modes: FasterTime, CurvyRoads, Direct, ShorterDistance
  • 2 years ago I could use the links in the Garmin GPX to see the rules - but now I just get 404-errors :frowning:
  • as far as I can see, there is no limitation for number of ShapingPoints, if just 1st and last point are ViaPoints …
  • at least TomTom Rider 550 just seem to ignore these (Gramin specific) extensions
  • In the Kurviger APP you can export “Garmin ShapingPoint GPX (*.gpx)” - I think, that alogrithm is a good base. There are only 2 ViaPoints in, the rest are ShapingPoints (goal was to prevent route split during import to Garmin device) - next improvement step might be something like “Make all kurviger waypoints to ViaPoints” …



Sorry, error, it should be:

  • last point of route (destination) has to be a ViaPoint

Due to an other upcoming discussion I add some new points here instead of creating a new thread:

Handling Garmin specific extensions in GPX import to differ ViaPoints from ShapingPoints might be a benefit also for users who do not use any Garmin device, because a lot of GPX you can download in the web use that format.
Furthermore other applications use those Garmin extensions to differ ViaPoints from ShapingPoints (eg. Motoroute, MyRouteApp ).

On the other hand some applications use a type tag (eg. Kurviger app :wink: ), or waypoint symbols to differ Via- from ShapingPoints.

Probably it is not useful to implement several import strategies depending on GPX creator, but from my point of view following priorities (1 = highest, 3 = lowest) could be an generic approach:

  1. Start and destination are ViaPoints (of course)
  2. if Garmin extensions are in GPX, use them
  3. if type definitions are in waypoints (like in Kurviger App export), use them
  4. if symbols are defined for waypoints, use them

I’am not sure, if it is necessary to implement such a detection in both Versions (web + app), at least if a user has both subscriptions it would be possible to do the import in web - but on a mobile phone it might be much more comfortable to use the app directly.