<p>I'm looking for a GPS with a good API.  I would like to be able to send an address to it, and tell it to navigate to that address.  I also need to pull the current location from the GPS.  I'd like to be able to do this with the GPS hooked up to a laptop by bluetooth or even just a USB cable.</p>

<p>I've looked at the Dash a little, but the monthly subscription is a downside.  Also, I would like to keep the location and addresses on our private network.</p>

<p>I'm a .NET programmer, so a .NET friendly API is best for me.</p>

<p>Bonus points if you can show me some examples of using an API to push and pull data to and from the GPS.  </p>

[{'answer_id': 10065, 'author': 'Matt Dillard', 'author_id': 863, 'author_profile': 'https://Stackoverflow.com/users/863', 'pm_score': 3, 'selected': False, 'text': '<p>If you want to talk to a Garmin GPS, you can check out their <a href="http://developer.garmin.com" rel="nofollow noreferrer">developer website</a>.  They\'ve got resources ranging from talking to Web Services all the way to doing low-level Serial &amp; USB I/O to interface directly with the devices.</p>\n'}, {'answer_id': 10070, 'author': 'ninesided', 'author_id': 1030, 'author_profile': 'https://Stackoverflow.com/users/1030', 'pm_score': 1, 'selected': False, 'text': '<p>I presume that by GPS you mean Satellite Navigation? Most GPS units don\'t offer the turn-by-turn capability required to navigate effectively on roads, or the underlying road map data for that matter.</p>\n\n<p><strong><em>updated:</em></strong> OK, since Garmin are by far the biggest dog in the yard, I\'d recommend taking a look at Garmin\'s <a href="http://developer.garmin.com/lbs/lbs-toolkit/" rel="nofollow noreferrer">Location Based Services Toolkit</a>, <a href="http://developer.garmin.com/lbs/fleet-management/" rel="nofollow noreferrer">Fleet Management Toolkit</a> and their <a href="http://developer.garmin.com/web-device/garmin-communicator-plugin/" rel="nofollow noreferrer">Communicator API</a> (specifically the <a href="http://developer.garmin.com/web-device/garmin-communicator-plugin/devicecontrol/" rel="nofollow noreferrer">DeviceControl</a> module).</p>\n'}, {'answer_id': 87251, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 2, 'selected': False, 'text': "<p>What about using a GPS enabled phone running WM? I have the Motorola Q9c. I'm working on a GPS Data Logger so I can map my flights. The windows mobile SDK has a great C# sample to work with.</p>\n"}, {'answer_id': 353017, 'author': 'MSalters', 'author_id': 15416, 'author_profile': 'https://Stackoverflow.com/users/15416', 'pm_score': 1, 'selected': False, 'text': '<p>Have a peek at routes.tomtom.com, they can send addresses to a TomTom.</p>\n\n<p>(Warning: <a href="http://www.freepatentsonline.com/y2007/0266177.html" rel="nofollow noreferrer">patent pending</a> !)</p>\n'}, {'answer_id': 631106, 'author': 'Dan', 'author_id': 76086, 'author_profile': 'https://Stackoverflow.com/users/76086', 'pm_score': 2, 'selected': False, 'text': "<p>GPS Devices normally don't normally provide turn-by-turn information.  </p>\n\n<p>Almost all GPS devices (internal, linked via bluetooth or whatever) conform to the NMEA standard, which simply provides a latitude, longitude and elevation encapsulated in a simple text-based protocol. Almost all of these communicate over a simple serial port, which you can get access to in about 4 lines of code using .NET.</p>\n\n<p>Turn-By-Turn directions are computed by the device which the GPS is attached to - your PDA, Phone or computer. If there's an internet connection available, the Google Maps or Windows Live Local APIs are really easy to use (especially from .NET using a WebRequest or Sockets) and would probably be the best solution to your problem!</p>\n"}]
['https://Stackoverflow.com/questions/10061', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/571/']