基于GIS同步技术的海洋预报人机交互方法与流程

文档序号:17548556发布日期:2019-04-30 18:03阅读:161来源:国知局
基于GIS同步技术的海洋预报人机交互方法与流程

本发明涉及海洋预报制作领域、webgis领域、浏览器插件开发领域,具体涉及一种基于gis同步技术的海洋预报人机交互方法。



背景技术:

我国是海洋灾害频发的国家,特别是影响我国沿海地区的热带气旋,往往容易造成较大的经济损失,甚至人员伤亡。海洋预报是海洋防灾减灾的重要内容,能为海洋防灾减灾提供技术支撑。当前,我国海洋预报的制作、扭转主要流程是:国家海洋局海洋环境预报中心制作全国范围内的海洋预报产品-省预报机构/分局海洋环境预报中心利用自己地方特色的预报制作系统接收国家指导产品后进行参考修订-中心站利用自己地方特色的预报制作系统接收上级指导产品后进行修订,整个海洋预报产品的制作、流转过程较为繁琐,海洋预报产品制作的周期较长、协同性较差。因此,为了满足海洋精细化协同预报的需求,提高预报员的工作效率,需要建立一套基于gis同步技术的海洋预报人机交互系统,辅助预报员快速制作更准确的海洋预报产品。

国家现有海洋预报制作系统和各地预报机构的海洋预报制作系统主要包括观测数据展示、数值产品展示、预报人机交互及制作三大模块。

观测数据展示、数值产品展示是通过浏览器端访问服务端的数据进行展示,包括风、浪、流等海洋天气数据,但由于海洋气象站点的数据多,每次访问服务端的观测数据都需要重新加载一次,又需要在gis上进行叠加展示,随着数据量的累计,加载的速度将会越来越慢,逐渐不能满足海洋预报员的日常预报工作,尤其是应急灾害期间,对数据获取速度需求极高的场景,传统的都是在服务端利用技术手段提高数据读写性能,数据传输量上不能进行实质改变,每次浏览器访问都需要读取大量数据,需要发明一种新的技术手段来更快加载大量的海洋气象数据。

预报人机交互及制作是通过浏览器端在gis上进行绘图的操作,现有的技术手段是服务器端将浏览器端的绘图结果保存在gis空间数据库中,用户只能加载查询其他用户已经制作完成的海洋预报单,无法实时获取其他用户正在制作的海洋预报单的过程信息,但对于海洋预报产品制作业务来说,海洋预报工作是一项多人协作的工作,需要多个用户发挥各自的专业领域共同制作同一个预报产品,因此,需要发明一种新的技术手段来使多用户共同在gis上实现同步绘图的操作。

现有技术的缺点:

现有技术中观测数据展示、数值产品展示是通过浏览器端请求服务端数据,服务端返回数据,浏览器对其进行渲染展示,为了减少用户等待时间,提高系统并发处理能力,现代web系统一般都采用数据缓存策略对直接数据库读写的传统数据操作方式进行改进,包括反向代理缓存、数据库缓存、应用服务器缓存、分布式缓存和客户端缓存,这其中反向代理缓存、数据库缓存、应用服务器缓存、分布式缓存是在服务器端对数据进行操作,从而提高内存、磁盘、数据库系统等的处理效率,客户端缓存是依靠浏览器端存储少量的静态数据,从而减少数据的访问量。这些数据缓存策略在web系统的构建过程中均会进行使用,形成多层次的缓存地体系,但是对于庞大的gis空间数据,仅仅依靠服务器端的缓存和客户端少量数据的缓存是不够的,每次浏览器访问客户端的数据量还是没有从根本上进行减少。

现有技术中预报人机交互产品的制作主要是利用webgis平台上进行绘图操作,目前主流的webgis平台包括esri公司的arcims,mapinfo公司的mapxtreme、intergraph公司的geomediawebmap、北京超图的supermap、leaflet等能很好的支持webgis的绘图操作,但是这些webgis平台内部还未形成一套综合性的技术实现webgis上绘图过程的同步操作,多个用户的同步过程操作无法进行体现,而这个洽洽是在海洋预报产品制作过程业务中需要实现的必要功能。



技术实现要素:

本发明的目的在于提供一种基于gis同步技术的海洋预报人机交互方法,该方法通过浏览器插件的方式,实现大量海洋气象数据的本地缓存,旨在浏览器第一次访问服务端期间自动下载所有需要展示的数据,随着服务端数据的更新,用户端浏览器的数据也随时更新,从而实现除了第一次外,任意时刻用户获取的服务端数据都是少量的更新数据,从而大幅度提高海洋数据基于gis的展示效率;另外,该方法是在已用开源leaflet搭建的webgis平台下,发明一种基于gis的多用户同步绘图操作,将同一海洋预报产品制作的用户进行关联,每个用户的gis复杂操作利用基于xml技术对gis的每个操作进行封装,形成gis操作的标准规范及解析入库,同时将封装后的gis操作广播发送给所有参与者的浏览器端,实现多用户的绘图同步。

为实现上述目的,本发明的技术方案是:一种基于gis同步技术的海洋预报人机交互方法,包括如下步骤:

步骤s1、建立浏览器插件以下载海洋气象数据:

首先,针对浏览器建立浏览器插件,包括浏览器插件启动下载的时刻、下载文件的安装目录、浏览器插件运行的脚本文件;

而后,当检查到用户通过浏览器访问的地址为服务器地址时,即启动浏览器插件下载海洋气象数据至下载文件的安装目录;

步骤s2、采用浏览器插件使webgis预加载海洋气象数据:

当检查到用户访问的地址为海洋预报人机交互系统时,浏览器通过浏览器插件调用已经下载好的海洋气象数据进行加载;所述海洋预报人机交互系统系统是基于leaflet开发的webgis平台采用外部接口的方式来接收geojon传输海洋气象数据,并利用这些数据直接实现海洋气象数据的预先叠加展示;

步骤s3、建立基于gis的多用户同步绘图操作,将同一海洋预报产品制作的用户进行关联,每个用户的gis操作利用基于xml技术进行封装,形成gis操作的标准规范及解析入库,同时将封装后的gis操作广播发送给所有参与者的浏览器端,实现多用户的绘图同步,即包括:

gis封装:gis封装将在操作者执行gis操作的同时将操作指令封装,并从浏览器发送给服务器后端;

gis解析:gis解析将服务器端接收到gis封装消息进行解析,并对解析后的数据进行检验,检验gis操作的真实性,对于检验通过的gis操作信息,会将原封装信息广播至参与者用户浏览器端;浏览器端接收方获取该条命令xml消息后,按照格式文档进行解析并作为webgis的命令操作进行执行,完成与发送方相一致的海洋预报产品的gis的操作,每个用户的操作和数据相互不发生冲突,并保证每个用户所得的结果和画面保持一致,从感官上实现人机交互的多人协同操作。

在本发明一实施例中,所述步骤s1中,浏览器为chrome浏览器,相应的浏览器插件为chrome插件。

在本发明一实施例中,所述步骤s3中,gis操作包括地图缩放、地图漫游、几何分析、点/线/面编辑操作。

在本发明一实施例中,gis操作的真实性的检验是利用gis平台自带的命令信息进行自检。

相较于现有技术,本发明具有以下有益效果:本发明,通过浏览器插件的方式,实现大量海洋气象数据的本地缓存,旨在浏览器第一次访问服务端期间自动下载所有需要展示的数据,随着服务端数据的更新,用户端浏览器的数据也随时更新,从而实现除了第一次外,任意时刻用户获取的服务端数据都是少量的更新数据,从而大幅度提高海洋数据基于gis的展示效率。与以往的相比这是首次浏览器插件技术在webgis的结合,采用新的技术手段来进行大量的海洋气象数据的下载、解析工作;

本发明是在已用开源leaflet搭建的webgis平台下,通过建立基于gis的多用户同步绘图操作,将同一海洋预报产品制作的用户进行关联,每个用户的gis复杂操作利用基于xml技术对gis的每个操作进行封装,形成gis操作的标准规范及解析入库,同时将封装后的gis操作广播发送给所有参与者的浏览器端,实现多用户的绘图同步。与以往的相比这是首次实现多用户gis与同步操作技术的结合,采用新的技术手段将gis空间操作信息在多用户之间进行同步。

附图说明

图1为本发明方法流程示意图。

图2为本发明gis协作命令消息格式的设计框架。

具体实施方式

下面结合附图,对本发明的技术方案进行具体说明。

本发明提供了一种基于gis同步技术的海洋预报人机交互方法,包括如下步骤:

步骤s1、建立浏览器插件以下载海洋气象数据:

首先,针对浏览器建立浏览器插件,包括浏览器插件启动下载的时刻、下载文件的安装目录、浏览器插件运行的脚本文件;浏览器为chrome浏览器,相应的浏览器插件为chrome插件;

而后,当检查到用户通过浏览器访问的地址为服务器地址时,即启动浏览器插件下载海洋气象数据至下载文件的安装目录;

步骤s2、采用浏览器插件使webgis预加载海洋气象数据:

当检查到用户访问的地址为海洋预报人机交互系统时,浏览器通过浏览器插件调用已经下载好的海洋气象数据进行加载;所述海洋预报人机交互系统系统是基于leaflet开发的webgis平台采用外部接口的方式来接收geojon传输海洋气象数据,并利用这些数据直接实现海洋气象数据的预先叠加展示;

步骤s3、建立基于gis的多用户同步绘图操作,将同一海洋预报产品制作的用户进行关联,每个用户的gis操作(包括地图缩放、地图漫游、几何分析、点/线/面编辑操作)利用基于xml技术进行封装,形成gis操作的标准规范及解析入库,同时将封装后的gis操作广播发送给所有参与者的浏览器端,实现多用户的绘图同步,即包括:

gis封装:gis封装将在操作者执行gis操作的同时将操作指令封装,并从浏览器发送给服务器后端;

gis解析:gis解析将服务器端接收到gis封装消息进行解析,并对解析后的数据进行检验,检验gis操作的真实性(利用gis平台自带的命令信息进行自检),对于检验通过的gis操作信息,会将原封装信息广播至参与者用户浏览器端;浏览器端接收方获取该条命令xml消息后,按照格式文档进行解析并作为webgis的命令操作进行执行,完成与发送方相一致的海洋预报产品的gis的操作,每个用户的操作和数据相互不发生冲突,并保证每个用户所得的结果和画面保持一致,从感官上实现人机交互的多人协同操作。

以下为本发明的具体实现过程。

本发明一种基于gis同步技术的海洋预报人机交互方法,通过以下两方面,实现大量海洋数据的展示效率及海洋预报产品gis绘图的同步操作。

第一方面:通过浏览器插件的方式,实现大量海洋气象数据的本地缓存。浏览器本身不具备访问海量数据的缓存功能,只支持少量文字、图片数据的缓存预加,若是需要缓存大量的海洋气象数据,需要扩展浏览器的功能,因此需要使用插件技术来补充,在浏览器没有外部辅助应用程序的情况下可以接收服务器端传输的海洋气象数据,包括大量的文字、图片、数值产品文件等,并在下一次访问该地址时,可通过插件将数据预加载到系统中,而不需要执行大量的服务端数据范围操作,具体浏览器插件的技术路线如下。本次发明主要以chrome浏览器插件为例:

1、建立浏览器插件下载海洋气象数据

首先,一个chrome插件,肯定要有manifest.json这个文件,此文件可以看做是插件的配置文件,插件所需加载的脚本文件、样式文件、图标、启动时刻、版本号等都在此文件中定义。如下所示,为manifest.json文件的代码内容。

下载后解析的是本地的海洋气象数据文件,所以选用file:///*.txt";"file:///*.nc";"file:///*.png,并当访问该服务器的地址时,才启动插件进行下载,下载的文件在放于插件安装所在目录;js配置了插件在运行的时候,向页面注入的脚本所在路径,此配置项比较重要,插件的功能大部分由脚本实现;run_at指示插件运行的时刻,可选值有document_start、document_end、document_idle,这里选取document_end,意思是在创建完dom之后,在还没有加载类似于图片或frame等的子资源前立即运行;icons用于指示插件在不同场景的size下icon图标的所在地址路径。

2、建立浏览器插件使webgis预加载海洋气象数据

当检查到访问的地址为该海洋预报人机交互系统时,浏览器将通过插件调用已经下载好的本地海洋数据文件进行加载,本系统是基于leaflet开发的webgis平台,支持html5和css3,采用的是面向对象设计,封装性好,提供了很多专业的第三方javascript插件来扩展自身的功能,从而满足webgis对地图的各种查询、分析、渲染等操作,因此本系统可基于leaflet开发的webgis平台采用外部接口的方式来接收geojon传输海洋气象数据,并利用这些数据直接在海洋气象数据的预先叠加展示。

第二方面:在已用开源leaflet搭建的webgis平台下,发明一种基于gis的多用户同步绘图操作,将同一海洋预报产品制作的用户进行关联,每个用户的gis复杂操作利用基于xml技术对gis的每个操作进行封装,形成gis操作的标准规范及解析入库,同时将封装后的gis操作广播发送给所有参与者的浏览器端,实现多用户的绘图同步。

本次需要协同操作的gis操作包括地图缩放、地图漫游、几何分析、点/线/面编辑操作,这些都是在海洋预报产品绘图操作中所使用的工具。本系统采用b/s架构,采用前后端分离设计原则,由于可扩展标记语言(extensiblemarkuplanguage,xml)拥有良好的扩展性、自描述性、自相容性以及跨语种等优点,适合gis数据在web中的表达、转换与发布,因此采用基于xml的操作封装和解析技术来实现gis的同步。

gis封装:gis封装将在操作者执行gis操作的同时将操作指令封装,并从浏览器发送给服务器后端。面对如此复杂的gis操作,若要实现gis操作的实时传输,首先制定一套预报产品gis制作命令消息的描述机制,能够描述gis操作命令、操作的对象以及操作参数,发送方在浏览器上执行海洋预报产品的gis绘图操作,同时按照命令规则生成gis操作的命令消息,服务端记录目前正在执行的gis操作消息,同时采用xml技术对gis操作消息进行封装,能够描述gis操作的功能、操作对象和操作参数。如图2所示,给出gis协作命令消息格式的设计框架。

如上所述,xml生成的地图缩小操作的命令消息为:

<xmlversion="1.0"encoding="utf-8">

<giscontent>

<sendmessage>

<fromuser>操作者:a</fromuser>

<touser>查看者:b</touser>

<sendtime>2018/03/0518:37:28</sendtime>

</sendmessage>

<gismessage>

<type>缩小</type>

<gisparameters>

<parameter>

<name>xmin</name>

<value>-1</value>

</parameter>

<parameter>

<name>xmin</name>

<value>-2</value>

</parameter>

</gisparameters>

</gismessage>

</giscontent>

以上就是通过xml技术对gis操作进行封装,上面执行了缩小的两次操作,分辨是图层“-1”和“-2”操作。“giscontent”是缩小操作消息格式的根节点,“sendmessage”、“gismessage”等都是子节点。

gis解析:gis解析将服务器端接收到gis封装消息进行解析,并对解析后的数据进行检验,检验gis操作的真实性(主要是利用gis平台自带的命令信息进行自检),对于检验通过的gis操作信息,会将原封装信息广播至参与者用户浏览器端。浏览器端接收方获取该条命令xml消息后,按照格式文档进行解析并作为webgis的命令操作进行执行,完成与发送方相一致的海洋预报产品的gis的操作,每个用户的操作和数据相互不发生冲突,并保证每个用户所得的结果和画面保持一致,从感官上实现人机交互的多人协同操作。

基于xml的gis操作封装及解析有益于:(1)规范数据格式,xml可以方便的表达gis空间信息;(2)良好的扩展性,无论gis操作有多复杂,都能一次性通过xml文档的方式进行封装以及解析。

本发明在基于leaflet的webgis平台上,采用chrome提供的插件开发技术建立浏览器插件,从而下载海洋预报人机交互系统提供的海洋气象数据,并利用webgis平台提供的数据接口,插件通过调用本地已经下载海洋气象数据转换成geojson的数据格式提交给webgis平台,从而使webgis平台利用自带的解析技术对其进行应用展示。在已用开源leaflet搭建的webgis平台下,发明一种基于gis的多用户同步绘图操作,将同一海洋预报产品制作的用户进行关联,每个用户的gis复杂操作利用基于xml技术对gis的每个操作进行封装,形成gis操作的标准规范及解析入库,同时将封装后的gis操作广播发送给所有参与者的浏览器端,实现多用户的绘图同步操作。

以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。

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