by Andy Lyons
alyons@nature.berkeley.edu
|
NEW: The newly updated Magellan GPS Import extension for ArcView 3.x can now read waypoint files exported from MapSend as text. See http://nature.berkeley.edu/~alyons/magellan_gps_import for details. |
Contents
MapSend is a GPS software application from Magellan that allows you to download waypoints from a GPS unit and save them in a waypoint file. MapSend also allows you to create routes from waypoints by 'connecting the dots'. If you create routes in MapSend, they are also included when you save your work in a waypoint file.
Unfortunately, MapSend does not have an option to save waypoints or routes into any standard GIS format. Furthermore, importing waypoint files from MapSend into ArcView 3.x is a little tricky, because unlike waypoint files that are created by Magellan's DataSend or DataSave programs, waypoint files created by MapSend are in a binary file format. That means ArcView's native scripting language, Avenue, can not directly read MapSend waypoint files, because Avenue does not have commands to read a binary file. This in turn means that you can't write an ArcView extension to import MapSend waypoints without first creating an external DLL library using a more powerful programming language such as Visual Basic or C++.
As a temporary workaround, I have created a MS Excel application which has a macro which will read waypoints from a MapSend waypoint file and save them in a delimited text file. This text file can then be brought into ArcView 3.x as a table, which can then be used to create an event theme, which can then be saved as a shapefile. This approach, albeit clunky, is possible because Excel supports Visual Basic for Applications, which unlike Avenue has commands to read a binary file.
Installation and Use
To use the Excel macro, simply download the MapSend_Convert.xls Excel spreadsheet (note this file is zipped so you will need a utility like WinZip to unzip it). Remember this spreadsheet has macros, so to open it you must have Excel's security level set to low or medium (to check goto Tools -- Macro -- Security). If you're worried about viruses (always a good idea), you can look at the macros by going to the Visual Basic editor before running it. The spreadsheet has a button which you click to launch the macro.
Note - the only purpose of the spreadsheet is to run the macro which reads the MapSend waypoint file. The macro doesn't actually save the waypoint coordinates in the spreadsheet or otherwise alter the contents of the spreadsheet.
The macro will first ask you to select a MapSend waypoint file. It will then look for waypoints in the file, then ask you to save the waypoints in a delimited text file. After the delimited text file is saved, you can then go to ArcView 3.x and:
Note - the procedure below is only for ArcView 3.x. Users of ArcView 8.x or other GIS software should read their documentation to learn how to import points from a delimited text file.
Remember that waypoints downloaded from a Magellan GPS unit are always saved in latitude-longitude coordinates, even if you have set your GPS unit to display the coordinates in UTM or some other projection system. This means that they will only overlay other features in ArcView properly if the other map layers are also saved in latitude longitude coordinates. ArcView can display latitude-longitude data in other coordinate systems by going to View -- Properties, but all the map data must be saved in latitude longitude coordinates in order to overlay properly. If your other map data are saved in UTM or another projection system, import your waypoints into an empty view and then use the Projector!mod extension for ArcView 3.x to reproject your waypoints into the appropriate projection system.
Routes and Tracks
Currently the Excel macro doesn't read routes saved in a waypoint file, although these are saved in the same waypoint file and may be supported in the future. However if you have waypoints that define a linear feature or the boundary of a polygon, what you can do is convert the waypoints into a point shapefile using the procedure described above, making sure they are in the correct order, and then use Xtools to convert the point shapefile into a line or polygon shapefile.
MapSend saves tracks in a separate file format which is not supported at this time.
Alternative Solutions
Alternative solutions for Magellan GPS owners include:
Future Work
The ultimate software solution for this task is to create a DLL library using Visual Basic or C++ that can read MapSend waypoint files (and perhaps track files too), and then write a an Avenue extension for ArcView 3.x that will call this external library and then create a point shapefile. This should not be very difficult, and the VBA code in the Excel spreadsheet above should be reusable without modification (if programming in VB). If any programmers out there want to work on this, let me know. I would be willing to help with the Avenue part. This document which describes the format of a MapSend file is also very helpful.
I haven't migrated to ArcView 8.x yet because its so expensive, but this version of ArcView supports VBA directly, so it should be possible to basically use the VBA script in the spreadsheet described above to directly read a MapSend waypoint file. In the meantime, you can use the Excel macro described above to convert MapSend waypoints into a delimited text file, and then read your ArcView manual to find out how to create an event theme (if they still use that language) from a table or otherwise import points saved in a delimited text file.