BimVizFAQ

FAQ10 获取三维坐标点出现偏差

问题:我想在获取三维坐标点后做一些提示性的操作,例如:获取包围盒的中心点后添加Marker、获取构件的三维坐标点转换成二维坐标点后添加一个提示框等。

解决办法:

获取到三维坐标点后,增加一句代码  point.sub(bimEngine.CenterPosition),point是三维坐标点。

参考代码如下:

 //场景概要信息加载完成后之后
bimEngine.addListener(BIMVIZ.EVENT.ProjectOverviewLoaded, function(){
     bimEngine.addListener(BIMVIZ.EVENT.OnPickElement,function(evt){
          var point3d = evt.args.point;
          point3d.sub(bimEngine.CenterPosition);
          var point2d=bimEngine.toScreenPosition(point3d);
          $("#viewport").find(".dialog").remove();
          var dialog=$("<div class='dialog' style='width:200px;padding:10px;background-color: rgba(0,0,0,0.5);color:#fff;position:absolute;left: "+point2d.x+"px;top:"+point2d.y+"px;z-index: 100;'>选中的3D坐标点是\nx:"+point3d.x+"   y:"+point3d.y+" z:"+point3d.z+"</div>");
          $("#viewport").append(dialog);
     });
});

Leave A Comment

*
*