《ArcGIS Runtime SDK for Android開發筆記》——(3)、ArcGIS Runtime SDK概述

一、前言

ArcGIS Runtime SDK是一整套用於構建原生及跨平臺的地圖應用程序的開發包,包括移動設備的Android、iOS、Windows Phone,針對桌面的.Net、Java、OSX,以及跨平臺的QT。這全部的API基於一個共同的C++內核,並在不一樣平臺上作了對應的封裝,使得在多平臺下的接口風格和編程模型相一致。當咱們在一個平臺上學會了對應sdk的開發流程,在其餘平臺上若是咱們對該平臺比較熟也能夠很快的將知識結構平移過去,快速的適應新平臺的開發工做。html

 

二、ArcGIS Runtime SDKs產品家族

相信大部分開發者對ArcGIS Runtime SDKs這個名稱並不生疏,它實際上包含了一系列SDKs,用來開發應用於桌面和移動設備的應用程序。在10.2.2以前的版本中,ArcGIS Runtime SDKs包括ArcGIS Runtime SDK for Android、iOS、Windows Phone、Windows Mobile、JavaSE、QT、OS X、Windows Store及WPF共9種。android

2014年3月10號,正式發佈了Runtime SDK的部分10.2.2版本,咱們也初步窺見了10.2.2 Runtime SDK的新成員。在10.2.2的版本中,Esri對Runtime SDKs進行了從新整合,合併或從新設計了一些SDK。數據庫

從下表中能夠看出,Esri是計劃將原來的Runtime SDK for Windows Phone、Windows Store以及WPF這3大SDK整合成一個,他們都是基於.NET技術,開發應用於Windows平臺上的應用,不過可能因爲WPF SDK的技術架構有些特別,整合的工做量比較大,所以重寫了SDK for .Net,並暫時保留了WPF SDK;而且因爲Windows Mobile系統已經很老,Esri在新的Runtime SDKs體系中也並未打算對其進行繼續升級。編程

所以,10.2.2版本中,正式向用戶推薦的SDKs主要有Android、iOS、.Net、Qt、OS X和Java這6種,主要是在Windows平臺上的開發包有較大改動,進行了大量的整合,我想這對.Net開發者們來講真是一個極好的消息。新的Runtime SDKs包括:緩存

10.2.2以前的Runtime SDKs服務器

10.2.2版本的Runtime SDKs網絡

面向的操做系統架構

ArcGIS Runtime SDK for Androidapp

ArcGIS Runtime SDK for Android框架

Android

ArcGIS Runtime SDK for iOS

ArcGIS Runtime SDK for iOS

iOS

ArcGIS Runtime SDK for Windows Phone

ArcGIS Runtime SDK for .Net

Windows Desktop(for WPF開發者)

Windows Store(Windows 8.1)

Windows Phone 8

ArcGIS Runtime SDK for Windows Store

ArcGIS Runtime SDK for WPF

ArcGIS Runtime SDK for WPF

Windows Desktop

ArcGIS Runtime SDK for Windows Mobile

——

——

ArcGIS Runtime SDK for QT

ArcGIS Runtime SDK for Qt

Windows、Linux(64/32bit)

ArcGIS Runtime SDK for OS X

ArcGIS Runtime SDK for OS X

Mac(Mountain Lion(OS X 10.8)及以上)

ArcGIS Runtime SDK for JavaSE

ArcGIS Runtime SDK for Java

Windows、Linux(64/32bit)

ArcGIS Runtime SDKs for Smartphones and Tablets是Esri爲開發者提供的移動應用開發包的統稱,Smartphones and Tablets的意思是「智能手機和平板」,顧名思義就知道包括面向Android、iOS和Windows Phone這三大主流移動操做系統的SDKs。在上個小節中已經提到,之後就沒有ArcGIS Runtime SDK for Windows Phone了,統一歸到了ArcGIS Runtime SDK for .Net旗下。

在ArcGIS 10.2.2版本以前,用戶只要註冊了Esri全球帳號,就能夠在Esri的官網上免費下載各個Runtime SDKs安裝包以及其它資料,並基於此進行免費的應用程序開發和部署;但10.2.2版本以後,Esri的移動產品受權策略發生了一些變化,開始區分開發版、基礎版和標準版。針對不一樣的需求咱們選擇的版本不一樣收費策略也將不一樣。

 

三、ArcGIS Runtime SDK for Android產品簡介

ArcGIS Runtime SDK for Android包括一個用於Android Studio的lib-project,用於eclipse等環境的jar函數庫,提供了豐富的工具、文檔和示例,使用戶可以使用Java構建移動應用程序(這些應用程序將運用ArcGIS for Server提供的強大的製圖、地理編碼、地理處理和自定義功能)並將它們部署到Android系統的智能手機和平板上。

ArcGIS Runtime SDK for Android能夠經過ArcGIS for Server REST服務獲取數據和服務資源。Esri發佈了GeoServices REST Specification,這一標準規定了ArcGIS REST Service各類接口的訪問參數及返回數據的結構,ArcGIS Runtime SDK for Android正是基於這一標準封裝的。其實,ArcGIS基於REST接口的API,包括ArcGIS Runtime SDK for Android/iOS/Windows Phone,ArcGIS API for Flex/ Silverlight/ JavaScript,以及ArcGIS Runtime SDK for Java/.NET,都是基於這一標準進行封裝的。儘管不一樣平臺、不一樣語言的開發包有其本身的特性,但其對應服務端的編程模型是一致的。下圖能很好的說明這一點。

除了ArcGIS for Server,ArcGIS Runtime SDK for Android還能夠經過Portal API輕鬆訪問ArcGIS Online和Portal for ArcGIS上的資源,即與雲創建密切的聯繫。另外,在10.2的版本中,ArcGIS Android SDK也能使用本地離線的數據,做爲應用的重要數據源,這也是10.2的重大更新,被多數用戶和開發者所關注,後面教程中也會詳細介紹。截止目前寫稿爲止,ArcGIS Runtime SDK for Android最新版本是10.2.6-u2。有關ArcGIS Runtime SDK for Android 10.2.6-u2的全部資料,包括安裝包下載、系統支持、安裝環境說明、API接口說明、Sample、在線幫助等,都能從最新的ArcGIS for Developer站點https://developers.arcgis.com/android/查找到。

 

四、ArcGIS Runtime SDK for Android發展歷程

ArcGIS for Android從產品上來說分爲兩個部分,一是給開發者準備的ArcGIS Runtime SDK for Android開發包,專用來開發Android設備上的移動GIS應用;另外一個是名爲「ArcGIS」的app,它使用ArcGIS Runtime SDK for Android開發包開發,具有經常使用的和典型的GIS功能,拿來即用,並可在Google Play等商店免費下載。

ArcGIS Runtime SDK for Android開發包的發展歷程以下:

  • 約在2011年6月份,發佈ArcGIS Runtime SDK for Android beta版,就是開發者常說的0.9版本。它是一個測試版本,支持2.1,2.2的android系統。由於是第一個支持android智能操做系統的版本,雖然是測試版,也備受開發者關注。這個版本中,可使用ArcGIS for Server中的地圖服務、要素服務來進行移動端的地圖瀏覽和簡單查詢操做,使用設備的GPS座標,等等;
  • 2011年12月14日,發佈了ArcGIS Runtime SDK for Android v1.0.1,這是第一個正式版的Android SDK。該正式版包含了beta所有功能,對其中一些bug進行了修復,並新增了許多功能,重要的功能如支持本地緩存的鬆散型切片,邁出了離線應用的第一步;整體上的功能已經比較完善,包括與Online和Portal的集成,使用設備的GPS,進行簡單的外業數據採集和編輯,使用Server和Online上的分析功能,能進行identify操做,能夠顯示popup up,進行高級的幾何計算等。爲之後的版本功能提高提供了較好的原型;與0.9版本比較,1.0及之後的版本,SDK架構發生了很大的變化,主要變化在於核心功能改由C/C++編寫,SDK層(Java)經過JNI的方式調用,以此提升效率。所以,須要支持OpenGL ES2.0的GPU。
  • 2012年4月7日,發佈ArcGIS Runtime SDK for Android v1.1。這個版本的改進主要是增長了高級符號,支持一個應用中多個MapView,以及Group Layer中支持對全部子圖層的操做,另外,與Online和Portal的結合更加深刻,能夠搜索組織的內容、用戶、組等信息;
  • 2012年5月10日,發佈ArcGIS Runtime SDK for Android v1.1.1版本。這個版本僅對v1.1版本進行了一個修復——讓Eclipse可以更好的、更正確的識別Android依賴庫;
  • 2012年6月22日,發佈ArcGIS Runtime SDK for Android v2.0版本。這個版本最大的變化是對雲的支持全面增強,支持ArcGIS 10.1的桌面、服務器和雲產品,並正式推出Portal API來操做雲中的資源。能夠說這是在雲計算的興起之下,Esri的「雲端」應用模式的全面體現。同時,發佈了同步的ArcGIS app for Android v2.0版本,也是全面的增強與雲的集成;
  • 2013年1月16日,發佈ArcGIS Runtime SDK for Android v10.1.1版本。這個版本中新增了對網絡分析、PKI認證的加密服務的支持,新增對KML、WMS、OpenStreetMap等第三方地圖服務的支持;更爲重要的是,Runtime SDK的版本號從這個版本開始發生了巨大的變化,從2.0直接升級到了10.1.1,同時,其它Runtime SDK(包括Java SE, WPF, Windows Phone等)版本號所有都更新至10.1.1;
  • 2013年7月1日,發佈ArcGIS Runtime SDK for Android v10.1.1 update 1。這個版本的升級變化也很小,主要是支持了Android Support Library 13,並支持ArcGIS Online上的OAuth2類型的資源的訪問;同時,這個版本提供了Javadoc;
  • 2013年10月29日,發佈ArcGIS Runtime SDK for Android v10.2版本。10.2版本與以前的版本相比變化較大,一是新增了不少類和框架來輔助開發人員開發,如MapOptions和Application Framework for ArcGIS Android框架;同時,GraphicsLayer新增動態模式,性能極大提高;GeometryEngine中也新增了不少諸如測地線、偏移量、橢圓等方法來完成幾何計算;另外一方面,更大的變化是推出了Beta版的離線功能,提供相應的類和接口,來實現業務數據的離線存儲、編輯,以及離線的地理編碼和路徑分析功能,這是國內用戶需求最大、備受關注的功能之一,所以一經推出便引發普遍關注。只惋惜這些離線的功能只是Beta版,而且須要10.2.1的Desktop和Server產品配合使用,所以離線功能並不能真正用於實踐;
  • 2014年3月8日,發佈ArcGIS Runtime SDK for Android v10.2.2版本。這個版本有兩個最大的變化,一是正式推出了離線功能,10.2版本中Beta版的離線功能所有正式對用戶提供,包括離線的要素編輯和同步,離線的地理編碼,離線的路徑分析功能,以及按需動態緩存地圖切片到移動端等;另外一大變化是受權的變化。ArcGIS Runtime SDK統一變動了受權方式,未通過受權的用戶只可以使用其中基礎的功能,而且應用程序在分發時還會打上水印。
  • 2014年4月21日,發佈ArcGIS Runtime SDK for Android v10.2.3版本。這個版本的主要變化在於它提供了一個全新的GeodatabaseFeatureServiceTable類來使用ArcGIS Feature Services,達到同時使用離線和在線數據的目的。
  • 2014年10月6日,發佈ArcGIS Runtime SDK for Android v10.2.4版本。在這個版本中,更新了最低支持Android平臺版本的android 4.0.1(API級別14)。直接支持本地矢量格式和柵格格式,包括shapefiles、KML、geopackages,能夠直接影像數據,包括:ASRP/USRP、CIB1,5,十、DTED0, 1, 二、GeoPackage、GeoTIFF、HFA、HRE、IMG、JPEG、JPEG2000、NITF、PNG、RPF、SRTM1, 2。支持離線的空間分析功能,視線和視域分析(beta)(暫不支持x86設備),優化GeodatabaseFeatureServiceTable,使得在線離線均可以使用功能單一的API。網絡地圖服務獲得了加強,支持了WMTS服務、Imager服務。離線API的質量獲得了改進,包括地圖的行爲和性能改、callout顯示加強。
  • 2015年1月15日,發佈ArcGIS Runtime SDK for Android v10.2.5版本。支持android studio開發環境,示例代碼默認開發環境基於Android Studio。Eclipse插件被棄用。從版本10.2.5,Esri公司再也不提供的Eclipse IDE工具插件的形式,可是,它是能夠繼續使用jar包引用方式經過Eclipse完成開發工做。
  • 2015年6月19日,發佈ArcGIS Runtime SDK for Android v10.2.6版本。該版本中大量的小bug獲得了改進和更新。截稿至今2015年9月10日目前最新的版本爲v10.2.6-u2。
  • 將來版本:「Quartz」,它是ArcGIS Runtime SDK下一個大版本的代號。這一版本包括了一系列顯著的功能加強,正式版本預期於2016年第一季度發行,以前會有幾個beta版本發行,第一個測試版定於2015年8月發行。(2015 UC)ArcGIS Runtime Quartz版本的新功能,包括:1)  地圖性能改進2)  支持更多數據格式,矢量數據包括移動地理數據庫(Runtime geodatabase),shapefile文件,KML;柵格圖像主要包括JPEG, JPEG2000, NITF, GeoTIFF, MrSID, CADRG, ECRG, DTED, SRTM, HRE以及激光雷達。此外,還支持OGC的GeoPackage,以及自定義的矢量和柵格數據源3)  本地分析在內的更多GIS分析功能4)  支持智能製圖,矢量切片和讀寫在線地圖的功能5)  支持3D場景,瀏覽、分析3D數據6)  支持Xamarin,容許.NET開發人員構建跨平臺運行的應用程序。
說明:通常官網僅提供最新的SDK,以及部分版本SDK下載,對於須要使用舊版SDK的朋友能夠加羣 ArcGIS Runtime SDK 249819194 在羣空間下載所需歷史版本。

 

五、ArcGIS Runtime SDK for Android功能概述

使用ArcGIS Runtime SDK for Android,用戶可以開發出功能強大的移動端GIS應用程序並將它們部署到Android系統的智能手機和平板上,主要功能可覆蓋:

  • 地圖瀏覽:實現常見的地圖縮放、平移、旋轉操做,而且支持手勢響應;能加載和顯示圖例、指南針、羅盤等多種地圖輔助元素;
  • 地圖測量:能實現長度、面積、周長及測地線等的測量;
  • 數據查詢:提供多種類和接口,用來進行基於圖層的搜索、關鍵詞搜索、模糊查詢、周邊搜索等,還能實現空間查詢和非空間查詢的結合;
  • 幾何計算:包括簡單的疊加分析、緩衝區分析,以及並、交、差等空間關係的運算;
  • 分析:包括最小/最短路徑分析、地理編碼、通視分析等;
  • 數據編輯:可編輯要素的空間信息或屬性信息,空間信息包括更改要素的符號,改變要素的形狀,移動要素的位置等,屬性信息可更改其名稱、照片等;還可新增、刪除要素,並對編輯的數據進行保存;
  • 離線功能:可將數據下載到本地,或者直接使用本地數據源,在移動端實現數據的編輯、保存等功能,從而實現離線的外業做業流程;
  • 數據可視化:可以使用多種要素符號、彈出框、圖標、表格、柱狀圖等多種方式對數據進行展現和直觀表達;
  • 訪問雲中的資源:可輕鬆訪問ArcGIS Online和Portal for ArcGIS中的資源和服務,實時同步,隨時隨地的使用雲中資源;
  • GPS定位:使用設備的GPS模塊,進行準確的定位和導航,精度能知足大衆和專業用戶的需求。
  • ……
相關文章
相關標籤/搜索