Track colours set in BC not displaying on Oregon 450

Former Member
Former Member
I've started this new thread based on information from another one of mine, but with a more descriptive title for future ref:

I did notice something else, which might be best approached in a seperate thread but I'll chuck it in here for now.

When I sent all 80+ tracks to my Oregon 450 (I grouped them in BC then used right-click send to - Oregon 450) - they all showed up on the Oregon as cyan, which is pretty frustrating as I had spent a lot of time in BC colour-coding them for difficulty using a scheme of 5 different colours.

Am I missing something?

Thanks


You can help isolate where the problem with the transfer might be. Export some of the tracks to a GPX file. Make it so you should have a mix of difficulty colours, preferably none with cyan.

Now open the GPX file with your favorite text editor and see what the colour in the track data is. Finding the colour descriptor in each track entry should be obvious if it's there. Or equally obvious if it is absent.

If Basecamp is putting the proper colour information into the GPX file it is likely that it is also sending it to the device correctly. That would mean that the device is ignoring it and using cyan as a default. This is not absolute proof but it helps narrow down the possibilities.

If you don't want to go digging through a GPX file with your text editor, you could also test the GPX file by loading it into Mapsource and see if the colours came across properly.

...ken...


The color issue might be related to this thread: https://forums.garmin.com/showthread.php?t=19960.
  • Former Member
    0 Former Member over 13 years ago
    Thanks for the suggestions Ken.

    GPX files on the 450, whether put there by Basecamp's SEND TO -> or exported from Basecamp as gpx files and subsequently copied to the Garmin device using Windows, all appear to have the correct colour information, e.g.
    <trk>
    <name>Bradley Lake</name>
    <desc>Unknown</desc>
    <extensions>
    <gpxx:TrackExtension xmlns:gpxx="www.garmin.com/.../v3">
    <gpxx:DisplayColor>Green</gpxx:DisplayColor>
    </gpxx:TrackExtension>
    </extensions>
    </trk>

    Withe the Oregon 450 plugged in, and Basecamp running, if I select to view the Oregon, the tracks all appear the correct colour in Basecamp.

    BUT

    If I disconnect the Oregon and view the map, all the tracks are cyan.

    ????

    I shall try and find some time later to edit the track colours directly on the Oregon, then copy the gpx files from the Oregon, and then do a line-by-line comparison between the two gpx files (the one sent to the Oregon, and the one pulled from the Oregon after correcting the track colour on it).
  • Former Member
    0 Former Member over 13 years ago
    OK, here's an example:

    This is taken from the GPX file sent to the Oregon 450. The colour displays correctly in Basecamp whether the file is read from the computrer's hard drive, or from the Oregon 450
    <trk>
    <name>Pine Ridge</name>
    <desc>Unknown</desc>
    <extensions>
    <gpxx:TrackExtension>
    <gpxx:DisplayColor>Magenta</gpxx:DisplayColor>
    </gpxx:TrackExtension>
    </extensions>
    <trkseg>
    <trkpt lat="45.104163838550448" lon="-76.855361899361014" />
    </trkseg>
    </trk>


    However, when the Oregon is disconnected and viewed, the track shows as cyan (as do all tracks).

    So I used the "track manager" feature on the Oregon 450 and set the colour to magenta (or what looked like magenta to me - the colour options are not named on the 450 - just a coloured stripe.

    I did this manual edit for several differnt tracks in several colours, and all were showing correct colours on the 450 now. So I dumped the gpx file from the 450, and here's what it says for the above track:

    <trk>
    <name>Pine Ridge</name>
    <desc>Unknown</desc>
    <extensions>
    <gpxtrx:TrackExtension><gpxtrx:DisplayColor>Magenta</gpxtrx:DisplayColor></gpxtrx:TrackExtension>
    <gpxx:TrackExtension>
    <gpxx:DisplayColor>Magenta</gpxx:DisplayColor>
    </gpxx:TrackExtension>
    </extensions>
    <trkseg>
    <trkpt lat="45.104163838550448" lon="-76.855361899361014" />
    </trkseg>
    </trk>

    I know nothing about xml really, but it seems to me that Basecamp is sending:

    <gpxx:DisplayColor>Magenta</gpxx:DisplayColor>

    but the Oregon is expecting:

    <gpxtrx:DisplayColor>Magenta</gpxtrx:DisplayColor>

    Note the "gpxx" tag vice "gpxtrx"

    Help!
  • EDIT: to reflect your second post.

    Yes, it looks like Basecamp and the OR are using different schema for the colour extended attribute.

    In your first post you showed the URL for the XML schema that Basecamp is using.

    E.g. xmlns:gpxx="www.garmin.com/.../v3"

    In your second post you do not show the link for the schema in either of the examples. Can you check in both GPX files to see if the link for the XML schema is identical from Basecamp and from the OR?

    ...ken...
  • Former Member
    0 Former Member over 13 years ago
    Ken,

    This is the first chcunk of code from the gpx file produced by Basecamp and sent to the OR, the one where the colours didn;t display properly.

    <gpx creator="Garmin Desktop App" version="1.1"
    xsi:schemaLocation="www.topografix.com/.../1
    www.topografix.com/.../gpx.xsd www.garmin.com/.../v1
    www8.garmin.com/.../Wa...xtensionv1.xsd
    www.garmin.com/.../v1
    www.garmin.com/.../Tra...xtensionv1.xsd
    www.garmin.com/.../v3
    www8.garmin.com/.../GpxExtensionsv3.xsd
    www.garmin.com/.../v1
    www8.garmin.com/.../Ac...xtensionv1.xsd
    www.garmin.com/.../v1
    www8.garmin.com/.../AdventuresExtensionv1.xsd"
    xmlns="www.topografix.com/.../1"
    xmlns:xsi="www.w3.org/.../XMLSchema-instance"
    xmlns:wptx1="www.garmin.com/.../v1"
    xmlns:gpxtrx="www.garmin.com/.../v3"
    xmlns:gpxtpx="www.garmin.com/.../v1"
    xmlns:gpxx="www.garmin.com/.../v3"
    xmlns:abp="www.garmin.com/.../v1"
    xmlns:adv="www.garmin.com/.../v1">


    This is the same chunk of code from that same file, taken from the OR, after I manually edited the colour of some tracks on the OR

    <?xml version="1.0" encoding="utf-8"?><gpx creator="Garmin Desktop App" version="1.1" xsi:schemaLocation="
    www.topografix.com/.../1
    www.topografix.com/.../gpx.xsd
    www.garmin.com/.../v1
    www8.garmin.com/.../Wa...xtensionv1.xsd
    www.garmin.com/.../v1
    www.garmin.com/.../Tra...xtensionv1.xsd
    www.garmin.com/.../v3
    www8.garmin.com/.../GpxExtensionsv3.xsd
    www.garmin.com/.../v1
    www8.garmin.com/.../Ac...xtensionv1.xsd
    www.garmin.com/.../v1
    www8.garmin.com/.../AdventuresExtensionv1.xsd"
    xmlns="www.topografix.com/.../1"
    xmlns:xsi="www.w3.org/.../XMLSchema-instance"
    xmlns:wptx1="www.garmin.com/.../v1"
    xmlns:gpxtrx="www.garmin.com/.../v3"
    xmlns:gpxtpx="www.garmin.com/.../v1"
    xmlns:gpxx="www.garmin.com/.../v3"
    xmlns:abp="www.garmin.com/.../v1"
    xmlns:adv="www.garmin.com/.../v1">



    Also, if I take the original gpx file created by Basecamp, and before copying it to the OR, I open it in Notepad and do a find/replace and replace every instance of "gpxx" with "gpxtrx" (except for the instances in the first bits of code - the bits of code posted above in this post, that is), then copy the gpx file to the OR, low and behold, the tracks all show up on the OR with the right colours!

    Seems a bit of a dodgy workaround though - having to manually edit xml code. One would have though that basecamp and the OR would "speak the same language" as it were.

    Can I get a version of Basecamp that writes gpxtrx instead of gpxx please? :rolleyes:
  • Former Member
    0 Former Member over 13 years ago
    Ken,

    By my untrained eye, the two "schema identifying headers" look identical, but then I expect they would, since they are essentially the same file origin, the only difference was I edited some individual tracks in one.

    Next I'm going to wipre the gpx files off the OR, disconnect it, create a couple of waypoints and a track around the house, then open and read the header in that "OR-only" created gpx file.

    I'll post the results.
  • Former Member
    0 Former Member over 13 years ago
    OK, this is from a GPX file created from scratch on the OR (never touched by basecamp):

    <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
    <gpx xmlns="www.topografix.com/.../1"
    xmlns:gpxx="www.garmin.com/.../v1"
    xmlns:gpxtrx="www.garmin.com/.../v3"
    xmlns:gpxtpx="www.garmin.com/.../v1"
    creator="Oregon 450" version="1.1"
    xmlns:xsi="www.w3.org/.../XMLSchema-instance"
    xsi:schemaLocation="
    www.topografix.com/.../1
    www.topografix.com/.../gpx.xsd
    www.garmin.com/.../v1
    www8.garmin.com/.../WaypointExtensionv1.xsd
    www.garmin.com/.../v1
    www.garmin.com/.../TrackPointExtensionv1.xsd">
    <metadata><link href="www.garmin.com"><text>Garmin International</text></link><time>2011-08-13T19:26:32Z</time></metadata>


    <trk>
    <name>13-AUG-11 03:26:30 PM</name>
    <extensions>
    <gpxtrx:TrackExtension><gpxtrx:DisplayColor>DarkRed</gpxtrx:DisplayColor></gpxtrx:TrackExtension>
    </extensions>
  • Former Member
    0 Former Member over 13 years ago
    Trying to isolate what might be meaningful:

    Oregon:

    xmlns:gpxx="www.garmin.com/.../v1"

    xmlns:gpxtrx="www.garmin.com/.../v3"

    xmlns:gpxtpx="www.garmin.com/.../v1" creator="Oregon 450" version="1.1"

    Basecamp:

    xmlns:gpxtrx="www.garmin.com/.../v3"

    xmlns:gpxtpx="www.garmin.com/.../v1"
    xmlns:gpxx="www.garmin.com/.../v3"



    It seems to me that Basecamp is using the same schema for gpxtrx and gpxx - namely: http://www.garmin.com/xmlschemas/GpxExtensions/v3

    whears the OR uses that schema for gpxtrx, but for gpxx, it uses: http://www.garmin.com/xmlschemas/WaypointExtension/v1

    I can't tell who is right and who is wrong (if either)?
  • Former Member
    0 Former Member over 13 years ago
    Thank you for laying this all out so nicely.

    We do want to fix this, and working with the device teams to make this happen.

    You shouldn't really need to worry about the details, you would rightfully expect BaseCamp and your Oregon "to speak the same language".

    But I'll try to explain what is happening here (feel free to ignore this, or ask questions if I didn't make sense).

    I believe the root issue is that BaseCamp and the devices approach gpx files (that is XML files in general) differently.

    BaseCamp uses an XML processor (Xerces) whenever we read or write XML. That is why we only accept valid files, and only write out valid files.

    Our devices don't really know much about XML, they know how to parse it (somewhat, they don't really care about namespaces or if the file is valid, as long as they can make out some sense), but they just do simple string processing to make changes to files.

    For example, when you change the track color in BaseCamp, we set an internal flag in the database that the track is magenta. Then, when we write the gpx file to the Oregon, we tell Xerces to do its magic and write out valid XML, the namespaces are correct, all elements in the file are according to a pre-defined schema.

    On the device, the Oregon sees BaseCamp's file, it parses the file for tags it knows about and creates a track from it in its internal database. The device's logic currently happens to not look for gpxx-DisplayColor, so it ignores it, even though gpxx-DisplayColor is perfectly valid the way BaseCamp sent it (with gpxx=www.garmin.com/.../v3).

    When you change the track color on the Oregon, the device just inserts some text into the gpx file (which happens to be <gpxtrx:TrackExtension>gpxtrx:DisplayColor>Magenta</gpxtrx:DisplayColor></gpxtrx:TrackExtension> in your case).

    BaseCamp is perfectly happy with that, because gpxtrx is the namespace http://www.garmin.com/xmlschemas/GpxExtensions/v3 which contains the appropriate elements, we add all kinds of namespaces on top, to make sure we know the namespaces the devices might spit out.

    BaseCamp cannot equate gpxx with http://www.garmin.com/xmlschemas/WaypointExtension/v1 (because that one doesn't contain the track color extension), this would make the XML invalid.

    We are either going to make sure that BaseCamp writes the track color as gpxtrx-DisplayColor, or teach the device to accept gpxx-DisplayColor as well.

    I'll have to check about the gpxx namespace inconsistency, that doesn't look right. But this isn't the problem in this case.

    Depending on who you talk to, the problem is either a) the device doesn't understand how to read perfectly fine XML, or b) BaseCamp doesn't feed the device the track color in a way the device is happy with.

    I hope this made some sense. Long story short, we are definitely working on fixing this.
  • Former Member
    0 Former Member over 13 years ago
    Falagar,

    You're welcome - I'm just happy if I was able to help in some small way.

    I suppose I could get all angry and indignant about it - but that's hardly likely to accelerate a solutoin to the problem - and it's not really my style either.

    As it turns out - I'm an Air Navigator in the Candaian Air Force (20+ years now!) and my present job is as the mission systems specialist in the Project Office for a new helicopter aquisition - so it's very much my bread and butter to help with tracking down problems and helping to get them fixed.

    Tongue-in-cheek they refer to me as a "button smasher" meaning I'm the operator expert that tries to break the machine and then the whiz kids fix it!

    In truth, I'm more like a "very technical" user and I bridge the gap between the operational user-community at large and the designers, engineers, and code writers.

    Anyway - sorry for the long-winded personal story - suffice to say - I enjoy this kind of thing and let me know if I can help with test, diagnosis, or "button smashing" in any way :)

    And let me just say that I am not only grateful for your responses, but also highly impressed with your ability to remain calm and focused when customers do get a bit irate, and also your ability to communicate so well - as I'm sure you know - not all developers and software guys share these skills :) - I hope your chain of command appreciates them!

    Lastly - do you think it's a reasonable workarond for the time being for me to edit the gpxx to gpxtrx in the gpx file before copying it to the Garmin, as I described above?

    Regards,

    Bill
  • Former Member
    0 Former Member over 13 years ago
    Well, thank you! I have grown a somewhat thick skin on these boards. :)

    By all means, we appreciate your "button-mashing" and it really helps if we have users that can clearly articulate what the issues are and can help us chasing down bugs.

    Yes, I would recommend just that work-around for now.