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

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/

WebAppBuilder独立于Portal之arcgis for js应用框架研究的更多相关文章

  1. WebAppBuilder独立于portal之arcgis for js应用框架研究之二

    WAB采用ArcGIS JavaScript for API作为地图开发底层,采用Web AppBuilder作为开发框架,利用该框架即拿即用的Widget来构建应用,比如制图.查询.地理处理.编辑. ...

  2. 如何通过REST API登录Portal for ArcGIS

    Portal for ArcGIS 提供了两种登录方式:OAuth 2.0和传统的token登录方式. OAuth 2.0的登录原理在之前的一篇文章中已经描述,所以今天就不重复了.下面将介绍对于不支持 ...

  3. 安装Portal for ArcGIS时如何正确配置HTTPS证书

    SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持.SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为 ...

  4. Portal for ArcGIS安装指南

    参考帮助: http://resources.arcgis.com/en/help/install-guides/arcgis-portal-windows/10.2/index.html#/Inst ...

  5. Portal for ArcGIS上传shp文件中文乱码可能情况

    环境: windows Server 2008:Portal for ArcGIS 10.2:ArcGIS for Server 10.2:PostgreSQL 9.2:ArcGIS for Desk ...

  6. Arcgis for JS之Cluster聚类分析的实现(基于区域范围的)

    原文:Arcgis for JS之Cluster聚类分析的实现(基于区域范围的) 咱们书接上文,在上文,实现了基于距离的空间聚类的算法实现,在本文,将继续介绍空间聚类之基于区域范围的实现方式,好了,闲 ...

  7. Arcgis for JS之Cluster聚类分析的实现

    原文:Arcgis for JS之Cluster聚类分析的实现 在做项目的时候,碰见了这样一个问题:给地图上标注点对象,数据是从数据库来 的,包含XY坐标信息的,通过graphic和graphicla ...

  8. 【ArcGIS 10.2新特性】Portal for ArcGIS新特性

    1.概述 经过各版本的积累和更新,Portal for ArcGIS在ArcGIS10.2中以正式产品的形态加入到了ArcGIS系列产品线中.它有3个主要定位:协同管理平台.在线制图平台以及内容管理平 ...

  9. Arcgis for js载入天地图

    综述:本节讲述的是用Arcgis for js载入天地图的切片资源. 天地图的切片地图能够通过esri.layers.TiledMapServiceLayer来载入.在此将之进行了一定的封装,例如以下 ...

随机推荐

  1. 统计学howto

    统计之都 http://cos.name/ 让你拥有超能力:程序员应该掌握的统计学公式 Statistical Formulas For Programmers http://www.evanmill ...

  2. Ranking relevance in yahoo search (2016)论文阅读

    文章链接 https://www.kdd.org/kdd2016/papers/files/adf0361-yinA.pdf abstract 点击特征在长尾query上的稀疏性问题 基础相关性三大技 ...

  3. UGUI 切割图片

    1.图片设置为以下格式,然后点击Sprite Editor. 2.点击Slice. 3.再点击Slice. 4.效果图.

  4. 性能测试工具LoadRunner02-LR简介

    使用LoadRunner的步骤 制定性能测试计划-->开发测试脚本-->设计测试场景-->执行测试场景-->监控测试场景-->分析测试结果 LoadRunner由哪些部件 ...

  5. Python LoggerAdpater类

    Logger子类: import logging # create loggermodule_logger = logging.getLogger('spam_application.auxiliar ...

  6. 关于老教授之家项目的思考 && 中国互联网+大赛培训

    最近在做中国互联网+竞赛相关的项目,有一点思考在这里记录下来,算是一份经历,日后可以再回顾,这也是我真正参加的一个大型比赛,作为技术人员可能更多的是从事技术,但是在其他方面能贡献自己的一份力量也是不错 ...

  7. Jquery 客户端验证

    Jquery 客户端验证 //引入js文件 validate.js <html> <head> <title>jqueryValidateDemo</titl ...

  8. checkBox 全选、全不选、反选

    checkBox的使用: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...

  9. Python面向对象(三)

    一.绑定方法与非绑定方法 一.绑定方法:绑定给谁就应该由谁来调用,谁来调用就会将谁当作第一个参数传入 1.绑定给对象的方法:类中定义的函数默认就是绑定给对象的 2.绑定给类的方法:为类中定义的函数加上 ...

  10. Java—封装

    封装 将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法类实现对隐藏信息的操作和访问. 封装的实现步骤:修改属性的可见性(设为private)=>创建setter和ge ...