色尼玛亚洲综合影院,亚洲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開發,轉載需保留來源!

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

主站蜘蛛池模板: 蓝山县| 鹤庆县| 兴海县| 广饶县| 攀枝花市| 乐陵市| 宝丰县| 连州市| 文水县| 洪湖市| 台中市| 民权县| 刚察县| 克拉玛依市| 上高县| 新干县| 弥勒县| 永城市| 榆社县| 龙川县| 始兴县| 碌曲县| 南汇区| 施甸县| 和政县| 晋城| 台东市| 承德县| 舞钢市| 延吉市| 揭西县| 敦煌市| 手游| 双流县| 塘沽区| 望谟县| 乐东| 体育| 北海市| 九江县| 济宁市|