2018 SuperMap WebGL三维常见问题解答集锦(三)

问:参照倾斜摄影属性查询,写了一个弹窗div,绑定viewer.customInfobox,使用pickEvent事件实现点击弹窗事件,点击图层时可以弹窗,点击添加的实体弹窗不出来
答:customInfobox是cesium封装的控件,只有在点击添加的s3m图层后会出现弹窗,在点击实体后不会出现弹窗事件,点击实体弹窗需要写一个自己写的div,不绑定viewer.customInfobox

问:打开webgl包的视频投放示例,使用谷歌浏览器打开后,视频没有播放
答:在谷歌浏览器地址栏中输入:chrome://flags,搜索“Autoplay policy”,默认为“Default”,修改为 “No user gesture is required” 就可以

问:IE中不支持深度拾取,怎么实现点击对象弹出属性框的方法
答:由于IE不支持深度查询,因此使用cesium自带的点击选中的方法便不合适,获取不到图元对象.解决方法是自己重新写一个点击事件以及弹出框,点击事件激发后,通过s3mtileslayer.getselected()获取点击对象的SMID等信息,获取的信息显示在自己写的弹出框中

问:设置图层的某个模型的的隐显,其他的图元隐显不变
答:设置图层中的摸个模型的隐显需要先获取到图元的的smid,使用setOnlyObjsVisible(ids, isVisible)的方法设置对应的id的模型隐显

问:怎么设置某个图元的透明度
答:先获取到图元的ID,new Cesium.Color可以规定模型的颜色和透明度,再使用S3MTilesLayer.setObjsColor(ids, color)设置对应ID的模型的透明度

问:怎么点击图层中的某个模型,从而定位到这个模型飞过去
答:点击图层的模型后,用S3MTilesLayer.getSelection();获取到模型的id,从而获取模型的经纬和高程值,使用viewer.entities.add构造实体对象,用viewer.flyto构造实体对象

问:实时视频流示例中socket地址是怎么获取的
答:socket地址通过网上寻找web的代理服务器分配获得,一般需要付费

问:webgl中如何去掉实体选中的弹框?
答初始化的时候infobox设置为false

问:已知两个点的坐标,如何计算距离?
答:“用Cesium.Cartesian3.distance()接口即可。”

问:粒子范例里想实现鼠标左键左右移动场景
答:代码锁定实体对象,只能围绕这个实体对象进行旋转,不能平移。去掉锁定实体对象的代码,就可以平移。

问:entities.add()添加模型,url能不能添加S3m的模型?
答:用这个不能添加,只能用S3MInstanceCollection.add()添加。

问:WebGL能否实现碰撞检测?
答:可以,scene.screenSpaceCameraController.enableCollisionDetection=true;

问:粒子范例里能否把小车去掉?鼠标左键是旋转鼠标中键能否旋转?
答:"可以把小车去掉,有个entity添加实体的代码,里面把model去掉就可以了。将相机方位类的旋转改为鼠标中键控制即可scene.screenSpaceCameraController.rotateEventTypes = Cesium.CameraEventType.MIDDLE_DRAG

问:webgl的s3m图层中如何获取选中对象的ID?
答:通过scene.layers.getSelectedLayer().getSelection()获取

问:s3m图层如何判断是否有选中对象?
答:通过scene.layers.getSelectedLayer(),如果返回值不为undefined,则有选中对象

问:webgl的s3m图层中如何设置多选?
答:通过设置layer.multiChoose=true实现

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值