我可以在 Windows 7 桌面应用程序上获取纬度和经度吗?
通常它可以在使用 GPS、3G 或 WiFi 的手机或平板电脑上运行。
但是我如何使用 c# 获得坐标?
标准 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 文本,可以扩展到多个句子,例如
以下来自维基百科的示例数据。
$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 数据解析,您可以查看此链接。希望它会有所帮助。