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应用程序,完整的框架体系,可以与业务系统完美结合与实时交互。
最新版本下载(提供源码):点击此处下载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,拓展了综合查询、空间统计、轨迹回放等功能,实现空间信息分析与展示等业务需求。系统将在业务发展中不断拓展更多功能,最终将会形成一个强大的工具库。
相关学习地址:
- ArcGIS JavaScript for API地址: https://developers.arcgis.com/javascript/
- web-appbuilder Portal版地址: https://developers.arcgis.com/web-appbuilder/
WebAppBuilder独立于Portal之arcgis for js应用框架研究的更多相关文章
- WebAppBuilder独立于portal之arcgis for js应用框架研究之二
WAB采用ArcGIS JavaScript for API作为地图开发底层,采用Web AppBuilder作为开发框架,利用该框架即拿即用的Widget来构建应用,比如制图.查询.地理处理.编辑. ...
- 如何通过REST API登录Portal for ArcGIS
Portal for ArcGIS 提供了两种登录方式:OAuth 2.0和传统的token登录方式. OAuth 2.0的登录原理在之前的一篇文章中已经描述,所以今天就不重复了.下面将介绍对于不支持 ...
- 安装Portal for ArcGIS时如何正确配置HTTPS证书
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持.SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为 ...
- Portal for ArcGIS安装指南
参考帮助: http://resources.arcgis.com/en/help/install-guides/arcgis-portal-windows/10.2/index.html#/Inst ...
- Portal for ArcGIS上传shp文件中文乱码可能情况
环境: windows Server 2008:Portal for ArcGIS 10.2:ArcGIS for Server 10.2:PostgreSQL 9.2:ArcGIS for Desk ...
- Arcgis for JS之Cluster聚类分析的实现(基于区域范围的)
原文:Arcgis for JS之Cluster聚类分析的实现(基于区域范围的) 咱们书接上文,在上文,实现了基于距离的空间聚类的算法实现,在本文,将继续介绍空间聚类之基于区域范围的实现方式,好了,闲 ...
- Arcgis for JS之Cluster聚类分析的实现
原文:Arcgis for JS之Cluster聚类分析的实现 在做项目的时候,碰见了这样一个问题:给地图上标注点对象,数据是从数据库来 的,包含XY坐标信息的,通过graphic和graphicla ...
- 【ArcGIS 10.2新特性】Portal for ArcGIS新特性
1.概述 经过各版本的积累和更新,Portal for ArcGIS在ArcGIS10.2中以正式产品的形态加入到了ArcGIS系列产品线中.它有3个主要定位:协同管理平台.在线制图平台以及内容管理平 ...
- Arcgis for js载入天地图
综述:本节讲述的是用Arcgis for js载入天地图的切片资源. 天地图的切片地图能够通过esri.layers.TiledMapServiceLayer来载入.在此将之进行了一定的封装,例如以下 ...
随机推荐
- 统计学howto
统计之都 http://cos.name/ 让你拥有超能力:程序员应该掌握的统计学公式 Statistical Formulas For Programmers http://www.evanmill ...
- Ranking relevance in yahoo search (2016)论文阅读
文章链接 https://www.kdd.org/kdd2016/papers/files/adf0361-yinA.pdf abstract 点击特征在长尾query上的稀疏性问题 基础相关性三大技 ...
- UGUI 切割图片
1.图片设置为以下格式,然后点击Sprite Editor. 2.点击Slice. 3.再点击Slice. 4.效果图.
- 性能测试工具LoadRunner02-LR简介
使用LoadRunner的步骤 制定性能测试计划-->开发测试脚本-->设计测试场景-->执行测试场景-->监控测试场景-->分析测试结果 LoadRunner由哪些部件 ...
- Python LoggerAdpater类
Logger子类: import logging # create loggermodule_logger = logging.getLogger('spam_application.auxiliar ...
- 关于老教授之家项目的思考 && 中国互联网+大赛培训
最近在做中国互联网+竞赛相关的项目,有一点思考在这里记录下来,算是一份经历,日后可以再回顾,这也是我真正参加的一个大型比赛,作为技术人员可能更多的是从事技术,但是在其他方面能贡献自己的一份力量也是不错 ...
- Jquery 客户端验证
Jquery 客户端验证 //引入js文件 validate.js <html> <head> <title>jqueryValidateDemo</titl ...
- checkBox 全选、全不选、反选
checkBox的使用: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...
- Python面向对象(三)
一.绑定方法与非绑定方法 一.绑定方法:绑定给谁就应该由谁来调用,谁来调用就会将谁当作第一个参数传入 1.绑定给对象的方法:类中定义的函数默认就是绑定给对象的 2.绑定给类的方法:为类中定义的函数加上 ...
- Java—封装
封装 将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法类实现对隐藏信息的操作和访问. 封装的实现步骤:修改属性的可见性(设为private)=>创建setter和ge ...