BIM模型制作一般都是根据CAD数据来的,所以,是没有坐标的,只有毫米为单位的图纸,建好BIM模型以后,需要将此模型放到实际地图上,这个坐标要求是经纬度的(cesium中加载经纬度坐标点),这就涉及到模型定位的问题:BIM模型的坐标原点并非一定是模型的中心点,BIM模型转成3Dtiles后,定位所需要的是坐标原点的经纬度+模型的xyz旋转角度,由此设置3Dtiles的精确位置。这其中会涉及到CAD-配准到某投影坐标系(3857),然后根据底图配准(底图可以是3857,如果是4326,需要将CAD转成4326坐标系,这肯定会导致矢量CAD变形,但模型是不可能变形的),然后在配准后的CAD地图中找到模型原点的经纬度和高度(米)坐标,但是还需要知道旋转角度(CAD图纸不一定是正南正北的,模型可能就是斜的),这时候就需要精确知道模型在xyz轴分别旋转了多少角度?这个角度没有度量值(一般图纸都不会提供这个),所以只能手工调整模型,通过观察的方式得到这个旋转角度(如果,CAD配准的时候能够得到这个旋转角度是最好的),然后需要将3Dtiles放到Cesium里,参照之前得CAD图,不断调整角度,得到这个角度得精确值(手工观察得到得肯定由误差)。
总结:这个过程肯定有误差
- CAD图校准过程,肯定有误差,位置误差+形变误差
- 手工调整3Dtiles,观察得到得旋转角度有误差
- 模型校准不会有形变,无法和已经发生形变得CAD图精确配准。
如果想做室内导航,必须先要采集室内路径,这个都是通过二维矢量图制作得,然后在3D模型里演示得时候,就必须有高的精度,但如果遇到比较狭小得空间,比如楼梯位置,如果精度不高,会很难显示得正常好看。
大家有没有好的解决办法?