[发明专利]一种Web前端分层展示大数据量CAD文件的方法有效
申请号: | 202010892975.5 | 申请日: | 2020-08-31 |
公开(公告)号: | CN112100123B | 公开(公告)日: | 2023-06-09 |
发明(设计)人: | 姚志武;张力;管林杰;侯丽娜;张钟海;李名哲 | 申请(专利权)人: | 长江空间信息技术工程有限公司(武汉) |
主分类号: | G06F16/11 | 分类号: | G06F16/11;G06F16/957;G06F16/958 |
代理公司: | 武汉宇晨专利事务所(普通合伙) 42001 | 代理人: | 狄宗禄 |
地址: | 430010 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 web 前端 分层 展示 数据量 cad 文件 方法 | ||
1.一种Web前端分层展示大数据量CAD文件的方法,其特征在于:包括如下步骤,
步骤一:Web前端将待展示的CAD文件上传至服务器;
在步骤一中,获取在WEB前端中选择的CAD文件和数据分层数n,通过FormData对象将CAD文件和分层数n发送到服务器端;通过分层方式,减少网络传输时的文件大小限制;
步骤二:服务端保存数据、并打开CAD文件;
步骤三:获取要素数量和服务器核心数;
在步骤三中,调用ArcGIS的FeatureCount接口获取待处理图层中的要素数量,并通过.NET框架下的Environment对象获取服务端核心数t;
步骤四:根据要素唯一标识符构建多个子任务信息;
在步骤四中,通过要素的唯一标识符FID将要素分解成n个要素集合,通过FID最大最小值确定每个要素集合的FID范围,每个集合中的要素FID都在其特定范围内;
步骤五:根据服务端核心数启动多个子进程,循环执行子任务,直至所有任务都处理转换成对应的Json文件;
步骤六:将所有json文件的访问链接封装成一个json对象,并返回给WEB前端;
步骤七:WEB前端根据服务端返回的json对象解析出所有的结果json文件的链接,并逐个通过链接请求的方式获取json数据内容,进行图形分层绘制,控制各层数据的可见性,降低前端绘制与渲染的压力,支持大数据量情况下的CAD文件展示。
2.根据权利要求1所述的Web前端分层展示大数据量CAD文件的方法,其特征在于:在步骤二中,服务端接收WEB前端传输的CAD文件和分层数n并在服务器指定路径保存CAD文件,通过调用ArcGIS的IWorkspaceFactory接口连接CAD数据所在的空间数据库,然后调用ArcGIS的IFeatureWorkspace接口,以CadWorkspaceFactoryClass实现类的方式打开CAD文件中的图层。
3.根据权利要求2所述的Web前端分层展示大数据量CAD文件的方法,其特征在于:在步骤四中,生成n个CAD数据处理子任务,每个任务的信息包括步骤S2中获取的待处理数据所在的空间数据库、待处理图层名、步骤四中获得的FID范围和任务执行状态标识符State;执行状态标识符State的取值有0、1、2,其中0表示任务未执行,1表示任务正在执行,2表示任务已经执行完成并生成了结果;n个子任务的所有信息通过序列化的方式存储成一个文本txtInfo。
4.根据权利要求3所述的Web前端分层展示大数据量CAD文件的方法,其特征在于:在步骤五中,启动t个子进程,子进程以独占方式读取文本txtInfo,遍历所有子任务状态;
当能够找到一个任务状态为0的任务m,则子进程将任务m的执行状态设置为1,并释放对文本txtInfo的独占;子进程根据要素FID范围读取要素并将其存储为json文件,子进程以独占方式读取文本txtInfo,并将任务m的执行状态设置为2,保存文本并退出独占。
5.根据权利要求4所述的Web前端分层展示大数据量CAD文件的方法,其特征在于:在步骤五中,主进程以非独占的方式读取文本txtInfo,遍历所有子任务的执行状态;
当所有子任务的执行状态都为2,则进行步骤六;
反之则主线程休眠1秒,之后再遍历所有子任务的执行状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长江空间信息技术工程有限公司(武汉),未经长江空间信息技术工程有限公司(武汉)许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010892975.5/1.html,转载请声明来源钻瓜专利网。