I have now spent the better part of two months on this project and now feel I have working program. The genesis of the development effort was the purchase of a GPS reader for my netbook. The software that came with the device was inadequate for my use so I initiated work on a custom program. The main feature I required was a way to save locations with text notes. I set up a listView based upon Mike Gold's excellent tutorial from the C# corner. The GPS hardware read was extracted from numerous sources from the "Codeproject". I used this very generic program for several years and it worked quite well so I was motivated to add some features.
If you have a GPS device connected it is first necessary locate the hardware device with the button "Find Com Port" in the original source code this was accomplished through a drop down menu with a choice of com ports 1-4. Surprise surprise my netbook sees the device on com port 10. I have left the drop down menu but I have also implemented a "Find Com Port" button which iterates from 15 to 1 until the Com port is found. This seems to be working without problem and greatly simplifies hardware initiation. The GPS hardware does not require the Internet.
I wanted a way to navigate from a selected location to that location in Google Earth. I have had this up and running several times only to have all my work rendered unusable due to changes made to the "Google Earth" command line arguments. Also the newest "Google Earth" has no way to save a locations Lat Long although any changes in location are saved to the address bar. I have now made it so you can copy the address bar and go to readGPS.exe and paste the clipboard. If the program finds a URL in the clipboard it automatically extracts the Long Lat. In this manner you can save locations from Google Earth to your data file and return to a specific location in Google Earth. These features require access to the Internet of course.
I recently wanted to calculate the distance between two selected points. I was able resurrect enough of my spherical trig from 50 years ago to get the calculations working correctly only to discover there is a very simple way to do this using framework 4.5. I usually use previous framework versions 2.0 or 3.5 so my programs are compatible with users who have not updated to the most recent framework. The program presently requires framework 4.5. Of course this calculation is "as the crow flies".