我需要替换几年前构建的Flash查看器,以显示来自AutoCAD的交互式2D平面图。
当前,已读取AutoCAD文件并将其转换为XML文件,该文件包含表示平面图对象(房间,墙壁,资产等)的多边形的X和Y坐标。图形中的对象是可单击的,可以设置为可见或不取决于主题观点。
有时这些平面图可能相对较大,有很多要点。
我已经尝试使用像LeafletJS这样的Web地图控件,因为它已经具有PAN和ZOOM功能,我可以插入可点击的标记,并管理图层,以便可以通过主题视图显示或隐藏对象。我已将地图CRS设置为指标,并将数据加载为GeoJSON。不幸的是,在实际的中型平面图中,它太慢了,有时变得无响应。
下面的示例由18630线对象组成,平移时反应不是很大。
因此,现在我想使用SVG或CANVAS在浏览器中直接绘制平面图。我更喜欢使用CANVAS,因为它比SVG快得多,如果支持的话,也可以使用WebGL,但是我必须依靠一个库才能拥有事件处理程序和像DOM这样的简单对象管理。
所以,现在我要问的是,即使我需要映射2D对象并且它是选择正确的技术,像threeJS这样的库是否也可以轻松完成这样的任务。特别是,可以使用threeJS:
如果有人知道更好的库或技术可以完成此任务,那么我完全可以提出任何建议。
(请注意,我只需要2D工程图,因为已经使用Revit的其他技术构建了3D)
使用webgl(例如,通过three.js),您可以在启用GPU的桌面浏览器上以60fps的速度绘制数百万条简单的线图元。
这是使用three.js拼凑而成的超过一百万行原语的人为示例:
https://codesandbox.io/s/0pp3x92n4p
和这里:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句