隨著ArcGIS 10.1發布時間的臨近,ArcGIS各產品線的統一命名也被公布,我們熟悉的ArcGIS for iOS被歸類到Runtime,稱為“ArcGIS Runtime for iOS”。這體現出了Esri對移動平台的重視、已經把對Mobile的支援(iOS、Android、WindowsPhone等)和傳統的案頭(Windows、Linux)放在一個層級上了,而原來的ArcGIS
API for iOS也更名為“ArcGIS Runtime SDKfor iOS”,可能SDK更符合C/S開發方式的風格,SDK包含了ArcGIS Framework、本地協助文檔和開發樣本。
早期的ArcGIS Runtime for iOS功能設計主要是圍繞ArcGIS Server發布的各項服務,提供了對於REST服務的瀏覽、操作和互動,有經驗的開發人員會發現這和Web API非常接近,因此說只要掌握基礎的Object-C,Web開發人員也能快速適應iOS移動開發方式。
下面是SDK提供的功能概要:
- 載入來自ArcGIS Server或ArcGIS Online的地圖服務(包括:地圖服務、影像服務、要素服務、幾何服務、地理處理服務等);
- 串連GIS雲門戶,從ArcGIS.com或Portal for ArcGIS上擷取地圖服務;
- 執行複雜的地理處理任務;
- 提供多種查詢方式,包括Search, query, identify等;
- 使用統一的Popups顯示要素的屬性資訊;
- 通過地圖或GPS訊號來確定位置座標;
- 通過本地幾何運算庫,快速處理圖形的幾何處理 。
目前最新的2.2版本中,增加了以下新功能:
- 最佳化了AGSGeometryEngine,使得圖形處理效率平均提高2~3倍;
- 新增了對 WMS的支援,包括1.3, 1.1.1和1.1三種版本;
- 新增了AGSPortal介面,可以支援ArcGIS.com或Portal for ArcGIS 的接入,包括使用者、組、資料等;
- 最佳化了要素的渲染效率,尤其是在渲染大資料量時,舉例來說:10000個picture符號的點圖層;
- Sketch layer在編輯資料時能更好的支援地圖的經向迴圈;
- 通過API可以將所有的Web請求轉換為POST方法;
- 如果切片資料有缺失,會動態由比例尺最接近的切片重採樣產生;
- 支援ArcGIS Online發布的Web map的更多元素(底圖圖層、可操作圖層、預定義查詢、要素採集等);
- 支援軍事格網座標參考(MGRS)。
原有項目升級:
ArcGISRuntime for iOS v2.2支援iOS SDK 4.X及以上版本,同時要求終端的作業系統也是4.X及以上版本,另外由於2.2版本中用“ArcGIS.Framework”取代了之前的靜態庫“libArcGIS.a”的,所以原有的項目如果要升級到2.2,需要在Xcode中按照以下步驟進行修改:
1.刪除libArcGIS.a的引用
2.刪除並重新添加資源檔“ArcGIS.bundle”,即
${HOME}/Library/SDKs/ArcGIS/ArcGIS.framework/Versions/Current/Resources/ArcGIS.bundle
3.刪除“Build”設定中的“Library Search Paths”參數,即清除
${HOME}/Library/SDKs/ArcGIS/iOS.sdk/usr/local/lib
4.刪除“Build”設定中的“the User Header Search Paths”參數,即清除
${HOME}/Library/SDKs/ArcGIS/iOS.sdk/usr/local/include/**
5.在“Build”設定中的“Other Linker Flags”參數,增加“-framework”和“ArcGIS”(“-all_load”和 “-ObjC”依然保留)
6.在“Build”設定中的“Frameworks Search Paths”參數,增加
${HOME}/Library/SDKs/ArcGIS/**
${HOME}/Library/SDKs/**
7.代碼中用“import <ArcGIS/ArcGIS.h>”代替之前的“import "ArcGIS.h"”
8.介面變更:“openIntoMapView:withAlternateBaseMap:”方法的參數從AGSWebMap 改為 AGSWebMapBaseMap.