Устройства GPS обмениваются данными с использованием стандартного протокола, называемого протоколом NMEA.
Предполагая, что вы используете .NET, вы можете проверить код позиционирования в проекте с открытым исходным кодом DotSpatial: http://dotspatial.codeplex.com/
У них есть классы для декодирования строк NMEA, и они могутвероятно, делать большую часть того, что вы описываете из коробки.
Что касается лучшего устройства GPS, если вам нужны стандартные разрешения, подойдет любое устройство GPS.Их можно купить за 10 долларов.Мы часто используем модель USGlobalSat BU-353, хотя это USB, поэтому она может не работать в вашем приложении.