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 データの解析については、このリンクを確認してください。うまくいけば、それは役に立ちます。