首页 / 浏览问题 / 三维GIS / 问题详情
webgl 自定义弹框与系统自带弹框冲突
1EXP 2018年05月04日
9D中三维WebGL中使用了viewer.customInfobox = infoboxContainer; 后路线飞行无法显示 viewer.selectedEntity = entity;   请问如何能在设置了customInfobox后,通过设置viewer.customInfobox=null来显示viewer.selectedEntity = entity这种信息框?

2 个回答

您好,初始化的时候隐藏掉infobox即可。

 var viewer = new Cesium.Viewer('cesiumContainer',{
            imageryProvider: new Cesium.BingMapsImageryProvider({
                url : 'https://dev.virtualearth.net',
                mapStyle : Cesium.BingMapsStyle.AERIAL
            }),
            infoBox:false
        });
5,985EXP 2018年05月04日
不行哦,可能是我问题描述有问题,我的问题是在点击显示自定义的信息窗后,去路线漫游,然后显示到达站点信息,你说的这个好像不能解决吧。
还是没明白你的意思

webgl 自定义弹框与系统自带弹框冲突,你标题中的冲突是什么意思呢。

就是只要加了viewer.customInfobox = infoboxContainer;这一句,后面的飞行就无法显示到达站点的信息(也就是显示不了系统自带的infoBox)。

这是自定义信息窗:

这是系统自带的信息窗:

这个没办法解决哈,用了customInfobox 后,infoBox自动失效。
这个不能动态切回来么?设置 viewer.customInfobox=null,也没显示不了,这个不应该啊
或者我就用自定义customInfobox,那飞行模式下,如何让customInfobox显示且能指向当前视图下的具体某个Entity呢?
可以通过ID获取到指定的entity,viewer.entities.getById(id) .

顺便提一句,也可以直接用站点的某些信息,像范例那样:

  flyManager.stopArrived.addEventListener(function(routeStop){
                var stopName = routeStop.stopName;
                var entity = new Cesium.Entity({
                    description : '到达站点 : ' + stopName,
                    name : stopName
                });
你把系统默认的弹窗关掉,然后自己重新定义弹出即可
HX
71EXP 2018年08月21日
...