一种面向应急突发事件的WebGIS协同标绘方法和系统与流程

文档序号:20775793发布日期:2020-05-19 20:45阅读:319来源:国知局
一种面向应急突发事件的WebGIS协同标绘方法和系统与流程

本发明涉及应急突发事件标绘领域,具体而言,涉及一种面向应急突发事件的webgis协同标绘方法和系统。



背景技术:

当今社会,科技与经济在不断的发展,社会矛盾和突发事件也不断涌现,因此针对突发事件应急管理的研究迫在眉睫与势在必行。近年来,随着国家应急平台体系建设日渐深入,对各项基础性标准的制定提出了急迫的需求。针对我国地形复杂,且突发事件种类繁多、目标多样性的特点,当前通过电视、电话会议、文字或语音等沟通的方式,已经不能够完整表述各类突发事件的成因、位置、详情、处理方式等,且在日常应急管理和突发事件应急处置中存在标绘无法协同共享的问题。

因此,迫切需要提升处置跨领域、跨地域、跨层级重大突发事件的快速反应能力和应对效率,保证各级平台应急协同标绘方法间实现事件态势、资源调度、力量部署、灾民疏散与安置,提供动态展示和综合分析的依据和工具,为应急平台的建设和应用奠定了坚实的基础。



技术实现要素:

本发明实施例提供一种面向应急突发事件的webgis协同标绘方法和系统,用以解决在日常应急管理和突发事件应急处置中存在标绘无法协同共享的问题,可以帮助政府客户快速构建省市、区县、街道一体化的多级应急联动标绘平台。

本发明实施例提供的具体技术方案如下:

第一方面,提供了一种面向应急突发事件的webgis协同标绘方法,该方法包括:创建标绘实体;将所述标绘实体打包成特定消息后发送到其他客户端,其他客户端完成数据接收和解析;将解析后的标绘实体数据渲染在地图相应位置。

结合第一方面,在第一方面的第一种可能的实现方式中,所述创建标绘实体,包括:新建标绘并选择标绘分组,点击地图确定标绘的位置信息,填写标绘实体信息。

结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述选择标绘分组,包括:如果当前没有已创建的分组,则新建分组,否则,从分组列表中任意选择一个。

结合第一方面,在第一方面的第三种可能的实现方式中,所述将所述标绘实体打包成特定消息后发送到其他客户端,具体包括以下步骤:客户端加载完毕后,绑定需要监听的事件;事件发生后,客户端将标绘实体打包成特定消息推送至消息队列;当上一事件返回确认后,事件控制器允许将特定消息推送至其他客户端,否则,推送失败;其他客户端接收特定消息,事件被触发,并将接收结果告知事件控制器。

结合第一方面的第一种或第二种可能的实现方式,在第一方面的第四种可能的实现方式中,所述标绘分组包括下列信息中的至少一种信息:唯一标识符、创建者标识符、分组名称、分组描述信息、标绘实体的集合、创建分组的时间戳;和/或所述标绘实体包括下列信息中的至少一种信息:唯一标识符、标绘名称、标绘分组的标识符、标绘符号代码、标绘的经度、标绘的纬度、标绘创建的时间戳、标绘符号类型、标绘符号样式。

第二方面,提供一种面向应急突发事件的webgis协同标绘系统,所述系统包括:创建模块,用于新建标绘并选择标绘分组,点击地图确定标绘的位置信息并填写标绘实体数据结构;传输模块,用于在任意客户端之间构建一条数据通道,客户端之间均可相互接收和发送标绘实体数据;解析模块,用于解析特定消息,生成可直接绘制的标绘实体数据;绘制模块,用于标绘实体数据的绘制并渲染到地图相应位置上。

结合第二方面,在第二方面的第一种可能的实现方式中,所述系统还包括:存储模块,用于将标绘实体保存到本地数据库;监听模块,用于监听并响应事件;控制模块,用于判断事件的顺序,保证客户端之间的事件按次序执行。

结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述控制模块具体用于:对于消息队列中的特定消息,当上一事件返回确认后,控制模块允许将所述特定消息推送至其他客户端,否则,推送失败。

结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述监听模块包括传输监听模块和客户端监听模块,所述传输监听模块用于监听所述标绘实体创建完成消息,所述客户端监听模块用于监听所述特定消息的推送。

结合第二方面或第二方面的第一种至第三种中任一种可能的实现方式,在第二方面的第四种可能的实现方式中,所述绘制模块包括坐标转换库、图形绘制算法和坐标拾取模块,所述坐标转换库用于实现屏幕坐标与地图坐标之间的相互转换,所述图形绘制算法用于在地图上绘制点线面图元,所述坐标拾取模块用于获取地图经纬度坐标。

基于上述技术方案,本发明实施例的面向应急突发事件的webgis协同标绘方法和系统,基于开源的webgis引擎搭建面向应急突发事件的标绘系统,具有速度快、稳定性高的特点;通过定义标绘分组和标绘实体结构,使用户可快速扩展自定义符号,降低创建标绘符号的复杂度;通过使用websocket技术,使得客户端之间可快速进行协同标绘,具有实时性高的特点。本发明响应了提升处置跨领域、跨地域、跨层级重大突发事件的快速反应能力和应对效率的迫切需求,提升了日常应急管理和突发事件应急处置中的信息化能力。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:

图1是根据本发明实施例的客户端系统架构图;

图2是根据本发明实施例的面向应急突发事件的webgis协同标绘方法的示意性流程图;

图3是根据本发明实施例的将标绘实体打包后发送到其他客户端的方法的示意性流程图;

图4是根据本发明实施例的标绘符号数据结构示意图;

图5是根据本发明实施例的面向应急突发事件的webgis协同标绘方法的逻辑流程图;

图6是根据本发明实施例的多端协同标绘的示意性流程图;

图7是根据本发明实施例的面向应急突发事件的webgis协同标绘系统的示意性框图;

图8是根据本发明实施例的监听模块的示意性框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

应理解,webgis(网络地理信息系统)是将web和gis技术相结合,是传统的gis在网络上的延伸和发展,具有传统gis的特点,可以实现空间数据的检索、查询、制图输出、编辑等gis基本功能,同时也是internet(互联网)上地理信息发布、共享和交流协作的基础。

还应理解,本发明实施例中,如图1所示,客户端由系统层、数据层、核心业务层和应用层组成。

其中,系统层指的是操作系统,不同的硬件搭载不同的操作系统,桌面端使用window系统,移动端使用android操作系统。

数据层包括地图服务器、空间信息数据库、标绘符号数据库。地图服务器使用geoserver(地理信息系统服务器),基于struts(java的网页应用程序架构)和servlet(运行在网络服务器上的程序)框架开发、用java语言编写的全面遵循ogc(开放地理空间信息联盟)标准的开源地图服务器,实现了wms(网络地图服务)、wfs(网络要素服务)、wcs(网络覆盖服务)等接口标准;分布式文件数据库采用mongodb(分布式文件存储的数据库),基于分布式的文件存储数据库,由c++编写,为web应用提供可扩展的高性能数据存储解决方案;标绘符号库是满足《突发事件应急标绘符号规范》的符号库,包括突发事件符号、危险源符号、防护目标符号、应急资源保障符号等符号库。

核心业务层包括基础地理信息系统(webgis)、图元绘制功能模块及通信传输模块。基础地理信息系统(webgis)采用开源的cesium(二三维地图可视化引擎)引擎,有javascript(一种网页编程语言)编写,用来渲染2/3d地图和多种gis要素;图元绘制功能模包括基本图元绘制、绘制风格设置、图层管理、坐标映射转换、符号库加载、符号库管理等组成,采用javascript编写;通信传输模块使用socket.io,基于websocket实现多个客户端之间的数据通信。

应用层包括突发事件处理系统pc版和突发事件处理app。

图2至图6示出了根据本发明实施例的面向应急突发事件的webgis协同标绘方法。如图2所示,该方法包括:

s110,创建标绘实体;

s120,将所述标绘实体打包成特定消息后发送到其他客户端,其他客户端完成数据接收和解析;

s130,将解析后的标绘实体数据渲染在地图相应位置。

在s110中,开始新建标绘并选择标绘分组,如果当前没有已创建的分组,则新建分组,否则,从分组列表中任意选择一个。再点击地图确定标绘的位置信息,填写标绘实体信息。

如图4所示,为根据本发明实施例的标绘符号数据结构示意图。在本发明实施例中,为了使用户可快速扩展自定义符号,降低创建标绘符号的复杂度,需要规范标绘符号的数据结构。

标绘符号数据结构包括标绘实体和标绘分组,其中,标绘实体是能够在地图上渲染的基本数据结构,包括唯一标识符、标绘名称、标绘分组的标识符、标绘符号代码、标绘的经度、标绘的纬度、标绘创建的时间戳、标绘符号类型、标绘符号样式等。

采用javascript编写数据结构,类型是object,数据编码的结构如下:

letlabelentity={id:”,label:”,groupid:”,code:”,longitude:0,latitude:0,description:”,timestamp:0,type:”,style:{}}

标绘分组是定义一组标绘实体的基本数据结构,包括唯一标识符、创建者标识符、分组名称、分组描述信息、标绘实体的集合、创建分组的时间戳等字段。

采用javascript编写数据结构,类型是array,数据编码的结构如下:

letlabelgroup=[{uuid:”,creatorid:”,label:”,description:”,children:[labelentity,labelentity],timestamp:0}]

在s120中,如图3和图6所示,将标绘实体打包成特定消息后发送到其他客户端的方法,具体包括以下步骤:

s121,客户端加载完毕后,绑定需要监听的事件。

多端之间使用websocket共享数据,客户端在webgis加载完毕后,便会绑定需要监听的事件,比如标注创建事件和标注接收事件。

s122,事件发生后,客户端将标绘实体打包成特定消息推送至消息队列。

客户端创建标绘实体后,触发相关的事件监听器,然后把标绘实体数据打包成特定消息,即socket数据包,客户端存储事件id,并将特定消息推至消息队列(事件缓存器)。

s123,当上一事件返回确认后,事件控制器允许将特定消息推送至其他客户端,否则,推送失败。

事件控制器根据事件id判断事件的顺序,确保客户端之间的协同标注事件按次序执行,避免冲突。例如:客户端进行了两次标注,那么第二次标注事件需要在第一次标注事件完成后才能被执行。

s124,其他客户端接收特定消息,事件被触发,并将接收结果告知事件控制器。

特定消息通过websocket接口发送到其他客户端,根据事件监听器的响应,其他客户端的的接收标注事件被触发,完成特定消息的接收,并将接收结果告知事件控制器。

在s130中,其他客户端接收并解析特定消息后,得到标绘实体数据,可将标绘实体数据直接绘制并渲染到地图上。

下文中以标绘符号“火灾事故”为例,符号编码为“a20600”,对根据本发明实施例的面向应急突发事件的webgis协同标绘方法进行详细描述。

(1)首先使用geoserver发布地图服务,选择某一区域地图,将地图服务发布成wms服务,供突发事件处理app与突发事件处理系统pc版使用,服务url形如:

letmapurl=

http://192.168.20.146:8080/geoserver/cite/wms?service=wms&version=1.1.0&request=getmap&layers=cite

(2)使用mongodb搭建数据库,使用java编写操作数据库的restfull接口,基于http方法实现对标绘数据的增加、删除、更改、查询功能,接口形如:

http://192.168.20.146:8081/api/v1/annotation?

(3)基于geoserver发布的地图服务,使用cesium创建地图浏览器,突发事件处理app与突发事件处理系统pc版软件均使用该地图服务,保证地图的统一。创建webgis代码为:

(4)前三步已经基本完成标绘系统的搭建,接下来需要将“火灾事故”符号标在地图上,首先使用默认的标绘分组创建标绘实体的数据结构,数据结构如下:

letlabelentity={id:'ikxjtujxmjd',label:'火灾事故',groupid:'okixjgksplkf',code:'a20600',longitude:120.134234,latitude:31.098356,description:”,timestamp:1574482184947,type:'点标',style:null}

标绘实体的信息填充完毕后,调用标绘entity()接口实例化标绘对象,并使用viewer.entities.add()接口将标绘渲染到地图上,并通过http方法调用数据库接口进行持久化存储。

(5)标绘实体创建完成后,会自动触发标绘数据传输模块的监听器,将标绘实体的数据结构打包成特定消息,即socket数据包,使其适合在网络上传输,并推送至消息队列中,数据准备就绪后调用io.send接口将特定消息发送到其他客户端;其他客户端的数据监听模块io.receivelister监听器收到特定消息后,会自动解析特定消息中的标绘实体数据,然后再次调用标绘entity()接口创建标绘实体,并使用viewer.entities.add()在地图上进行渲染,这样就实现了多客户端之间“火灾事故”标绘数据的协同显示。

上文中结合图1至图6,详细描述了根据本发明实施例的面向应急突发事件的webgis协同标绘方法,下面将结合图7和图8,详细描述本发明实施例的面向应急突发事件的webgis协同标绘系统。

如图7所示,该系统包括:

创建模块100,用于新建标绘并选择标绘分组,点击地图确定标绘的位置信息并填写标绘实体信息;

传输模块200,采用websocket(基于tcp的全双工通信协议)api(applicationprogramminginterface,应用程序接口),用于在任意客户端之间构建一条数据通道,客户端之间均可相互接收和发送特定消息;

解析模块300,用于解析特定消息,生成可直接绘制的标绘实体数据;

绘制模块400,用于标绘实体数据的绘制并渲染到地图相应位置上。

具体的,上述绘制模块400包括坐标转换库、图形绘制算法和坐标拾取模块,坐标转换库用于实现屏幕坐标与地图坐标之间的相互转换,图形绘制算法用于在地图上绘制点线面图元,坐标拾取模块用于获取地图经纬度坐标。

在本发明实施例中,该系统还包括:

存储模块500,用于将标绘实体保存到本地数据库;

监听模块700,用于监听并响应事件;

具体的,监听模块700包括传输监听模块701和客户端监听模块702,传输监听模块701用于监听标绘实体创建完成消息,客户端监听模块702用于监听特定消息的推送。

控制模块600,用于判断事件的顺序,保证客户端之间的事件按次序执行。

对于消息队列中的特定消息,当上一事件返回确认后,控制模块600允许将特定消息推送至其他客户端,否则,推送失败。

本发明实施例的面向应急突发事件的webgis协同标绘系统的具体实现过程可以参考上述图5和图6所示实施例中面向应急突发事件的webgis协同标绘方法的具体描述,此处不再赘述。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1