一种可在线交流的多部门协同制图方法及其系统
未命名
08-14
阅读:100
评论:0
1.本发明提供一种可在线交流的多部门协同制图方法及其系统,属于地理信息技术领域。
背景技术:
2.现代社会需要解决的问题越来越复杂,需要跨部门甚至跨行业进行协作决策。以交通气象服务为例,气象对交通活动的影响非常重要。据交通管理部门统计,全国高速公路事故中,浓雾、薄冰、积雪、暴雨、大风天气下发生的事故占事故总数的39%。气象灾害及其诱发的地质灾害是造成道路堵塞、封路,甚至直接导致交通运输中断,诱发交通事故,造成公民生命财产以及直接经济损失的重要因素。气象数据由各个部门自己管理维护。为了更好地完成交通气象服务,必然要求数据的共享和专题图的共制。
3.但由于地理空间数据的非结构性特点,专题制图长久以来延续着单机作业模式。从专题数据的编辑处理开始到专题地图的要素设计,再到专题地图的编制成图,整个过程都是单个gis工程师在相对“封闭”的环境下进行的。
4.各个专业的高素质绘制人员数量有限,能够把握全局工作进行综合绘制的专家更是少之又少,不得不使用传统单机gis软件绘制,传统的gis地图绘制工作一般采用分工模式进行,最后再综合的方法,修改意见往往反馈不够及时,就会导致大量重复冗余的工作,这就会影响绘制工作的效率。单机的作业系统也不利于专家经验和数据的共享;更加不利于进行多部门的协同绘制工作。努力解决地图绘制工作中存在的效率低、准确度不高、反应慢等实际问题,是多部门协同的必经之路。
5.cn112070861a提出一种配电网gis电线图多工单协同制图方法和装置。该方法基于电网建模请求,得到单线图;调用电力地理信息系统的服务接口,检测与单线图对应的地理信息沿布图第一阶段是否有更新;当获取到地理信息沿布图第一阶段更新的检测结果时,响应用户操作,打开电力地理信息系统,将更新的地理信息沿布图更新到单线图以进行第一阶段更新;提交图形化审核。采用该方法生产系统与电力地理信息系统能够做到数据共享,减少电网gis平台与生产系统的工单互锁,提高了对单线图维护的工作效率。该方法针对电网单线图,依据建模请求实现数据更新,不能实现实时更新显示。
6.cn108536723b提出了一种顾及地理特征的多用户实时同步协同地图编辑方法及系统。该方法基于按需局部复制实现了多用户数据同步与共享,结合项目分工不同角色,利用动态锁和基于socket的消息传递实现顾及地理特征约束条件的并发控制,提出“事前”干预与“事后”程序自动化和人工干预相结合的并发冲突消解方法。此发明使多个项目在平台上同时进行;多个作业员同时编辑数据服务器上某一图层数据量较大、图斑较多的地图数据;同时,质检员对各作业员所做的编辑结果进行质量检查、技术问题处理甚至是并行冲突的裁决;项目管理人员实时监控进度和质量并对任务分区适时调整,能够提高生产效率和产品质量,尤其是提高大规模数据生产的整体效益。该方法对地理空间数据按需局部复制,实现多用户数据同步与共享。但数据存在冗余,且传输压力大。地图数据冲突解决放在服务
器端,增加了服务器的运算压力。
7.何列松(何列松,刘海砚,黄利民,等.利用地图文档模拟的地图编辑事务模型[j].武汉大学学报(信息科学版),2021,46(4):561-569,何列松.基于地图编辑长事务模型的协同制图关键技术研究[d].战略支援部队信息工程大学,2020.)设计了一种地图编辑长事务(melt)模型。它基于地图文档状态及其变化模拟协同制图地图编辑事务,支持空间坐标、属性、几何、关系等定义,用地图文档状态变化描述地图编辑事务,利用地图文档备份数据和变化数据来存储组织地图编辑事务,为协同制图提供了一种高效事务处理手段。该方法采用长事务模型,空间数据库更新异步,导致地图编辑完成后,不能及时更新空间数据库;利用地图文档备份数据,同样存在数据冗余问题。
技术实现要素:
[0008]
本发明提出一种可在线交流的多部门协同制图方法及其系统,以解决以下的技术问题:
[0009]
1、针对合作制图的需求日益强烈,在webgis环境下,实现在线协同绘图。
[0010]
2、在线协同制图的同时,提供在线交流功能,就地图绘制实现实时沟通。
[0011]
3、同步更新不同用户的地图视图,实现所见即所得。
[0012]
本发明提出了一种可在线交流的多部门协同制图方法。该方法基于websocket和fetch长轮询技术保持浏览器和服务器之间的通讯,用户可以直接在浏览器上实现实时通讯交流的功能,方便用户进行交流。协同绘制地图时,一个用户绘制点、线、面图形。图形数据包装成geojson传送至服务端,然后服务端将数据推送至各个客户端,客户端对接受到的消息进行解析绘制,即可实现两个或多个其他用户在浏览器的地图容器中同步看见这个用户所绘制的图形。当绘制完成后,可以将协同绘制的成果进行保存,保存进数据库中。
[0013]
具体方法如下:
[0014]
(1)客户端启动协同制图,利用websocket与服务器建立连接;websocket协议实现客户端与服务器进行双向通信,允许服务端在数据更新或收到数据时主动向全部客户端推送数据。浏览器向服务器发送连接请求,和服务器通过http完成第一次握手,带去websocket连接参数,服务器响应连接请求,两者之间完成连接,进行数据传输、交换;
[0015]
(2)客户端与服务端基于websocket连接,实现文字交流;
[0016]
(3)客户端进行图形绘制;绘制过程由客户端javascript完成图形边界捕捉以及冲突的解决;
[0017]
(4)图形绘制完成后,javascript将其包装成geojson,利用javascript发送至服务端;服务端web和xml服务器解析数据包得到图形;
[0018]
(5)fetch长轮询机制基于客户端和服务端之间的连接,向服务器发送获得geojson的请求;请求的返回值将赋给fetchpromise变量;promise记录执行状态;
[0019]
(6)服务器将图形数据以geojson的形式通过web和xml服务器返回至fetch引擎;
[0020]
(7)获取操作成功,promise状态发生变化,promise调用处理函数,传入一个包含服务器的响应的response对象,利用处理函数解析geojson数据包,完成图形更新绘制。
[0021]
geojson是一种对各种地理数据结构进行编码的格式,基于javascript对象表示法(javascriptobjectnotation,简称json)的地理空间信息数据交换格式。geojson对象可
以表示几何、特征或者特征集合。geojson支持下面这几种几何类型:点、线、面、多点、多线、多面和几何集合。geojson里的特征包含一个几何对象和其他属性,特征集合表示一系列特征。
[0022]
webgis,即网络地理信息系统,是从传统的地理信息系统技术发展而来,指的是基于网络技术能够实现地理信息发布、地理空间数据的共享并能对其进行操作功能的综合地理信息平台。它能够把地图通过发布服务的方式发送至服务器上,这样用户就可以通过直接使用各种浏览器来对在线地理信息资源进行查看,采用http协议与web服务端通讯,实现gis中对地理空间信息的查询、处理数据和制图等功能。
[0023]
虽然目前在功能方面网络地理信息系统不如desktopgis软件。但是,由于webgis系统具有使用简单、能够实现对于实时数据快速的更新推送、以及强大的跨平台性,使得webgis发展方向成为gis未来主流的发展方向。目前,基于webgis的应用能够完成的gis功能也越来越多,webgis技术已广泛应用于gis领域。
[0024]
cscw,即在计算机支持下的协同工作,它是用来研究一组用户群体如何充分在计算机的支持,尤其是web的支持下,进行协同工作,来完成用户的目标任务。在互联网环境下,cscw往往和网络技术相结合,结合出在网络环境下的协同工作技术,其不仅可以很好的实现跨越不同计算机进行协同工作的目标,而且不会因为某个工程师电脑的硬件或软件故障而导致其已经完成的工作内容的丢失。因此基于web的协同工作技术成为cscw中一个重要的发展方向。
[0025]
本发明基于上述情况,提供基于webgis、cscw的系统,帮助解决在传统地图绘制中存在的问题,帮助多部门实现合作制图,方便不同部门不同专业的人员进行沟通交流,省去中间繁杂的手段,使制图结果可以及时准确的反馈,保障了信息传递的实时性和有效性。
[0026]
本发明技术方案带来的有益效果:
[0027]
1、本发明为跨部门的在线协同制图提供了一种新的方法;
[0028]
2、本发明的方法同步更新不同用户的视图,实现所见即所得;
[0029]
3、本发明所涉地图数据在客户端实现图形捕捉和冲突检查,不存在数据冗余,操作简便。
附图说明
[0030]
图1是本发明的可在线交流的多部门协同制图方法架构图;
[0031]
图2是本发明的流程图;
[0032]
图3是本发明的系统架构图;
[0033]
图4是本发明的协同绘制模块流程图;
[0034]
图5是实施例的协同绘制结果;
[0035]
图6是实施例的协同绘制清空按钮效果图;
[0036]
图7是实施例的在线交流效果图。
具体实施方式
[0037]
结合实施例说明本发明的具体技术方案。
[0038]
一种可在线交流的多部门协同制图方法,包括以下步骤:
[0039]
(1)客户端启动协同制图,利用websocket与服务器建立连接。websocket协议可以实现客户端与服务器进行双向通信,允许服务端在数据更新或收到数据时主动向全部客户端推送数据。浏览器向服务器发送连接请求,和服务器通过http完成第一次握手,带去websocket连接参数,服务器响应连接请求,两者之间完成连接,进行数据传输、交换。如图1所示。
[0040]
(2)客户端与服务端基于websocket连接,实现文字交流。
[0041]
(3)客户端进行图形绘制。绘制过程由客户端javascript完成图形边界捕捉以及冲突的解决。
[0042]
(4)图形绘制完成后,javascript将其包装成geojson,利用javascript发送至服务端。服务端web和xml服务器解析数据包得到图形。
[0043]
(5)fetch长轮询机制基于客户端和服务端之间的连接,向服务器发送获得geojson的请求。请求的返回值将赋给fetchpromise变量。promise可以记录执行状态。
[0044]
(6)服务器将图形数据以geojson的形式通过web和xml服务器返回至fetch引擎。
[0045]
(7)获取操作成功,promise状态发生变化,promise调用处理函数,传入一个包含服务器的响应的response对象,利用处理函数解析geojson数据包,完成图形更新绘制。
[0046]
基于上述图2所示的方法,本发明提供一种系统,该系统允许多个用户在线上同时对同一地图项目进行操作,即时分享绘制成果,还可以实现实时在线的沟通。通过本系统大大提高了绘图效率。本系统采用了html、css、javascript结合react框架作为前端展示,node.js作为后台的b/s框架,前后端通讯使用fetch,关系型数据库使用mysql。系统的整体框架如图3。
[0047]
数据服务层由关系型数据库mysql和空间数据库组成。由node.js提供数据读写服务。node.js是使用v8引擎在服务端运行的js代码的运行环境,从而使得客户端和服务端可以采用统一的编程语言,使开发者能够轻松开发出高并发的web应用。
[0048]
业务逻辑层由管理模块、地图操作模块、协同制图模块组成。管理模块负责用户的用户名和密码的验证,如果数据库中存在对应的数据,则通过验证,进入系统的主页面;如果用户名和密码有一项错误,则无法进入主页面,并且弹出错误原因。地图操作模块负责基础地图操作,利用mapboxgljs、bmapgllib等javascript开源库,可以实现地图相关的基础操作,如地图的缩放、漫游、属性信息的查看、地图视角切换等基本地图功能。协同制图模块利用上述方法实现不同用户协同制图功能,实现不同用户界面地图图形一致性实时显示。
[0049]
web服务层由node.js和fetch为前后端提供通讯服务。fetch技术是最新的方法,用户界面通过javascript向服务端发送fetch请求,通过http请求发送至服务端由web和xml服务器,将处理结果通过web和xml服务器以promise格式返回至fetch引擎,通过fetch引擎传到客户端中,再使用对应方法渲染为html+css返回值客户端用户界面。
[0050]
用户表现层负责提供用户界面,为用户提供操作接口,为服务器返回的数据实现页面绘制、显示和刷新。mapboxgljs是mapbox公司提供的js库,实现地图要素的渲染,从而使地图要素拥有更好的视觉效果和非常流畅的交互性。
[0051]
系统实现了核心的协同绘制功能,包括三部分分别是:行业数据的加载、地图协同绘制和在线实时交流功能,其流程如图4所示。
[0052]
本实施例中,涉及的系统,基于websocket技术和fetch长轮询技术保持浏览器和
服务器之间的通讯,用户可以直接在浏览器上实现实时通讯交流的功能,方便用户进行交流。在协同绘制的界面中,一个用户运用地图js库所提供带的点、线、面符号进行绘制时,通过获取网页绘制的图形数据包装传送至服务端,然后服务端将数据推送至各个客户端,客户端方面再对接受到的消息进行解析绘制,即可实现两个或多个其他用户,可以在浏览器的地图容器中,同步看见这个用户所绘制的图形。当绘制完成后,可以将协同绘制的成果进行保存,保存进数据库中。协同绘制结果如图5所示。
[0053]
点击清空按钮后,界面上的绘制数据全部清空,如图6所示。
[0054]
在线交流功能实现不同用户的信息被实时发送至主界面上,还能看见其他用户的信息,在线交流模块效果图如图7所示。
技术特征:
1.一种可在线交流的多部门协同制图方法,其特征在于,基于websocket和fetch长轮询技术保持浏览器和服务器之间的通讯,用户直接在浏览器上实现实时通讯交流的功能;一个用户绘制点、线、面图形,图形数据包装成geojson传送至服务端,然后服务端将数据推送至各个客户端,客户端对接受到的消息进行解析绘制,即可实现两个或多个其他用户在浏览器的地图容器中同步看见这个用户所绘制的图形;当绘制完成后,将协同绘制的成果进行保存,保存进数据库中。2.根据权利要求1所述的一种可在线交流的多部门协同制图方法,其特征在于,包括以下步骤:(1)客户端启动协同制图,利用websocket与服务器建立连接;websocket协议实现客户端与服务器进行双向通信,允许服务端在数据更新或收到数据时主动向全部客户端推送数据;浏览器向服务器发送连接请求,和服务器通过http完成第一次握手,带去websocket连接参数,服务器响应连接请求,两者之间完成连接,进行数据传输、交换;(2)客户端与服务端基于websocket连接,实现文字交流;(3)客户端进行图形绘制;绘制过程由客户端javascript完成图形边界捕捉以及冲突的解决;(4)图形绘制完成后,javascript将其包装成geojson,利用javascript发送至服务端;服务端web和xml服务器解析数据包得到图形;(5)fetch长轮询机制基于客户端和服务端之间的连接,向服务器发送获得geojson的请求;请求的返回值将赋给fetchpromise变量;promise记录执行状态;(6)服务器将图形数据以geojson的形式通过web和xml服务器返回至fetch引擎;(7)获取操作成功,promise状态发生变化,promise调用处理函数,传入一个包含服务器的响应的response对象,利用处理函数解析geojson数据包,完成图形更新绘制。3.一种可在线交流的多部门协同制图系统,其特征在于,用于多个用户在线上同时对同一地图项目进行操作,即时分享绘制成果,以及实现实时在线的沟通;采用了html、css、javascript结合react框架作为前端展示,node.js作为后台的b/s框架,前后端通讯使用fetch,关系型数据库使用mysql;包括:数据服务层,由关系型数据库mysql和空间数据库组成;业务逻辑层,由管理模块、地图操作模块、协同制图模块组成;管理模块负责用户的用户名和密码的验证,如果数据库中存在对应的数据,则通过验证,进入系统的主页面;如果用户名和密码有一项错误,则无法进入主页面,并且弹出错误原因;地图操作模块负责基础地图操作,实现地图相关的基础操作;协同制图模块用于实现不同用户协同制图功能,实现不同用户界面地图图形一致性实时显示;web服务层,由node.js和fetch为前后端提供通讯服务;fetch技术是最新的方法,用户界面通过javascript向服务端发送fetch请求,通过http请求发送至服务端由web和xml服务器,将处理结果通过web和xml服务器以promise格式返回至fetch引擎,通过fetch引擎传到客户端中,再使用对应方法渲染为html+css返回值客户端用户界面;用户表现层,负责提供用户界面,为用户提供操作接口,为服务器返回的数据实现页面绘制、显示和刷新。
技术总结
本发明提供一种可在线交流的多部门协同制图方法及其系统,基于WebSocket和Fetch长轮询技术保持浏览器和服务器之间的通讯,用户直接在浏览器上实现实时通讯交流的功能;一个用户绘制点、线、面图形,图形数据包装成GeoJSON传送至服务端,然后服务端将数据推送至各个客户端,客户端对接受到的消息进行解析绘制,即可实现两个或多个其他用户在浏览器的地图容器中同步看见这个用户所绘制的图形;当绘制完成后,将协同绘制的成果进行保存,保存进数据库中。本发明解决在传统地图绘制中存在的问题,帮助多部门实现合作制图,方便不同部门不同专业的人员进行沟通交流,省去中间繁杂的手段,使制图结果可以及时准确的反馈,保障了信息传递的实时性和有效性。息传递的实时性和有效性。息传递的实时性和有效性。
技术研发人员:褚永彬 樊骜 崔林林 卞玉霞 王增武 喻亮
受保护的技术使用者:成都信息工程大学
技术研发日:2023.05.23
技术公布日:2023/8/13
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
