(3)将BIM模型配置场景,并生成场景缓存,选择OSGB格式缓存。
(4)利用向量计算得到代表工程进度的矢量面。以SuperMap iClient 3D for Plugin为例,核心计算代码如下:
```
//投影转换,经纬度转投影
var point1UTM=pointConverterUTM(point1);
var point2UTM=pointConverterUTM(point2);
var point3UTM=pointConverterUTM(point3);
var point4UTM=pointConverterUTM(point4);
//根据进度参数L计算有向线段上长度等于L的坐标点。L14为点1和点4构成的有向线段长度,L23为点2和点3构成的有向线段的长度。
var point14D=new SuperMap.Web.Core.Point3D(((point4UTM.x-point1UTM.x)/L14*L+point1UTM.x),((point4UTM.y-point1UTM.y)/L14*L+point1UTM.y),0);
var point23D=new SuperMap.Web.Core.Point3D(((point3UTM.x-point2UTM.x)/L23*L+point2UTM.x),((point3UTM.y-point2UTM.y)/L23*L+point2UTM.y),0);
//投影转换,投影转经纬度
var controlPoint1=pointConverterWGS(point14D);
var controlPoint2=pointConverterWGS(point23D);
//构造代表工程进度的矢量面
var geoRegion = new SuperMap.Web.Core.GeoRegion3D();
var Geopoint3Ds = new SuperMap.Web.Core.Point3Ds();
Geopoint3Ds.add(point1);
Geopoint3Ds.add(point2);
Geopoint3Ds.add(controlPoint2);
Geopoint3Ds.add(controlPoint1);
geoRegion.addPart(Geopoint3Ds);
```
(5)将计算结果贴到模型表面,效果如图7和图8。