Cesium 添加图片无法正常显示,显示为白色

问题

使用Cesium在地球上添加图片,打开控制台(勾选disable cache)时图片正常显示,关闭控制台则显示为白色。
(背景:使用 Cesium在球上添加图片(四个坐标点) 的方法添加了图片)
关闭disable cache选项后,发现控制台报错跨域(禁用缓存时没有该报错):
image

解决

引用静态地址

放在assetes中的静态图片可以参照这个办法:(Vue)使用cesium添加图片无法正常显示(白屏)

引用动态地址

我这边是接口返回的动态地址,使用new Image()对象,在load()后再加载Cesium方法。←方法可以一试,但我遇到的问题原因不在这里,是古怪的跨域问题,后端用nginx代理再做了什么修改搞定的。

let image = new Image();
image.onload = function() {
    let newEntity = viewer.entities.add({
        id: id,
        polygon: {
            hierarchy: Cesium.Cartesian3.fromDegreesArray([
                Number(data.dataLowerLeftLong),
                Number(data.dataLowerLeftLat),
                Number(data.dataLowerRightLong),
                Number(data.dataLowerRightLat),
                Number(data.dataUpperRightLong),
                Number(data.dataUpperRightLat),
                Number(data.dataUpperLeftLong),
                Number(data.dataUpperLeftLat),
                Number(data.dataLowerLeftLong),
                Number(data.dataLowerLeftLat)
            ]),
            material: new Cesium.ImageMaterialProperty({image: image})
        }
    });
    viewer.flyTo(newEntity);
};
image.src = data.browseImage;
posted @ 2023-01-16 15:14  宇宙野牛  阅读(1030)  评论(0编辑  收藏  举报