4

GPS 受信機も備えた Windows Mobile 6.0 電話を持っているとします。WinMobile SDK は GPS 機能へのアクセスをサポートしていますか?

そうでない場合、GPS を使用してプログラミングするためのオプション (API) は何ですか。つまり、GPS 機能を使用するアプリを作成します。主に Windows Mobile 6.x に関心がありますが、一般的な回答も含めてください。

私は確かに最も役立つ回答に投票します。

前もって感謝します。

4

6 に答える 6

6

2 つのオプション:

  1. MSDNに .Net のハウツー記事がある中間 GPS ドライバーがあります。
  2. シリアル ポート (もちろん UI で構成可能) に接続し、自分で NMEA 文字列を解析できます。

オプション (1) はおそらく推奨されます

于 2009-01-22T11:08:28.240 に答える
5

Chris Craft は、シリーズ30 日間の .NET Windows Mobile アプリケーションで、この種のソース コードをたくさん持っていました。

  • 第 1 週 - GPS コンパスを含む
  • 第 3 週 - GPS 速度計と GPS 高度計を含む
  • 第 4 週 - GPS クロックを含む

残念ながら、このブログ シリーズは終了したようですが、ありがたいことに、コードは Codeplex に保存されています。

30 日間の Windows Mobile アプリケーション

また、C への移植と、元の投稿に関するいくつかの議論は、/dev/mobileで見つけることができます。

Raffaele Limosaniのブログには、中級 GPS ドライバーの使用に関する注意事項もあります。


編集して追加:

GPS.NET は最近オープン ソースになり、CodePlex で利用できるようになりました。

GPS.NET 3.0

于 2009-01-22T11:22:46.760 に答える
3

.NET Compact Framework での開発を計画している場合は、Windows Mobile Developer Samples に非常に広範な GPS の例があります。それは基本的に gpsapi.dll のラップを使用しますが、動作を示しています。C:\Program Files\Windows Mobile 6 SDK に WM6 キットをインストールした後、GPS サンプルは C:\Program Files\Windows Mobile 6 SDK\Samples\PocketPC\CS\GPS にあります。

幸運を!

于 2009-01-22T11:08:01.127 に答える
2

CodeProject.comでいくつかのソリューションを見てみてください。Windows Mobile と GPS に関する非常に優れた記事がたくさんあります。

于 2009-01-22T11:34:13.430 に答える
1

また、中間ドライバーを使用するコードをテストするには (他の回答を参照)、この中間ドライバーを介してファイルに保存された NMEA ストリームをパイプするために使用できる SDK の FakeGPS ユーティリティを忘れないでください。これにより、GPS ソフトウェアを簡単にテストできます。実際に GPS を受信して​​動き回る必要はありません。

于 2009-01-22T11:34:15.597 に答える
0

私の観点からは、シリアル ポート (私の場合は COM5、ボーレート 4800) を読み取り、受信したデータを解析する方がはるかに簡単です。(文字列を解析する方法は、Google とフレーズで見つけることができます: gps NMEA 文)

私にとって、アドレスの例を理解することは不可能です:

C:\Program Files\Windows Mobile 6 SDK\Samples\PocketPC\CS\GPS

それはすべて非常に複雑で簡単ではありません。次のようなはるかに簡単で便利なインターフェイスを期待しています。

myGps = new GPS()
myGPS.getPosition

しかし、これはおそらく不可能です:(

そしてRS232経由でそれを行う方法は? (私はVB.NETで働いています)

GUI で (またはプログラムで) オブジェクト System.IO.Ports.SerialPort を作成し、そのイベント DataReceived を使用します。データが GPS から来るたびに、このイベントが発生し、その本体で処理できます。

データは、セクション $GPGGA、$GPGSA などに分割された長い文字列の形式です。重要なのは $GPGGA です。それぞれの特定の情報はカンマで区切られています。この文字列のみを解析するよりも - VB.net で myArray = myData.Split(","c) を使用します。

http://aprs.gids.nl/nmea/

PS: ","c は、カンマが文字列ではなく文字列であることを意味します (VB.NET)

ご覧のとおり、数行以上のコードを記述する必要はありません。MS による例は不必要に難しく、初心者向けではありません。

PS2: GPS にコマンドを送信しないことに注意してください。自動的かつ定期的にデータをプログラムに送信します。ポートを開き、バッファからすべてのデータを読み取り、Chr() を使用して文字列に変換し、解析するだけです。大きな問題ではない。

于 2011-09-19T13:06:43.433 に答える