CAD圖DWG解析WebGIS可視化技術分析總結


背景

AutoCAD是國際上著名的二維和三維CAD設計軟件,用於二維繪圖、詳細繪制、設計文檔和基本三維設計。現已經成為國際上廣為流行的繪圖工具。.dwg文件格式成為二維繪圖的事實標准格式。

但由於AutoCAD私有格式,只能在CAD軟件上編輯查看,如何發布至Web上,並在上面做應用開發,如數據展示,GIS分析等,一直是業內頭疼的事情。

解析DWG格式

DWG與DXF
DWG格式文件是Auto CAD 軟件的專有格式,類似於doc,是封閉的不開放的,且是二進制的。而 DXF 格式則是文本格式的,用於交換數據的,使用Auto CAD軟件本身就可將 DWG文件另存為 DXF文件。

現有的能解析DWG格式的開源 CAD項目:
1、FreeCAD:開源,2D支持較好,對DXF支持較好。

需要使用 TeighaFileConverter(商業軟件)將 DWG格式轉換為 DXF格式。因為 FreeCAD 基本不支持DWG格式。

參考:https://www.freecadweb.org/wiki/index.php?title=FreeCAD_and_DWG_Import

  1. 其它 github 解析、瀏覽CAD文件的一些項目,未驗證是否有效:
    https://github.com/LibreCAD/LibreCAD
    https://github.com/janopontarollo/DXF2JSON
    https://github.com/wanttobeno/dwg2dxf
    https://github.com/apendua/dxf2svg
    https://github.com/haplokuon/netDxf
    https://github.com/mozman/ezdxf

  2. 采用OpenDwg Toolkit實現對DWG文件的解析。由於ObjectDBX應用程序只能在Windows平台上采用Visual C++來開發,而網絡應用開發環境要比AutoCAD單個軟件運行的環境要復雜的多。OpenDwg Toolkit簡稱ODT。

  3. GDAL中也部分支持dwg. https://gdal.org/drivers/vector/dwg.html

解析完dwg文件是很重要的第一步,那如何Web展示?
下面就一些常見的方法做下分析和總結:

Web展示方法

方法根據實現的方式不同,大致可以分為兩類:

有插件ActiveX方式

ActiveX控件是MicrosoftActiveX技術的一部分。是一種很早的技術。只能適合於windows平台。

實現原理大致是:

解析AutoCAD圖形繪制,並封裝成AcitveX控件,用於PC端和Web端顯示。比較典型的有夢想CAD控件

優點:性能好,功能全,能編輯二次開發
缺點:Web端需要安裝插件,只支持windows,而Chrome已不再支持ActiveX技術,同時無法利用html5做展示效果,效果一般

無插件Html5方式

HTML5是互聯網的下一代標准,是構建以及呈現互聯網內容的一種語言方式.被認為是互聯網的核心技術之一。

實現原理大致是:

解析AutoCAD圖形格式,然后轉成html5所能繪制的格式如svg,geojson,柵格瓦片,在前端渲染。

這塊如果從底層去實現,有很大的工作量。一般利用GIS生態圈的開源項目來搭建。

例如可以利用 GDAL把dwg或dxf格式導成shpGeoJson,后端利用 GeoServerMapServer發布成服務,前端利用LeafletOpenLayers去展示。

技術棧:
后端 GeoServerMapServer
前端 LeafletOpenLayers

但CAD與GIS在數據結構上存在較大的差異,CAD數據類型較為豐富,支持簡單點、線、面、多義線、橢圓、塊、文字等多種數據類型,而轉換到GIS中,只轉換為點、線、面、注記等類型,這使得CAD圖形數據不能很好的滿足GIS的要求,如:CAD中的Text數據類型,直接轉換后只轉換為GIS中的Point。通過這種轉換去繪制,會導致和原始CAD圖形繪制不太一樣, 同時CAD里面有線型、字體也會導致繪制上的差異性。

同時對於GIS而言,有個地理坐標系的概念,而一些圖紙,如戶型圖等就沒有地理坐標系的概念。

此方案優缺點如下:

優點:能利用GIS生態圈,容易實現;能利用html5做應用開發,開發簡單,效果好
缺點:存在着和真實CAD圖形繪制差異的問題;坐標系也是個問題

結論

上述兩種方案各有利弊,前者主要應用於圖形的編輯展示,后面應用於基於圖形的可視化開發展示。各有優缺點,貌似魚和熊掌不可兼得!

那有沒有一種方案,既能在Web端和真實CAD圖形繪制一樣,同時不能安裝插件,也能利用html5做應用開發呢?

其實也是可以的。不過技術難度比較大。
實現原理大致是在后端解析CAD的圖形數據不進行轉換直接渲染,同時保存圖形的幾何數據至空間數據庫用於以后查詢分析;前端不用安裝插件,加載渲染出的柵格和矢量數據,完美解決上述問題;
比較典型的有 唯傑地圖vjmap
具體原因細節可查看 https://vjmap.com/guide/service.html

效果如下:

image-20211013154837821

還有一個方案是利用AutoCAD的自有雲產品 Autodesk Forge,能在瀏覽器中渲染 3D 和 2D 模型數據,不過其數據得保存在AutoCAD公有雲上。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM