色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

WM--GPS開發

  前幾天,有朋友托我給他寫個GPS程序,就取經緯度坐標,以及將之轉換成高斯直角坐標。花了一些時間,給他做了個小程序。

  后來總結時,想起,很多網上朋友都會問及關于GPS開發的一些事。我這里先將我的程序解釋下,然后再總結下,相關經驗及個人看法。

  目前在一些移動設備中,都提供GPS功能,設備中都需要一個接收器,用來接收GPS信號。(類似于GPRS工作方式)。GPS一旦啟動后,會自動連接衛星,接收信號,通過算法計算出位置等信息,然后以NMEA data的格式輸出。GPS receiver就是接收衛星信號轉換成NMEA data的設備。

  開發GPS有3種選擇:
  1、直接使用串口連接GPS接收器
  2、GPS Intermediate Driver
  3、使用第三方類庫(目前openNETcf提供相應類庫)

  目前,WM5.0以上系統,都內置了GPS Intermediate Driver。通過它,我們能夠很方便的取道GPS數據。

  關于GPS方面的文章可以參考:
  1、30 Days of .NET [Windows Mobile Applications] - Day 03: GPS Compass(GPS指南針)
  2.NET Compact Framework下的GPS NMEA data數據分析

  雖然GPS Intermediate Driver提供了我們非常快捷的取得GPS信息,但同時也有一定的弊端。

  那下面我講介紹我如何在該項目中使用GPS的。

  我使用GPS Intermediate Driver,它能夠快速開發,MS也提供了很強大的例子來方便我們使用。
在微軟的WM SDK安裝目錄下有GPS工程。(Windows Mobile 6 SDK/Samples/PocketPC/CS/GPS)

  該Demo中
  GPS.cs:封裝了GPS的操作類,比如Open(),Close(),Connect()。可以很快捷的使用。
  GpsDeviceState.cs:用于取得目前GPS設備的狀態信息。
  GpsPosition.cs:每次GPS數據取得后,都會放入該類。
  LocationChangedEventArgs.cs:一旦位置改變,即可將新的GPSPosition取得到。

public void Open()
{
    
if (!Opened)
    {
         
// create handles for GPS events
         newLocationHandle = CreateEvent(IntPtr.Zero, 00null);
         deviceStateChangedHandle 
= CreateEvent(IntPtr.Zero, 00null);
         stopHandle 
= CreateEvent(IntPtr.Zero, 00null);

         gpsHandle 
= GPSOpenDevice(newLocationHandle, deviceStateChangedHan
dle, 
null0);

         
// if events were hooked up before the device was opened, we'll need
         
// to create the gps event thread.
         if (locationChanged != null || deviceStateChanged != null)
         {
             CreateGpsEventThread();
         }
    }
}

NET技術WM--GPS開發,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 增城市| 贵州省| 荣成市| 隆安县| 唐海县| 栾城县| 苏尼特左旗| 鄂州市| 黔西| 任丘市| 双流县| 始兴县| 沙湾县| 仁寿县| 成安县| 卢龙县| 嵊州市| 建始县| 浦北县| 西昌市| 白河县| 汉源县| 绥德县| 渝中区| 甘孜| 新和县| 云浮市| 苍梧县| 沂水县| 娄烦县| 扎囊县| 霍山县| 肇州县| 保山市| 宜川县| 高雄市| 连南| 长垣县| 漳浦县| 桐柏县| 肇东市|