[發明專利]一種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.szxzyx.cn/pat/books/202010892975.5/1.html,轉載請聲明來源鉆瓜專利網。





