WebAppBuilder獨立於Portal之arcgis for js應用框架研究
1.前言
最近在做專案過程中,用到了WAB,先做一下總結和歸類。Webappbuilder(簡稱WAB)是執行在portal或者online的一款webGIS開發應用程式,其程式碼開源並且具有優秀的設計外觀、多個系統微件、多平臺執行、積木模式搭建、靈活可擴充套件的開發方式,為現代webGIS開發的典範。
由於WAB軟體執行環境的要求比較嚴格,必須託管在Portal或者Online上執行,對開發者或者應用者的使用造成了很大的障礙,使得開發者望而卻步。在不改變該軟體整體結構和架構基礎上,研發了WAB中介軟體,實現了WAB脫離Portal獨立執行,使用者可以利用本地服務進行開發和部署。
首先在不改變WAB原始碼的框架體系下,增加了基於json檔案的地圖配置,修復了部分微件依賴原有的Portal的內容,確保90%以上的微件都能正常使用,同時對每個微件的配置檔案給出樣例,確保手動修改就能完成配置,最後本團隊還自主開發了多個實用性微件,包括歷史軌跡回放、區域資源分析報告生成、剖面線生成、線上繪製等值線等值面、多維資料時間軸播放、歷史時間回放、圖表聯動、多地圖對比、excel座標匯入與編輯管理、載入本地Shapefile、天地圖載入等功能微件,便於客戶結合業務深入二次開發。
(1)WAB中介軟體關鍵技術
- 獨立執行WebGIS開發框架,部署環境不受限制,像搭積木一樣簡單,零程式碼輕鬆快速建立專案,就可以快速建立直觀、漂亮的Web應用。
- 應用可以運行於任何平臺,桌面、平板、移動裝置。
- 純HTML+JS開發,可以展示2D和3D地圖。
- 強大的GIS工具,提供即拿即用的功能模組,整合40多個GIS功能小元件。
- 可擴充套件性,可以開發自定義的應用小元件。
- 多種樣式模板和基調色彩可提供選擇。
(2)WAB中介軟體特點
- 對於普通使用者是快速搭建應用的工具。
- 對開發者是快速搭建應用原型的工具。
- 開發者可以深度開發的Theme和Widget,提供給最終客戶使用。
- 純html5/javascript應用程式,完整的框架體系,可以與業務系統完美結合與實時互動。
2、WAB更新與版本
WAB版本採用與ArcGIS API for JavaScript 版本對應,隨著ArcGIS API for JavaScript的版本更新而更新,Web AppBuilder for ArcGIS目前版本為2.9,使用的是ArcGIS API 3.25版本。目前版本對應關係如下:
序號 |
ArcGIS API版本 |
WAB版本 |
1 |
3.21 |
2.5 |
2 |
3.22 |
2.6 |
3 |
3.23 |
2.7 |
4 |
3.24 |
2.8 |
5 |
3.25 |
2.9 |
3、系統自主開發特色功能展示
1、多維資料展示(時間軸+深度軸),可以用於時間序列和不同空間深度的資料綜合展示。
2、Excel座標匯入與編輯功能,可以實現excel資料直接進行圖形化,對圖形進行符號化和匯出geojson格式資料集。
3、資料聚合管理,可對海量點資料進行聚合展示,隨著縮放級別不同,聚合同時變化。
4、剖面圖繪製,繪製地形剖面線,在剖面圖上滑動,地圖上也會顯示該點位置。
5、時間軸管理,對於時間序列不連續的事件進行統一管理。
6、對比圖同步縮放
7、自定義圖層符號,可進行圖層的唯一值渲染、分級渲染等。
8、圖層標註動態面板
9、地圖故事整合,可將地圖故事模組作為一個元件與框架完美結合。
10、歷史軌跡播放,可用於車輛歷史軌跡回放,並根據不同級別進行動態標註。
11、實時車輛顯示,車輛可在地圖上跑動。
4.總結
WAB採用ArcGIS JavaScript for API作為地圖開發底層,採用Web AppBuilder作為開發框架,利用該框架即拿即用的Widget來構建應用,比如製圖、查詢、地理處理、編輯、列印等基礎功能,同時自行開發相應的Wedget滿足自己的業務需求,實現一次開發多次使用。
在實際應用中系統已通過開發和配置不同的Widget,拓展了綜合查詢、空間統計、軌跡回放等功能,實現空間資訊分析與展示等業務需求。系統將在業務發展中不斷拓展更多功能,最終將會形成一個強大的工具庫。
相關學習地址:
- ArcGIS JavaScript for API地址: https://developers.arcgis.com/javascript/
- web-appbuilder Portal版地址: https://developers.arcgis.com/web-appbuilder/