本发明涉及管网数据编辑,尤其涉及一种高性能管网数据在线编辑方法及系统。
背景技术:
1、随着智慧城市建设的深入发展,城市地下管网地理信息系统逐渐成为维系城市正常运转、保障城市安全和统筹城市发展的重要手段。管网设施运行特点要求管网数据更新过程的高时效性和准确性。因此,高性能的管网数据在线编辑能力对城市地下管网地理信息系统至关重要。
2、当前实现管网数据在线编辑的方式可大致分为三种:(1)基于client/server模式的多版本管网数据编辑,该方法基于gis二次开发平台及其集成的gis组件进行集成式开发,采用版本控制来实现多用户编辑,但随着版本数量增加,会降低查询速度和数据处理效率,影响大规模数据的实时渲染,增加版本合并时导致数据冲突的可能性。(2)基于wfs(webfeature service)的管线数据维护,该方法允许用户通过web服务进行在线编辑,提高了数据共享和协作的灵活性。然而,该方法会降低存量管网数据的安全性;对网络环境依赖度较高,在处理大规模数据和快速响应方面不足;在复杂管线的拓扑关系维护和多用户编辑时的数据冲突解决方面有所欠缺。(3)基于任务管理的管网数据编辑,该方法的特点在于将特定的区域及区域内管网划分为独立任务,数据按区域锁定后,在pc端或移动端进行独立编辑。该方法降低了数据合并时发生冲突的可能性,但这种区域锁定方式会将不参与编辑的数据也锁定,可能会影响其他区域的编辑工作。
3、综合上述情况,当前实现管网数据在线编辑所采用的方法在处理大规模数据时,效率较低;在处理数据冲突问题时,基于任务的管网数据在线编辑方法是一种有效的解决方案,但其区域锁定方式降低了整体编辑效率。
技术实现思路
1、为克服上述的不足之处,本发明目的在于提供一种高性能管网数据在线编辑方法及系统,本发明针对当前管网数据在线编辑所面临的问题,本发明可以提升存量管网和新采集管网数据的整体渲染效率,并基于管网的拓扑关系对相关数据进行锁定和编辑,从而提高管网数据在线编辑的性能,提升在线管网数据维护的效率。
2、本发明是通过以下技术方案达到上述目的:一种高性能管网数据在线编辑方法,包括如下步骤:
3、(1)将存量管网数据转换为矢量切片,封装成矢量切片服务,并进行分层和分块处理;
4、(2)将采集到的管网数据导入新建的任务中,对导入的管网数据进行整合;
5、(3)打开待编辑任务后,依次对存量管网数据和任务中的管网数据进行数据渲染,并编辑任务中的管网数据;如需要编辑存量管网数据时,依次进行数据提取、数据加锁和数据编辑;
6、(4)进行数据检查及审核,判断编辑后的数据是否有误,若是,则重新执行步骤(3)直至审核通过;若无误,则审核通过,进入下一步骤;
7、(5)将审核无误的任务中的管网数据与存量管网数据进行合并更新,更新完成后,解锁提取时加锁的数据,结束流程。
8、作为优选,所述步骤(1)具体如下:
9、(1.1)从数据库中读取管网数据,转化成geojson格式,并以该格式的文件进行存储;
10、(1.2)将geojson格式的文件的管网数据转化为矢量切片服务,并进行分层和分块数据管理;其中切片方法为:根据口径大小对管网数据进行分层设计,将口径大的管网数据显示在层级低的地图视图中;在高层级地图视图下,根据地图切片金字塔原理对范围内的所有管网数据进行分块管理,计算分块层级下的切片数量和每块切片的区块范围,根据每块切片的区块范围对管网数据进行数据分割的分块设计;
11、(1.3)基于分层和分块数据的矢量切片服务生成矢量切片内存索引,并采用 lru算法管理内存中的矢量切片缓存和生成的矢量切片内存索引。
12、作为优选,所述采用 lru 算法管理内存中的矢量切片缓存和生成的矢量切片内存索引的方法如下:
13、(i)当矢量切片服务被请求时,系统首先检查内存中是否已缓存该矢量切片;
14、(ii)如果矢量切片已存在于内存缓存中,则直接从内存缓存中提供矢量切片,同时更新该矢量切片在lru缓存中的位置,将其移至队列前端,表示最近被使用;
15、(iii)如果矢量切片不在内存缓存中,则判断该矢量切片所在的矢量切片内存索引是否在内存缓存中,如果矢量切片内存索引已存在于内存缓存中,则直接从矢量切片内存索引中读取矢量切片,同时更新该矢量切片和矢量切片内存索引在lru内存缓存中的位置,将其移至队列前端,表示最近被使用;
16、(iv)如果矢量切片内存索引也不在内存缓存中,系统将读取管网数据对应的geojson格式的数据文件,生成矢量切片内存索引然后将其加入内存缓存,同时提供请求的矢量切片;如果设定的内存缓存队列已满,lru算法将移除最久未使用的矢量切片内存索引和矢量切片,为新数据腾出内存空间;
17、(v)生成的矢量切片内存索引和矢量切片被加入内存缓存,并放置在队列的前端,表示最近使用。
18、作为优选,所述在步骤(2)数据整合中,当任务中的管网记录数大于预设条数时,将任务中的管网数据按照分层分块的设计,转换为矢量切片服务,并将矢量切片服务以任务编号命名,以便于任务加载时能快速调用对应的矢量切片;
19、当任务涉及的管网记录数小于或等于预设条数时,利用基于webgl技术创建的图层进行渲染,将管网数据通过geobuf格式进行无损压缩。
20、作为优选,所述步骤(3)中对管网数据进行渲染过程如下:
21、渲染存量管网数据的矢量切片服务,并根据数据量大小的不同,对新探测管网数据采用不同的数据渲染方式;当任务中的管网记录数大于预设条数时,则根据任务名称读取相应的矢量切片服务,渲染当前任务的管网数据;编辑端采用动态查询提取的方式对任务管网数据进行灵活编辑,并实时追踪更新任务的矢量切片服务,以确保数据的实时性和准确性;当任务中的管网记录数小于或等于预设条数时,则利用基于webgl的图层,根据设备的样式进行绘制和渲染,以实现任务管网数据的可视化处理。
22、作为优选,所述步骤(3)中对管网数据进行加锁过程中,采用基于任务和拓扑结构的数据锁定机制,具体如下:
23、(i)利用属性字段表达管网的拓扑结构,其中属性字段不仅包含管网元素的基本信息,还包括了用于维护拓扑关系的关键字段;
24、(ii)根据管网拓扑数据结构的设计,使用图论方法构造邻接矩阵,并应用广度优先遍历算法进行层级遍历;层级遍历的广度可根据需求进行调整;为了确保编辑过程中不影响未提取的管网数据的拓扑结构,如果发现提取的数据中有末端节点与未提取的管网数据相连,该末端节点将被标记为不可编辑状态;
25、(iii)提取的数据在编辑界面上可视化显示,在用户确认提取数据后,系统将在记录锁定数据的表中锁定当前提取的数据;同时,当其他任务尝试提取数据时,系统进行冲突检查,防止对已锁定数据的非授权编辑。
26、作为优选,所述广度优先遍历算法进行层级遍历的步骤如下:
27、(a)在开始遍历之前,设定一个层级计数器,初始值设为0;
28、(b)使用一个元组来进行存储,其中元祖指节点, 层级;
29、(c)根据需要,预先确定一个最大遍历层级;当遍历达到这个层级时,算法将停止进一步遍历;
30、(d)从起始节点开始遍历,将起始节点及其层级放入队列;
31、(e)从队列中取出节点时,检查其层级信息;如果节点的层级小于最大遍历层级,则继续处理该节点的邻接节点;当添加一个节点的邻接节点到队列时,将其层级设置为当前节点的层级加1;
32、(f)每次从队列中取出节点时,检查其层级;如果达到或超过设定的最大遍历层级,则不再将其邻接节点加入队列;
33、(g)当队列为空或达到最大遍历层级时,遍历结束。
34、作为优选,所述步骤(3)中对管网数据进行编辑过程中,涉及管网的空间定位调整、属性信息修改和录入编辑操作、以及拓扑关系维护,最终生成编辑完成的数据集;该步骤中为用户提供了管网空间数据修改的完整工具集,用户可以执行一系列编辑操作;用户可选择单个管网对象进行直接编辑,或者利用属性刷工具进行批量属性编辑;编辑端通过维护每个节点设备的原始编号及管线的起始和终点编号来保证拓扑关系的准确性;在数据保存到服务端时,系统将首先验证基于属性值所建立的拓扑关系,以确保其正确性和完整性;然后,系统将根据这些属性关系检验空间位置所建立的拓扑关系,必要时进行纠正以保持拓扑一致性。
35、作为优选,所述步骤(4)进行数据检查及审核时,系统对编辑完成的管网数据进行全面的检查和审核,以确保数据的准确性和一致性,数据通过审核则进入下一步骤,不通过则返回数据编辑流程重新修改,直至审核通过;该步骤包括通过算法对数据自动检查和人工经验审核两种数据检查方式:
36、(a)数据自动检查:利用设计的若干项数据自动检查项自动检查数据的准确性和完整性;数据自动检查项目包括:1)空间位置重复检查:通过对比坐标识别管网中的重叠或过度靠近的元素;任何发现的重复位置的管点和管线被标记,并在报告中详细列出;2)孤立点检查:遍历所有点,检查每个点是否至少与一条线段相连,未连接的点被视为孤立点,并在报告中收集其信息;3)孤立线检查:遍历所有线段,检查其两端是否至少与其他线段或点相连;两端都未连接的线段被标记为孤立线,其信息将被收集在报告中;
37、(b)人工经验审核:在数据自动检查完成后,对数据进行人工审核。
38、作为优选,所述步骤(5)中,将经过审核无误的任务中的管网数据与gis管网数据库中的现有数据融合,更新存量管网数据,并释放该任务中锁定的数据:其中,任务中的管网数据包括任务导入的管网数据、提取存量管网数据加入编辑和编辑中产生的管网数据;系统将新编辑的管网数据合并至gis管网数据库中,系统解除数据锁;其中合并操作包括插入新增新管网数据、更新或删除之前锁定的存量管网数据;系统识别出管网数据发生变更的区域,并针对这些变更更新相应区域的矢量切片;待矢量切片更新完成后,系统则自动推送更新通知至客户端。
39、一种高性能管网数据在线编辑系统,包括矢量切片及其实时管理模块、管网拓扑关系的维护模块、数据锁维护模块、数据审核及数据更新模块;
40、所述的矢量切片及其实时管理模块用于管网数据的矢量切片转换和实时管理;
41、所述的管网拓扑关系的维护模块用于管网数据拓扑结构的全面维护和管理,确保其准确性和一致性;用于进行空间与属性拓扑的结合,处理基于空间和属性的拓扑关系;管网拓扑关系的维护模块不仅管理管网元素间的物理连接和布局,以支持空间分析,还维护元素的属性信息,通过这些属性关系定义元素间的逻辑连接;确保拓扑一致性,模块结合空间和属性数据,自动检测和纠正拓扑错误,确保管网数据的拓扑一致性;
42、所述的数据锁维护模块用于管理多用户编辑环境中的数据锁定,以预防和解决编辑过程中可能出现的数据冲突;
43、所述的数据审核及数据更新模块用于对编辑完成的管网数据进行全面的检查和审核,以确保数据的准确性和一致性,然后执行gis管网库合并更新。
44、本发明的有益效果在于:(1)本发明可以高效进行大数据量处理与实时同步:利用矢量切片技术大幅提升大规模管网数据的渲染效率;实现实时数据同步机制,确保数据的即时更新和准确呈现;(2)本发明具有先进的数据冲突管理与拓扑关系维护,基于管网拓扑的数据锁定机制有效解决多用户编辑环境中的数据冲突;精确的属性字段设计提供了清晰、高效的管网拓扑结构,简化结构分析和数据管理。