天天看點

使用ArcGIS Mobile SDK 9.3 開發移動裝置應用-進階篇

【概述】概述如何通過ArcGIS Server 9.3提供的Mobile SDK開發移動裝置應用。

【環境】 Windows XP SP3,ArcGIS Server 9.3,Visual Studio 2008,Windows Mobile 6 Professional SDK

預生成地圖緩存

我們已經知道,ArcGIS Mobile支援離線和線上兩種應用。我們可以選擇讓ArcGIS Mobile應用在首次請求的時候儲存地圖緩存,也可以在此之前(部署應用之前),預先生成緩存,跟應用一起釋出。是不是有點像原來的單機裝置應用?

好,讓我們把ArcCatalog打開,啟動ArcToolbox工具箱:

使用ArcGIS Mobile SDK 9.3 開發移動裝置應用-進階篇

在工具箱中,找到“Mobile Tools”。ArcToolbox專門為Mobile應用提供了兩個工具。其中“Generate Mobile Service Cache”就是用以生成Mobile地圖服務的緩存。

使用ArcGIS Mobile SDK 9.3 開發移動裝置應用-進階篇
使用ArcGIS Mobile SDK 9.3 開發移動裝置應用-進階篇

點選确認,經過處理,在指定目錄生成了緩存。我們可以比較一下,這些緩存和在移動裝置上通過 MobileService對象生成的緩存是一樣的。換句話說,在部署的時候将這些緩存部署到緩存目錄以後,MobileService可以直接打開它,無需與伺服器進行任何互動。

Mobile Basemap

這是Mobile的特殊資料,目的在于通過對地圖資料進行高度壓縮,使之在移動裝置上的性能更加優化。Basemap與我們前面使用的Mobile地圖服務資料不同,Basemap是不提供使用者進行操作的,它将在程式運作時首先被渲染,其他所有的Mobile地圖都将在它之上繪制——簡單地說,它應該被稱為底圖。

建立Mobile Basemap很簡單,我們從ArcToolbox中點選“Create Mobile Basemap”,根據提示操作即可。一個mxd文檔對應一個navmap檔案,每個圖層也都有相應的對應檔案。

使用ArcGIS Mobile SDK 9.3 開發移動裝置應用-進階篇

在ArcGIS Mobile中,有個專門的命名空間“ESRI.ArcGIS.Mobile.SdcData”,這個命名空間包括了所有對Basemap進行操作的類。事實上,Mobile Basemap對應的資料叫做SDC base map data。

Basemap的使用非常簡單:

try

{

ESRI.ArcGIS.Mobile.SdcData.SdcMapLayer sdcMapLayer = new ESRI.ArcGIS.Mobile.SdcData.SdcMapLayer(@"/Storage Card/bj_basemap/bj.navmap");

map.MapLayers.Add(sdcMapLayer);

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

看一下效果。我們把整個北京地圖生成了Basemap預先部署到移動裝置上,而僅僅将建築物圖層釋出成地圖服務,如圖,Basemap自動襯在底部,想一下,對于某些應用,你會不會有一種把所有不經常變化的内容全部生成Basemap的沖動?

哦,還需要說明一下,Basemap和其他Mobile 地圖服務的空間參考需要是一緻的。

使用ArcGIS Mobile SDK 9.3 開發移動裝置應用-進階篇

開發移動桌面程式

說是移動桌面程式,跟不移動的桌面程式有差別麼?是以,這一部分需要說的内容實在太少了,在移動裝置上開發調試都可以過來了,桌面程式還有困難麼?

當然,還是有一點點小地方需要注意。比如建立工程,一定不要采用預設設定.Net Framework為3.5版本。

使用ArcGIS Mobile SDK 9.3 開發移動裝置應用-進階篇

常見問題

以下是Develop Help中提到的一些常見問題:

1. ArcGIS 9.3 的Mobile SDK 是否使用ArcGIS 9.2 釋出的 Mobile Service

很遺憾,不能……

2. 我能用 Visual Studio 2003 開發ArcGIS Mobile 應用嗎?

不能,ArcGIS 9.3 Mobile SDK需要.Net Compact Framework 2.0支援。

3. 我生成了Mobile 應用,但是為什麼我看不到地圖?

出現這個問題,如果你使用了地圖緩存,檢查你的緩存路徑是否正确。如果是從伺服器擷取資料,那麼檢查你的 Mobile 地圖服務是否正常工作。同時,确認你的Map控件的Datasource屬性中的MobileService對象設定正确。

4. 為什麼ArcGIS Mobile toolbox 沒被添加到Visual Studio 2008 工程中來?

ArcGIS 9.3 Mobile SDK不能和.Net (Compact) Framework 3.5相容,這是Visual Studio 2008的預設設定,注意在建立工程的時候選擇正确的.Net Framework。

5. 如何獲得開發ArcGIS Mobile 應用的最新資訊?

http://edn.esri.com/index.cfm?fa=mobile.gateway

【結語】好了,到這裡,ArcGIS Mobile SDK 9.3的整體内容已經基本介紹完成。ArcGIS Mobile作為ArcGIS Server的一部分釋出,其與ArcGIS Server也的确是緊密相連。當然,事實上在某些條件下,ArcGIS Mobile還是可以脫離ArcGIS Server跑起來的。希望本文能給你開發移動GIS應用帶來一點幫助!