-5

我可以在 Windows 7 桌面应用程序上获取纬度和经度吗?

通常它可以在使用 GPS、3G 或 WiFi 的手机或平板电脑上运行。

但是我如何使用 c# 获得坐标?

4

1 回答 1

3

标准 GPS 设备(内部或外部)在串行端口上发送数据。从串口接收任何数据非常容易。请检查此链接

    //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 数据由NMEA协议组成。数据本身只是 ascii 文本,可以扩展到多个句子,例如

  • GGA
  • 总务署
  • GSV
  • RMC

以下来自维基百科的示例数据。

$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

可用于位置数据(纬度/经度)的适当字符串是 RMC。

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

它的信息在这里描述

$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

对于完整的 GPS 数据解析,您可以查看此链接。希望它会有所帮助。

于 2012-05-04T07:32:36.153 回答