1. 程式人生 > >WebAppBuilder獨立於Portal之arcgis for js應用框架研究

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,拓展了綜合查詢、空間統計、軌跡回放等功能,實現空間資訊分析與展示等業務需求。系統將在業務發展中不斷拓展更多功能,最終將會形成一個強大的工具庫。

相關學習地址:

  1. ArcGIS JavaScript for API地址:  https://developers.arcgis.com/javascript/
  2. web-appbuilder Portal版地址: https://developers.arcgis.com/web-appbuilder/