如上圖,Runtime SDK是什麼東西?居然還有安卓、蘋果手機、Mac、QT的版本? 是不是意味著ArcGIS的編輯數據和空間分析可以通過編程的方法在每個平臺上滿地跑了? 答案是:是,也不是。 1. 與AO/AE的區別 AO是ArcGIS Desktop和ArcGIS Server的底層技術,有C ...
如上圖,Runtime SDK是什麼東西?居然還有安卓、蘋果手機、Mac、QT的版本?
是不是意味著ArcGIS的編輯數據和空間分析可以通過編程的方法在每個平臺上滿地跑了?
答案是:是,也不是。
1. 與AO/AE的區別
AO是ArcGIS Desktop和ArcGIS Server的底層技術,有C++、Java、.NET三種實現方式。
AO包裝一層,就是AE,其絕大部分語法是與AO相容的。
只要你能力足夠,使用AO可以完全再造一款ArcGIS Desktop軟體出來,當然也可以造一款ArcGIS Server;
也就是說有了AO/AE,可以定製出一款從數據編輯、空間分析、製圖輸出、數據管理都能做的很好的二次開發軟體。
1.1 Runtime SDK
早期用戶可能聽說過ArcGIS Engine Runtime等一系列亂七八糟的“Runtime”,這裡不廢話,以免混淆。
為了完成在各種平臺(Linux、iOS、安卓、Windows、Mac)上進行數據的顯示和簡單的數據統計、簡單的空間分析,但是數據源(地圖數據、矢量柵格數據)並不存在於本機,而在遠程伺服器端(通常是伺服器電腦上的ArcGIS Server、ArcGIS Portal、Datastore等),進行的空間分析也不是在本機進行的,僅僅作為遠程伺服器進行的GP(地理處理,GeoProcess,ArcGIS Server的一個功能,十分強大)的運行結果的顯示,就有了Runtime SDK。
畫圖所示:
Runtime SDK就是為了創造各個平臺上的這種客戶端而存在的一套開發包。
其中,QT的特點使得在Linux/Windows都可以跑Runtime SDK.
1.2 與B/S架構的ArcGIS API for JavaScript的區別
這個更像C/S架構,Runtime SDK的API幫助文檔、類結構與Js 4.x API的API極其相似,在不同的編程語言上有所區別而已。
例如,Js API用Task完成瀏覽器端處理GP服務的請求、接收遠程GP服務生成的結果;
Runtime SDK也能找到類似的Task類。
因為Js 4.x API在4.5中已經出現了數據編輯的工具,這就意味著Runtime SDK早就應該具備了簡單的數據編輯工作。
但是,與ArcMap和ArcGIS Pro的“工作站”式編輯工具還是有很大差距的,例如不能完成欄位的批量計算、不能完成拓撲、不能方便數據導入導出等,只能簡單的畫點畫線畫面。
1.3 Runtime SDK產出
開發生成的應用程式是綠色的,不需要依賴龐大的運行庫,也不需要安裝ArcGIS套件,直接雙擊就能使用。
隨之會產生一些dll(Windows下),隨著exe一起攜帶即可。
Linux、Mac、安卓、iOS表示不清楚~有興趣的同學可以自行瞭解。
2. 個人猜想
Runtime SDK全線都更新到了100.x這個版本,旗幟鮮明的與ArcGIS Pro對接,也就是說大數據、多線程、3DGIS的加入。
顯然,Runtime SDK就是為瞭解決AO/AE中數據顯示/簡單分析的功能而出現的,因為讓只需要查看數據、地理數據統計、輕量分析的用戶去購買AE是不划算的,Esri考慮到了這一點,將繁重的數據編輯、數據管理、空間分析過程集中到了新的ArcGIS Pro平臺上,使用Datastore、Portal進行發佈和管理雲端數據,再使用Runtime SDK編寫輕量化的客戶端進行訪問,這符合實際的需求。如下圖:
當然,為了方便拓展ArcGIS Pro,已經有了幫助開發ArcGIS Pro插件的SDK。