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应用程序,完整的框架体系,可以与业务系统完美结合与实时交互。

最新版本下载(提供源码):点击此处下载Wab25V2019-2018年9月26日18:50:14

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、多维数据展示(时间轴+深度轴),可以用于时间序列和不同空间深度的数据综合展示。

WebAppBuilder独立于Portal之arcgis for js应用框架研究-LMLPHPWebAppBuilder独立于Portal之arcgis for js应用框架研究-LMLPHP

2、Excel坐标导入与编辑功能,可以实现excel数据直接进行图形化,对图形进行符号化和导出geojson格式数据集。

WebAppBuilder独立于Portal之arcgis for js应用框架研究-LMLPHPWebAppBuilder独立于Portal之arcgis for js应用框架研究-LMLPHP

3、数据聚合管理,可对海量点数据进行聚合展示,随着缩放级别不同,聚合同时变化。

WebAppBuilder独立于Portal之arcgis for js应用框架研究-LMLPHPWebAppBuilder独立于Portal之arcgis for js应用框架研究-LMLPHP

4、剖面图绘制,绘制地形剖面线,在剖面图上滑动,地图上也会显示该点位置。

WebAppBuilder独立于Portal之arcgis for js应用框架研究-LMLPHPWebAppBuilder独立于Portal之arcgis for js应用框架研究-LMLPHP

5、时间轴管理,对于时间序列不连续的事件进行统一管理。

WebAppBuilder独立于Portal之arcgis for js应用框架研究-LMLPHPWebAppBuilder独立于Portal之arcgis for js应用框架研究-LMLPHP

6、对比图同步缩放

WebAppBuilder独立于Portal之arcgis for js应用框架研究-LMLPHPWebAppBuilder独立于Portal之arcgis for js应用框架研究-LMLPHP

7、自定义图层符号,可进行图层的唯一值渲染、分级渲染等。

WebAppBuilder独立于Portal之arcgis for js应用框架研究-LMLPHPWebAppBuilder独立于Portal之arcgis for js应用框架研究-LMLPHP

8、图层标注动态面板

WebAppBuilder独立于Portal之arcgis for js应用框架研究-LMLPHPWebAppBuilder独立于Portal之arcgis for js应用框架研究-LMLPHP

9、地图故事集成,可将地图故事模块作为一个组件与框架完美结合。

WebAppBuilder独立于Portal之arcgis for js应用框架研究-LMLPHPWebAppBuilder独立于Portal之arcgis for js应用框架研究-LMLPHP

10、历史轨迹播放,可用于车辆历史轨迹回放,并根据不同级别进行动态标注。

WebAppBuilder独立于Portal之arcgis for js应用框架研究-LMLPHPWebAppBuilder独立于Portal之arcgis for js应用框架研究-LMLPHP

11、实时车辆显示,车辆可在地图上跑动。

WebAppBuilder独立于Portal之arcgis for js应用框架研究-LMLPHPWebAppBuilder独立于Portal之arcgis for js应用框架研究-LMLPHP

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/
05-17 22:07