- 前言
时间长了没有更新博客,今天写点关于WebGIS的内容。
作者之前一直致力于移动端开发,熟悉各版本的ArcGIS Runtime SDK开发。做过Windows应用,也做过Android端和iOS端的应用。最近由于工作原因,又开始接触WebGIS开发,学习一段时间之后,颇有感触,想写点心得和体会。
ArcGIS大家应该都知道,是GIS界一哥,本文也是基于ArcGIS架构体系来聊WebGIS。最近几年GIS发展很快,但是无论怎么发展,GIS总逃不开这几件事
- GIS数据管理
- GIS数据可视化
- GIS数据分析
GIS总能够给决策者一个更宏观的视角去做决策辅助。
GIS也在不断结合新技术发展,比如物联网、大数据、无人机、智能制图、AR、BIM、CIM等等。
纵观GIS系统发展的历程,是从单击应用到以服务器为中心的应用,再到WebGIS和分布式多云融合的这样一个架构。越来越多的行业逐渐认识到GIS的必要性,越来越多的行业除了构建GIS系统,也在尝试构建各行业自己的GIS平台。而ArcGIS刚好提供了的一整套解决方案去构建WebGIS或者说GIS平台。
WebGIS开发肯定是异常复杂,要了解各类语言、前后端框架,还要了解GIS相关概念以及不断迸出的新概念
不过ArcGIS可以让WebGIS开发变得相对简单。ESRI一直在倡导一个理念:重应用,轻开发;能配置不定制,能定制不开发。这个理念是由一整套ArcGIS软件去支撑的。
从底层往上看,首先有DataStore集成各类数据库,包括关系型数据库、非关系型数据库等,能够存储矢量、栅格、切片、大数据等。
再往上,有GIS服务器,这个大家或许比较熟悉,他能够承载各类地图服务,包括动态地图服务、要素服务、切片服务、地理编码服务、地理处理服务等各类服务,服务以REST和SOAP协议对外提供。
与GIS服务器平级的有矢量大数据服务器用来做矢量大数据分析、实时大数据服务器做实时大数据分析、影像大数据服务器做影像大数据分析、分析服务器Notebook Server是10.7新增的用于提供在线IDE的分析服务器。
Portal是从10.5之后出现的,也正是因为Portal出现,大家觉得ArcGIS的变化比较大。Portal的出现代表着新一代WebGIS的开始。接触过ArcGIS Server 10.1 10.2的朋友们都知道,GIS Server的地图服务就是REST服务,我们必须拿REST做进一步开发之后才能将地图呈现给用户。而Portal不是这样的,Portal可以拿到GIS Server的服务,在web页面上不用写任何代码地对这些服务做符号化、做标注,配置弹出窗口并且进行保存为WebMap,然后将WebMap共享给别人,或者提供给开发人员。相比REST服务,WebMap更加直观,好用。
再往上看,就到了应用层,这些做好的WebMap怎么去用?回到刚才上张片子的那个理念
能配置不定制、能定制不开发。
配置:ArcGIS提供若干现成的App,比如Survey123,大家配置一下Portal提供的Webmap,就可以拿出去做数据采集。
定制:如果配置不能满足需求,我们再去定制,B/S和C/S架构的定制程序我们都有,B/S架构的定制程序是WebAppbuilder,WebAppbuilder同样能够直接加载WebMap,并且WebAppbuilder将常用的GIS功能,比如地图放大、缩小、平移、底图切换、书签、卷帘对比等功能都做成微件,应用程序构建的过程中,只需要拖拽微件,就能够实现功能。这是定制。如果,连定制也满足不了需求,不要紧,还有ArcGIS JavaScript API。
开发:ArcGIS JavaScript API。