Jump to content

Improved Export From Gsak To Memory Map


roolku

Recommended Posts

I know there are some GSAK and Memory Map users here, so I thought I would share the following with you:

 

One thing that always annoyed me when exporting caches to Memory Map was the fact that there was only one type of icon unlike with for instance Ozi Explorer, where you get different symbols/colours for found/not found/owned etc caches. I tracked the problem down to gpsbabel which will always create the same single icon, as well as the limits that Memory Map puts on the mxf format by only allowing the following icons:

Dot = 37, House = 118, Fuel = 145, Car = 112, Fish = 130, Boat = 121, Skull = 22, Flag = 23, Camp = 111, Deer = 129, First Aid = 138

 

My solution to the problem makes use of the fact that gpx files are XML files (they are a bit messed up though, but good enough for what i wanted to do) which can be easily transformed using XSL and I also used the generic "GPSBabel custom export" option in the file/export menu of GSAK. The script will search through the following list for every exported cache and assign the icon as soon as the condition is true:

 

own = House = 118

found = Camp = 111

not available = Skull = 22

multi = Car = 112

virtual = Boat = 121

other non-traditional = Flag = 23

micro = Dot = 37

bug = Fish = 130

everything else (unfound traditional larger than micro without bug) = First Aid = 138

 

So if you are still with me, here is the quick guide on how to use it:

 

1) get msxsl.exe from microsoft (here) and copy in GSAK directory (usually C:\program files\gsak)

 

2) if you don't have internet explorer 6 you will need to get MSXML 4.0 (here) and install it

 

3) get the xsl script from my website (here) and put in the GSAK directory (usually C:\program files\gsak)

 

4) in GASK open "File/Export/GPSBabel custom export" and put the following line in the box that says "GPSBabel statement ..." (you might want to adapt the output path to your requirement)

 

msxsl temp\babel.gpx mxf.xsl -o d:\geocache.mxf

 

5) change the other options to your taste and click okay and you should get a geocache.mxf file ready for import into memory map

 

I hope this makes sense. The script can be tweaked if you don't like my selection of icons etc. Let me know if there is interest.

 

Cheers

Roolku

 

(edited to create clickable links)

Edited by roolku
Link to comment

This is great.

I was running a script in GSAK to generate separate files for found, not found, owned etc and then running a macro in a text editor to change the symbols and then combine all the files into one but this is much easier.

 

The only problem I have found is with our caching name Lennie’s Keepers, :P if I change the owner in the xsl file to owner='Lennie's Keepers' it doesn’t like the apostrophe in Lennie’s, as apostrophe is used to indicate the start and finish of the name having one in the middle confuses it.

 

Anyway many thanks for this, should give me something to tinker around with when I’m not out caching.

 

Cheers

Link to comment
The only problem I have found is with our caching name Lennie’s Keepers, :P if I change the owner in the xsl file to owner='Lennie's Keepers' it doesn’t like the apostrophe in Lennie’s, as apostrophe is used to indicate the start and finish of the name having one in the middle confuses it.

I am sure there is a way to properly escape the apostrophy, but I can't find it at the moment. As a workaround I suggest you use:

 

<xsl:when test="starts-with(Groundspeak:cache/Groundspeak:owner,'Lennie')">

 

Roolku

Link to comment

Since the new version of memory map (free upgrade on MM site) now allows the import of CSV files, I have redone my xsl script. Here are the instructions from the readme.txt:

 

-------

 

One thing that always annoyed me when exporting caches to Memory Map was

the fact that there was only one type of icon unlike with for instance

Ozi Explorer, where you get different symbols/colours for found/not

found/owned etc caches. I tracked the problem down to gpsbabel which

will always create the same single icon, as well as the limits that

Memory Map puts on the mxf format by only allowing a limited number of

icons.

 

The latest version of memory map (free upgrade on MM site) now allows the

import of CSV files and supports the use of custom icons. So I have

created a xsl script that improves the export from GSAK to Memory Map

via csv files and supports:

 

* 9 different cache types (including micro)

* colour coding (as in GSAK): Owned, Found, Unavailable, NotFound

* a travel bug indicator

* categories to selectively hide caches (e.g. only show Owned)

* link from icon to cache page on the web

 

My solution to the problem makes use of the fact that gpx files are XML

files (they are a bit messed up though, but good enough for what I

wanted to do) which can be easily transformed using XSL and I also used

the generic "GPSBabel custom export" option in the file/export menu of

GSAK.

 

So if you are still with me, here is the quick guide on how to use it:

 

1) get msxsl.exe from microsoft and copy in GSAK directory (usually C:\program files\gsak)

 

link

 

2) if you don't have internet explorer 6 you will need to get MSXML 4.0 and install it

 

link

 

3) get the zip file from my website

 

link

 

4a) put the xsl script in the GSAK directory (usually C:\program files\gsak)

 

4b) extract the icons from the zip file to c:\program files\gsak\icons

 

(if you extract the zipfiles with directories to c:\ it should put things in the right place automatically)

 

5) in GASK open "File/Export/GPSBabel custom export" and put the following line in the box that says "GPSBabel statement ..." (you might want to adapt the output path to your requirement)

 

msxsl temp\babel.gpx csv.xsl -o d:\geocache.csv

 

6) change the other options to your taste and click okay and you should get a geocache.mxf file ready for import into memory map

 

-------

 

If all goes as planned you can now import the file d:\geocache.csv and see the caches plotted on the map.

 

Cheers

Roolku

 

(edited for more clarity)

Edited by roolku
Link to comment

Hi.. I really want to try this out but I'm lost with the instruction:

 

<<3) get the xsl script from my website (here) and put in the GSAK directory (usually C:\program files\gsak)>>

 

When I click the link I'm confronted with a page of code so how do I "put it in the GSAK directory" please??

 

Many thanks

Link to comment

Slightly off topic...ish, but I have just bit the bullet and d/loaded GSAK..Got my head round the dloading cache information, although it took some time...

 

Now all i want to do is transfer my information (unfound, found, placed and home co-ordinates) from GSAK into memory map with a different symbol for each group so I can see a visual representation of "what needs top be done and where they are". Could anyone tell me how I would do this??? PLEEEEEEZE!

 

House Of Boo

Link to comment

Okay, the file/link in the original post has been superseeded now.

 

I have prepared a self-extracting archive that should make things a little easier in step 3 (if you trust me not to send you any viruses). This is the link. It should prompt you to open or download - select open if you don't want to keep a copy. After a while a dialog box should ask you:

 

Unpack all files to:

 

Change the entry to

 

c:\

 

and click ok. This will put all the files in the right location (step 4) provided gsak is installed in c:\program files\gsak and you can continue with step 5

 

Alternatively you can download the zip file from here and extract it manually. Both, the zip and the exe, contain a readme.txt with instructions.

 

Let me know if you need more help.

Edited by roolku
Link to comment
Slightly off topic...ish, but I have just bit the bullet and d/loaded GSAK..Got my head round the dloading cache information, although it took some time...

 

Now all i want to do is transfer my information (unfound, found, placed and home co-ordinates) from GSAK into memory map with a different symbol for each group so I can see a visual representation of "what needs top be done and where they are". Could anyone tell me how I would do this??? PLEEEEEEZE!

 

House Of Boo

You can only have one symbol (blue blob IIRC) for all waypoints with standard gsak export. That is why I developed the extra script.

 

Cheers

Roolku

Link to comment
Slightly off topic...ish, but I have just bit the bullet and d/loaded GSAK..Got my head round the dloading cache information, although it took some time...

 

Now all i want to do is transfer my information (unfound, found, placed and home co-ordinates) from GSAK into memory map with a different symbol for each group so I can see a visual representation of "what needs top be done and where they are". Could anyone tell me how I would do this??? PLEEEEEEZE!

 

House Of Boo

Peter, Don't know if this is the easiest way or the only way but it's is the way I do it:

 

1) Create a separate GSAK data base for each category

2) Export each category to a new GPX file

 

3) Open up C&M's Waypoint Workbench and import the first GPX file ('tick' the box to clear existing entries)

This has the added advantage that it will also load any intermediate way points on multi-caches and any parking co-ords if they're quoted.

Click on 'Export Way points' and select 'MemoryMap'. Select 'Settings' and then the 'MemoryMap' tab. Here you can select what symbol/icon you want for the cache and for intermediate/parking way points. This will create an '.mxf' file which you can import into MM as an overlay.

 

Go back to 3) and repeat for the remaining GPX files you created only choosing a different symbol for the cache.

 

A bit long winded and I'm sure someone will come up with an easier way but in the meantime... this will work.

Link to comment

Hi Rool.. Sorry to be a real pain.. I did everything as instructed.... GSAK generates the file (takes about 10 seconds with 500 caches) and sure enough there is a .CSV file as a result. Problem is, it's only 1kb long and seems to contain nithing.

 

Should I set up a filter before generating??

 

Thanks for your help..

Link to comment

Argh! I think I know the problem. There is a typo in the command line. It should read:

 

msxsl temp\babel.gpx csv.xsl -o d:\gps\mmo\geocache.csv

 

csv.xsl NOT cvs.xsl

 

See if this cures it. If not, can you tick the box that says debug in the "GPSBabel Custom Export" dialog box and see if there are any error messages? It should just read:

 

--------------------------

C:\Program Files\GSAK>msxsl temp\babel.gpx csv.xsl -o d:\gps\mmo\geocache.csv

 

C:\Program Files\GSAK>pause

Press any key to continue . . .

----------------------------

 

Cheers

Roolku

Edited by roolku
Link to comment

OK.. I tumbled a typo in the script as soon as I started (CVS instead of CSV). You suggest the line should read:

 

msxsl temp\babel.gpx csv.xsl -o d:\gps\mmo\geocache.csv

 

To suit my directories I have changed that to:

 

msxsl temp\babel.gpx csv.xsl -o c:\geocaching\geocache.csv

 

The DOS box appears OK with no problems and the file does generate OK; it's just that there's nothing in it! If I try to read the file in Excel, or to import it to Autoroute both programmes show that it contains the single word "Node".

 

Sorry about all this... Be interesting to see if everyone else has got it going OK...

Link to comment

Just noticed that on the Waypoint Symbol Icons help page, it says:

 

"If you have the Professional license, you can load icons and marks from a comma-separated text file."

 

Roolku, do you have the Professional license? Is that why it works for you, and not for others?

 

My csv file seems to conform perfectly with the specs in the help file, but I just get blue dots for everything.

 

When I try to import your icons into the symbol set, it will only accept one extra one - the last one)

 

Bob Aldridge

Link to comment
OK.. I tumbled a typo in the script as soon as I started (CVS instead of CSV).  You suggest the line should read:

 

msxsl temp\babel.gpx csv.xsl -o d:\gps\mmo\geocache.csv

Err.... since your file is called CVS.xsl then you need to put

 

msxsl temp\babel.gpx cvs.xsl -o d:\gps\mmo\geocache.csv

 

Either that or rename your file!!

 

All irrelevant I'm afraid as it all works for me as far as MM which, when I try to import, says it requires a professional licence for this feature! And they wonder why people are running bootleg versions?!! :D:oB)

 

So I copied the original code from your web site and saved it as mxf.xsl and changed the command line to....

 

msxsl temp\babel.gpx mxf.xsl -o c:\geocaching\geocache.mxf

 

and....

 

armstrong.gifacoustic-guitar.gifbagpiper.gifbattery.gifhorn.gifpiano.gif

 

... it works a treat!

 

Nice one!

 

360v.gif

 

Seasider

Edited by Seasider
Link to comment

Err.... since your file is called CVS.xls then you need to put

 

msxsl temp\babel.gpx cvs.xsl -o d:\gps\mmo\geocache.csv

 

I renamed it ..... gpx csv.xsl..... because it's all to do with csv files and I thought it was a typo. However, I realise it was correct and I've done as you suggested and changed it back to cvs.. and it still don't work!!! The file is still generated and there are no bugs but the resulting file is only 1kb in length so there is, effectively, nothing in it.

 

I changed the last bit too because I don't have a D: drive on my PC.

Edited by Birders
Link to comment
Err.... since your file is called CVS.xls then you need to put

 

msxsl temp\babel.gpx cvs.xsl -o d:\gps\mmo\geocache.csv

 

I renamed it ..... gpx csv.xsl..... because it's all to do with csv files and I thought it was a typo. However, I've done as you suggested and changed it back to cvs.. and it don't work!!!

The typo was in the naming of the file! Roolku called it CVS.xsl instead of CSV.xsl - that's what it was called in my directory anyway!

 

No idea why it won't work for you as I'm not a techy bod - sorry!!

 

Cheers!

 

Seasider (the accountant)

Link to comment

Actually, what I can suggest is that you follow Roolku's original link to his web page. Then all you have to do is save the file (just click on "file" & "save as" on the top menu bar) as mxf.xsl in the GSAK directory and then use the command line....

 

msxsl temp\babel.gpx mxf.xsl -o c:\geocaching\geocache.mxf

 

and see what happens!

 

Cheers!

 

Seasider

Link to comment

A lot of activity since I last looked. B)

Let's see.

 

* No, I don't have a professional licence:

 

about box

 

* you need the latest version of the OS edition for this to work which you can get here: http://www.memory-map.co.uk/dl_mm_OS_2004.htm

 

* for the icons to be imported they need to be at the right place - you might want to check that the *.csv has the correct path by looking at it with a text editor

 

* you should be able to import them manually by using the menu: overlay/icons and then add, although the script then won't know what ID numbers they have

 

* sorry about the cvs/csv confusion. it doesn't really matter what it is called as long as it is consistant. I would recommend using csv (comma separated values)

 

* where the output file (the one after the -o) goes and what it is called doesn't really matter (although the extension should be correct: *.csv (or mxf for my fist version))

 

* for birders problem: I assume you have installed msxsl, did you also get the MSXML 4.0 (step 2) ?

 

* if you run it again in debug mode - before you press a key, can you get me the c:\program files\gsak\temp\babel.gpx file and email it as an attachment to roolku@blueyonder.co.uk so I can see if it works here

 

Well, if everything works, this is what you get: example

 

:o

Edited by roolku
Link to comment

armstrong.gifacoustic-guitar.gifhorn.gifpiano.gif

 

I downloaded version 4.2.4 of MM (we all seem to be using 4.2.3!!) and it worked perfectly with the .csv format! :D;)

 

Great icons galore!! :DB)

 

The command line I am using is....

 

msxsl temp\babel.gpx cvs.xsl -o "c:\documents and settings\seasider\desktop\geocaching\geocache.csv"

 

I found it wouldn't work if I didn't put the inverted commas around the destination path. Maybe because it is away from the c:\ route directory? ;)

4_19_1.gif

BUT WAIT THERE'S MORE!!!.......3_8_9.gif...get this folks...10_3_1v.gif..incredible but true......4_11_4.gif.......If you double click on an icon it will take you to the cache web page!!

 

4_17_209.gif

 

Nice one!

 

360v.gif

 

Seasider

Link to comment
The command line I am using is....

 

msxsl temp\babel.gpx cvs.xsl -o "c:\documents and settings\seasider\desktop\geocaching\geocache.csv"

 

I found it wouldn't work if I didn't put the inverted commas around the destination path. Maybe because it is away from the c:\ route directory? ;)

Nope, it's because there are spaces in the path.

Link to comment

<<Why don't you just download the MM file from GC:UK???

 

It is all there without any formating, red flags for 'not found', blue dots for 'not found'.....how much more do you need?

>>

 

Yes, I love the icons, but the description of the cache always gets corrupted for me... there's nothing worse than looking up a cache on the PDA and finding half the info is missing. That's why we now download pocket queries and that way you get the whole web page to view.

Link to comment

Roolku.. Many thanks for all your help. I got so frustrated that I uninstalled everything and then re-installed and now everything works fine! Exactly what was wrong I don't know. but this happens a lot with me and computing.

 

All I would say, without criticising, is that the large variety of different icons make it difficult for oldies like me to remember what they mean!! I did think the icons looked big on the PDA but I see that they reduce in size as one zooms in..

 

Nevertheless I shall run it on the main PC and keep a crib card of what it all means nearby!

 

Thanks again for all your efforts, which are very much appreciated..

 

Bren

Edited by Birders
Link to comment

I am glad you got it to work. ;)

 

I didn't even know the icons would transfer to the PDA as well. Added bonus.

 

As far as size and variety is concerned - I think it really depends what you use it for. For me it is good to get an overview which types of caches are where in order to decide which area I want to tackle. I mark those caches in gsak and then export using Pharisee's method to get all the carpark and multi-cache co-ords as well.

 

There are only the 8 'official' Groundspeak symbols for caches (plus micro which I wanted to distinguish) in the 4 GSAK colours so I hope it is not too confusing. The size is really a compromise - the blue dot/red flag doesn't cut it for me in an overview. They blend in to well with the map. So I have to live with some obscured area.

 

Anyway. Everyone can obviously use his own favourite approach. I just thought I would share mine here.

 

Thanks for all your feedback

Roolku

 

P.S. Don't forget that you can selectively hide/display all caches of a category (e.g. only show micros) using the menu "overlay/hide" and "overlay/view".

 

Roolku

Link to comment

Just tried this out and got it working - very good :unsure: .

 

One question, my firewall reports that the msxsl.exe program tries to access the internet when generating the file, anyone know why?

 

As a matter of interest I deny msxsl.exe internet access and the .csv file is still generated OK. :rolleyes:

Link to comment

I have found a possible source of errors. Under some circumstances which I haven't been able to reproduce (I believe it is to do with exporting/importing other formats) the default directory changes and files can not be found. Giving full, absolute paths for all files seems to cure it.

 

Cheers

Roolku

Link to comment

Thank you, I am glad you find it useful.

 

Please note, that gsak has changed the gpx output format slightly in a recent version change, causing web and multi caches to appear as unknown. I have updated the zip file on my website with a modified version of csv.xsl.

 

Cheers

Roolku

Link to comment

Couple of things:

 

1) GSAK now has improved Memory map export so can not replicate all most all fuction of roolku's excellant script. I tend to use this way not as it makes my macros simpler.

 

2) WRT the multis and wecbams, IIRC geocaching.com changed the capitalisation or something similar in their GPX files, GSAK was updated to match.

Link to comment
Have earthcaches been added in? I was going to add them in myself but if they are there it will save me a job.

Earthcaches are now supported as well as "other" waypoints. I use them mainly for my (and other people's) houses, so they show up wit the standard "house" icon. The zip file has been updated with the script and the extra icons.

 

Cheers

Roolku

 

P.S. Thanks for the kind words.

 

Roolku

Link to comment

Hi

 

Thanks for all the work that you did on this script - and all the helpful replies to subsequent queries.

 

I've got it to work - except that some caches are still showing as simple blue dots ( as before ) and yet most are showing as one would expect.

 

Any ideas why this might be ?

 

TIA

 

civilised

Link to comment
I've got it to work - except that some caches are still showing as simple blue dots ( as before ) and yet most are showing as one would expect.

 

Try deleting all the custom icons in memory map before you import the csv file. This has worked for me and I believe Stuey had the same issue.

 

Roolku

Link to comment

MM tends to return to it's default icon if it can't find the icon specified ina csv file. This may be the reason that a few blue dots still remain. Additionally Icons added to MM are numbered from 100 so a few geusses in this area can soon track down the ID numbers of any additional icons that you have imported.

Link to comment
MM tends to return to it's default icon if it can't find the icon specified ina csv file. This may be the reason that a few blue dots still remain.

I found this and then realised that is was due to the to the paths of the icons in the cvs.xsl file all being set to c:\program files\gsak\icons\"Name of bmp file" As the C partition is a system partition I would rarly install software there so I changed each line to e:\program files\gsak\icons\"Name of bmp file" and it works fine, so if GSAK is installed anywhere other than c:\program files\gsak change the paths in the cvs.xsl file

 

Just to make this clear e:\program files\gsak\icons\"Name of bmp file" is where my GSAK is you'll have to alter this to reflect your installation

 

Milton (aka moote)

Edited by moote
Link to comment

This export has changed the way I use Memory-Map over the past year or so, and it has made such an improvement to things! However, I do have a request for anyone who knows their way around this please which will make this even better....

 

1. Is it possible to change the cache waypoint overlay 'comment' field so that it displays the waypoint code as well as the name of the cache?

 

2. There is also a problem with quotations in cache names, but I'm not sure if this is an easy fix or not. The tooltip that pops up for the cache when you hover the mouse over a cache with quotes in the title are blank and the hyperlink in some cases fails, but not always.

 

3. I'm not getting letterbox caches coming up with the proper icon. The Narrowboat by Alibags (GCNV6B)is an example. It displays a Mystery/Puzzle icon (the question mark).

 

I've had a go at some of this by but haven't got very far before falling (at the first hurdle in fact!).

 

If anyone has any answers to these I'd be very grateful.

Link to comment

Okay, I've fixed the third one myself. The GPX file has different text for the letterboxes to the csv.xsl script.

 

<!-- Letterbox -->

<xsl:when test="Groundspeak:cache/Groundspeak:type='Letterbox HybridCache'">

<xsl:text>02</xsl:text>

</xsl:when>

 

The word Cache in bold needs to be removed for it to assign the correct icon.

 

I'll continue with the others and hope someone else knows how to fix them before I go mad :cool:

Link to comment
Okay, I've fixed the third one myself. The GPX file has different text for the letterboxes to the csv.xsl script.

 

<!-- Letterbox -->

<xsl:when test="Groundspeak:cache/Groundspeak:type='Letterbox HybridCache'">

<xsl:text>02</xsl:text>

</xsl:when>

 

The word Cache in bold needs to be removed for it to assign the correct icon.

 

I'll continue with the others and hope someone else knows how to fix them before I go mad :cool:

Now that one was bugging me also but so was the Owner marking of caches as mine never appeared and after fixing the Letterbox part I noticed that Owner was set to

 

<xsl:when test="Groundspeak:cache/Groundspeak:owner='roolku'">

 

This line appears in two parts of the xsl file

 

I have now changed this to reflect who I am :o

 

I think that issue one will be easy to change I just need to get my head around this type of export, but issue 2 might be harder as just a simple comma in a csv file can mess them up.

 

Milton (aka Moote)

Edited by Moote
Link to comment
1. Is it possible to change the cache waypoint overlay 'comment' field so that it displays the waypoint code as well as the name of the cache?

 

If you look in the csv.xsl script for the first line that reads:

 

<xsl:value-of select="gpx:name"/>

 

and replace it with:

 

<xsl:value-of select="concat(gpx:name,' ',gpx:desc)"/>

 

Then comment field will contain the GC code, followed by the name of the cache.

 

Hope this helps.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...