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

WM--GPS開發

  前幾天,有朋友托我給他寫個GPS程序,就取經緯度坐標,以及將之轉換成高斯直角坐標?;艘恍r間,給他做了個小程序。

  后來總結時,想起,很多網上朋友都會問及關于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開發,轉載需保留來源!

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

主站蜘蛛池模板: 定西市| 视频| 鸡西市| 仲巴县| 响水县| 灵山县| 东辽县| 鲁甸县| 海林市| 库伦旗| 东乡族自治县| 甘泉县| 梧州市| 莱西市| 黄龙县| 家居| 遂昌县| 宜宾县| 南皮县| 丰宁| 宾阳县| 东平县| 芷江| 山阴县| 横山县| 云霄县| 梅河口市| 太仆寺旗| 建阳市| 分宜县| 湘潭市| 临安市| 辽阳市| 景泰县| 上犹县| 西峡县| 定远县| 昌都县| 双牌县| 澄迈县| 尼木县|