Cesium 添加图片无法正常显示,显示为白色
问题
使用Cesium在地球上添加图片,打开控制台(勾选disable cache)时图片正常显示,关闭控制台则显示为白色。
(背景:使用 Cesium在球上添加图片(四个坐标点) 的方法添加了图片)
关闭disable cache选项后,发现控制台报错跨域(禁用缓存时没有该报错):
解决
引用静态地址
放在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;