當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]WinCE下基于ArcGIS Mobile實(shí)現(xiàn)的嵌入式地圖

很多場(chǎng)合的嵌入式應(yīng)用,需要涉及地圖操作。目前嵌入式GIS產(chǎn)品國(guó)外主要有ESRI和MapInfo,國(guó)內(nèi)主要有超圖、靈圖等[1]。
 本文介紹在某基于WinCE 6.0操作系統(tǒng)的車載信息終端上嵌入式地圖的實(shí)現(xiàn)方法。主要的目標(biāo)功能如下:能夠?qū)崿F(xiàn)基本的地圖操作,例如放大、縮小、漫游、分圖層顯示;用戶圖層的繪制,例如在地圖上疊加軍標(biāo)、繪制符號(hào)等;能夠接收GPS坐標(biāo)、繪制本車或它車的地理位置。
本文的開發(fā)環(huán)境使用VS 2005、ArcGIS Server v9.3,編程語言使用C#,目標(biāo)操作系統(tǒng)為WinCE 6.0。
1 ArcGIS Mobile開發(fā)環(huán)境
 ArcGIS Server是ESRI公司推出的專業(yè)的GIS應(yīng)用整合套裝軟件,其主要目標(biāo)是提供地理信息網(wǎng)絡(luò)服務(wù),在大型GIS系統(tǒng)與終端設(shè)備間提供無縫的信息交換與服務(wù)。為了支持PDA、智能手機(jī)之類的手持設(shè)備,按照任務(wù)的復(fù)雜程度,ArcGIS為移動(dòng)GIS提供了三種解決方案:ArcGIS Mobile、ArcPad以及ArcGIS Engine[2]。本文介紹依托ArcGIS Mobile開發(fā)的嵌入式應(yīng)用。此外,還利用ArcMap和ArcCatalog這兩個(gè)工具進(jìn)行地圖制作和地圖發(fā)布,而且這兩個(gè)工具也都包含在ArcGIS Server套裝中。
 ArcGIS Mobile的基本功能包括:瀏覽空間數(shù)據(jù),捕捉、標(biāo)注GPS位置,創(chuàng)建或更新點(diǎn)、線、面等要素,通過ADO.Net編輯表格數(shù)據(jù),自動(dòng)從GIS服務(wù)器同步更新數(shù)據(jù)等[3]。
基于ArcGIS Mobile開發(fā)移動(dòng)應(yīng)用的基本步驟是:首先使用ArcMap編輯地圖;然后使用ArcCatalog或者ArcGIS Server Manager發(fā)布地圖;使用Visual Studio 2005以及ArcGIS Mobile SDK開發(fā)應(yīng)用程序;最后將數(shù)據(jù)和應(yīng)用程序部署到目標(biāo)設(shè)備[4]。
2 地圖數(shù)據(jù)的準(zhǔn)備
 ArcGIS Mobile開發(fā)的應(yīng)用,不僅支持在線應(yīng)用,同時(shí)也支持離線應(yīng)用。在應(yīng)用程序有可用的網(wǎng)絡(luò)使用時(shí),ArcGIS Mobile可以在線同步更新數(shù)據(jù),并下載到本地設(shè)備上作為緩存;當(dāng)網(wǎng)絡(luò)不可用時(shí),ArcGIS Mobile可以使用緩存數(shù)據(jù)。
 本文描述的終端設(shè)備不需要考慮地圖編輯功能,也不需要從地圖服務(wù)器讀取數(shù)據(jù),所以在應(yīng)用部署時(shí),應(yīng)預(yù)先生成緩存再直接部署到目標(biāo)設(shè)備上與應(yīng)用程序一起發(fā)布。
ArcToolbox為Mobile應(yīng)用提供了兩個(gè)工具,其中Generate Mobile Service Cache用來生成Mobile地圖服務(wù)的緩存。需要注意的是,為了支持移動(dòng)應(yīng)用,在發(fā)布服務(wù)時(shí),應(yīng)選中“Mobile Data Access”。如果用戶不需要修改地圖數(shù)據(jù),還可以創(chuàng)建Basemap,對(duì)地圖數(shù)據(jù)進(jìn)行高度壓縮,使之在移動(dòng)設(shè)備上的性能更加優(yōu)化[5]。
3 應(yīng)用程序開發(fā)
 在Visual Studio 2005下提供了智能設(shè)備應(yīng)用程序開發(fā)向?qū)В梢园凑障驅(qū)нM(jìn)行應(yīng)用程序的開發(fā)。為了使用ArcGIS Mobile提供的類,應(yīng)當(dāng)引用相應(yīng)的命名空間。
3.1 在應(yīng)用程序中加入Map控件
 在工具箱的“ArcGIS Mobile Controls”選項(xiàng)卡中提供了與Mobile開發(fā)的各種控件,其中Map控件提供了對(duì)地圖內(nèi)容進(jìn)行管理和控制的功能。當(dāng)給窗體添加了一個(gè)Map對(duì)象時(shí),Map控件會(huì)自動(dòng)綁定一個(gè)MobileService對(duì)象。在ArcGIS Mobile中,地圖內(nèi)容通過MobileService控件獲得并發(fā)送,Map主要負(fù)責(zé)地圖的表現(xiàn)。地圖服務(wù)地址和地圖緩存路徑的設(shè)置也保存在MobileService對(duì)象中。
3.2 從緩存讀取地圖數(shù)據(jù)
 為了顯示地圖,首先通過MobileService控件讀取地圖緩存數(shù)據(jù)?;静襟E是:在程序初始化時(shí),首先通過MobileService的CacheStoragePath屬性設(shè)置緩存路徑,然后利用MobileService的Open方法,打開緩存。示例代碼如下(省略了異常捕獲語句):
mobileService1.CacheStoragePath=@"MapCache";
mobileService1.Open(CacheOpenMode.Open);
3.3 地圖基本操作的實(shí)現(xiàn)
 地圖的基本操作如放大、縮小和漫游等可以通過Map控件的MapActions屬性來實(shí)現(xiàn)。MapActions是與Map控件關(guān)聯(lián)的地圖操作模式集合,常用的有PanMapAction、ZoomInMapAction等。將需要的地圖操作模式添加到MapActions集合,在地圖操作模式需要改變時(shí),設(shè)置Map控件的CurrentMapAction屬性為MapActions集合中的一種,當(dāng)前的地圖操作模式也就隨之改變。
例如,準(zhǔn)備通過點(diǎn)擊工具欄的Button實(shí)現(xiàn)地圖放大操作,則首先創(chuàng)建ZoomInMapAction的新實(shí)例,然后將新實(shí)例加入Map控件的MapActions,響應(yīng)Button單擊事件,將Map控件的CurrentMapAction屬性設(shè)置為 ZoomInMapAction。代碼如下:
 private ESRI.ArcGIS.Mobile.MapActions.
 ZoomInMapAction zoomInMapAction1;
 this.zoomInMapAction1=new ESRI.ArcGIS.
 Mobile.MapActions.zoomInMapAction1
?。╰his.components);
  this.map1.MapActions.Add(this.zoomInMapAction1);
  this.map1.CurrentMapAction=zoomInMapAction1;[!--empirenews.page--]
 在移動(dòng)設(shè)備沒有鼠標(biāo)、觸摸屏等定位設(shè)備時(shí),可以采取一種變通的方式進(jìn)行地圖的縮放,這就是Envelope類。Envelope用來定義一個(gè)幾何對(duì)象的區(qū)域,可以借助它先獲取地圖的顯示區(qū)域,然后改變Envelope,再設(shè)置地圖的顯示區(qū)域。代碼如下:
 this.envelop1=this.map1.GetExtent();
 this.envelop1.Resize(0.5);
 this.map1.SetExtent(this.envelop1);
 利用Map控件的GetExtent和SetExtent方法來獲取及設(shè)置地圖的可視區(qū)域。CenterAt方法可以改變地圖的中心位置。為了在屏幕坐標(biāo)和地理坐標(biāo)之間進(jìn)行轉(zhuǎn)換,可以調(diào)用Map控件的ToMap和ToClient方法。
3.4 用戶圖層符號(hào)標(biāo)繪的實(shí)現(xiàn)
 軍事上的態(tài)勢(shì)標(biāo)繪常常需要在地圖圖層之上疊加各種軍標(biāo)符號(hào),比較簡(jiǎn)單的方法是響應(yīng)Map控件的Paint事件。Display對(duì)象在Map圖層之上顯示,當(dāng)所有的圖層繪制完畢后,重繪Display之前會(huì)觸發(fā)Paint事件,此時(shí)可以使用Display對(duì)象繪制圖形、文本和圖像。需要說明的是,Display對(duì)象繪制的內(nèi)容不可以保持,用戶應(yīng)注意重繪。調(diào)用Display對(duì)象繪制一個(gè)圓點(diǎn)的代碼如下:
 private void map1_Paint(object sender,
 MapPaintEventArgs e)
 {
 e.Display.DrawPoint(
  new Pen(Color.Blue),
  new SolidBrush(Color.Red), 3,
  map1.ToMap(100, 100));
 }
 另一種繪制用戶符號(hào)的方法是借助繪圖圖層(graphic layers),Map控件的MapGraphicLayers屬性表示繪圖圖層的集合。地圖中包括地理圖層(geographic layers)、注解圖層(annotation layers)和繪圖圖層(graphic layers)三類圖層。前兩類圖層的數(shù)據(jù)都由數(shù)據(jù)源讀取,繪圖圖層則由用戶控制,可以在地理圖層、注解圖層之上顯示額外的信息。其使用方法是:首先為Map控件的MapGraphicLayers屬性添加MapGraphicLayer對(duì)象或其派生對(duì)象的實(shí)例,然后重載該實(shí)例的Draw()方法。這樣當(dāng)Map重繪時(shí),就會(huì)通過Draw()方法完成用戶符號(hào)的繪制。
3.5 GPS定位功能的實(shí)現(xiàn)
 ArcGIS Mobile提供了3個(gè)GPS相關(guān)的控件對(duì)GPS進(jìn)行支持:(1)FileGpsConnection控件:提供文件GPS連接,它可以從一個(gè)包含GPS數(shù)據(jù)的文本文件中,模擬一個(gè)GPS連接,這樣在調(diào)試中會(huì)非常方便;(2)Seria1P0rtGpsConnection控件:提供串口GPS連接,主要用在實(shí)際應(yīng)用中;(3)GpsDisplay和上述兩種GpsConnection聯(lián)動(dòng),實(shí)現(xiàn)GPS信息在地圖上的表現(xiàn)。
在沒有GPS設(shè)備的時(shí)候,可以使用FileGpsConnection進(jìn)行調(diào)試。FileGpsConnection的原理就是從一個(gè)包含GPS數(shù)據(jù)的文本文件,模擬GPS連接。將FileGpsConnection對(duì)象的FileName屬性指定為這個(gè)GPS數(shù)據(jù)文件,然后調(diào)用Open和Close方法就可以打開或關(guān)閉GPS連接。每次GPS位置點(diǎn)改變時(shí),都會(huì)觸發(fā)GpsChanged事件,在此事件中,可以更新地圖的位置。
3.6 應(yīng)用程序的部署
 在部署應(yīng)用程序之前要在移動(dòng)設(shè)備上安裝一些必要的支持文件,一個(gè)是.NET CF運(yùn)行,另一個(gè)是ArcGISMobile.CAB和AGMRuntime.CAB,通過ActiveSync把它們拷貝到移動(dòng)設(shè)備并運(yùn)行;然后把項(xiàng)目生成的可執(zhí)行文件拷貝到移動(dòng)設(shè)備上,即可以運(yùn)行創(chuàng)建的應(yīng)用程序。
 如果在VS 2005環(huán)境下調(diào)試應(yīng)用程序,應(yīng)用程序會(huì)自動(dòng)部署到目標(biāo)設(shè)備上。
 本文介紹了使用ArcGIS Mobile開發(fā)嵌入式GIS應(yīng)用的基本方法,這些方法已經(jīng)在工程實(shí)踐中得到了應(yīng)用。本文的主要目標(biāo)是實(shí)現(xiàn)態(tài)勢(shì)、軍標(biāo)在移動(dòng)設(shè)備上的顯示,ArcGIS Mobile作為一款專業(yè)的移動(dòng)GIS平臺(tái),這些功能只是其中一小部分。ArcGIS Mobile的進(jìn)一步開發(fā),例如數(shù)據(jù)的現(xiàn)地編輯、數(shù)據(jù)回傳等應(yīng)結(jié)合ArcGIS Server來實(shí)現(xiàn)。
參考文獻(xiàn)
[1] 陳敦根,蔣浩宇,范躍祖.嵌入式GIS軟件ArcPad的二次開發(fā)技術(shù)[J].嵌人式軟件應(yīng)用,2006(22):37-39.
[2] ESRI.ArcGIS desktop help[CP/DK].2008.
[3] 賀軍政,毛奎中,林均玲.基于移動(dòng)GIS的測(cè)繪系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].測(cè)繪工程,2010(8):39-42.
[4] 吳泳鋒.使用ArcGIS Mobile SDK 9.3開發(fā)移動(dòng)設(shè)備應(yīng)用[EB/OL].http://www.docin.com/p-20680 8084.html.2011-08-01.
[5] 朱磊,陳鵬,何兵,等.基于ArcGIS Mobile的移動(dòng)地理信息系統(tǒng)的關(guān)鍵技術(shù)[J].鐵道勘察,2009(12):58-54.

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉