[Solved] How do I get latitude and longtitude for desktop application? [closed]


A standard GPS device (internal or external) sends data on a serial port. Receiving any data from Serial Port is very easy. Please check this link.

    //define serial port
    SerialPort serialPort1 = new SerialPort();

    //configuring the serial port
    serialPort1.PortName="COM1";
    serialPort1.BaudRate=9600;
    serialPort1.DataBits=8;
    serialPort1.Parity=Parity.None;
    serialPort1.StopBits= StopBits.One;

   //read data from serial port
   string data = serialPort1.ReadExisting();

GPS data is composed on NMEA protocol. The data itself is just ascii text and may extend over multiple sentences e.g.

  • GGA
  • GSA
  • GSV
  • RMC

Sample data from wikipedia below.

$GPGGA,092750.000,5321.6802,N,00630.3372,W,1,8,1.03,61.7,M,55.2,M,,*76
$GPGSA,A,3,10,07,05,02,29,04,08,13,,,,,1.72,1.03,1.38*0A
$GPGSV,3,1,11,10,63,137,17,07,61,098,15,05,59,290,20,08,54,157,30*70
$GPGSV,3,2,11,02,39,223,19,13,28,070,17,26,23,252,,04,14,186,14*79
$GPGSV,3,3,11,29,09,301,24,16,09,020,,36,,,*76
$GPRMC,092750.000,A,5321.6802,N,00630.3372,W,0.02,31.66,280511,,,A*43

The appropriate string you can use for location data (Latitude/Longitude) is RMC.

$GPRMC,092750.000,A,5321.6802,N,00630.3372,W,0.02,31.66,280511,,,A*43

It’s information is described here

$GPRMC,225446,A,4916.45,N,12311.12,W,000.5,054.7,191194,020.3,E*68


       225446       Time of fix 22:54:46 UTC
       A            Navigation receiver warning A = OK, V = warning
       4916.45,N    Latitude 49 deg. 16.45 min North
       12311.12,W   Longitude 123 deg. 11.12 min West
       000.5        Speed over ground, Knots
       054.7        Course Made Good, True
       191194       Date of fix  19 November 1994
       020.3,E      Magnetic variation 20.3 deg East
       *68          mandatory checksum

For complete GPS data parsing you can check this link. Hopefully it will help.

solved How do I get latitude and longtitude for desktop application? [closed]