问:参照倾斜摄影属性查询,写了一个弹窗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实现