cesium实现区域贴图及加载多个gif动图

1、cesium加载多个gif动图

Cesium的Billboard支持单帧纹理贴图,如果能够将gif动图进行解析,获得时间序列对应的每帧图片,然后按照时间序列动态更新Billboard的纹理,即可实现动图纹理效果。为此也找到了相对于好一点的第三方库libgif能够将gif转化为一帧帧图像,正好能够满足我们的需求!!!

javascript 复制代码
let gifImgList = [];
  data?.forEach((tag) => {
    let url = huangren;
    let gifDiv = document.createElement("div");
    let gifImg = document.createElement("img");

    // gif库需要img标签配置下面两个属性
    gifImg.setAttribute("rel:animated_src", url);
    gifImg.setAttribute("rel:auto_play", "1"); // 设置自动播放属性
    gifDiv.appendChild(gifImg);
    let superGif = new SuperGif({
      gif: gifImg,
    });
    gifImgList.push(superGif);
  });

  data?.forEach((tag, ind) => {
    gifImgList[ind].load(function () {
      onViewer.entities.add({
        _content: tag,
        position: new Cesium.Cartesian3.fromDegrees(
          Number(tag.longitude),
          Number(tag.latitude),
          100
        ),
        billboard: {
          //图标
          image: new Cesium.CallbackProperty(() => {
            // 转成base64,直接加canvas理论上是可以的,这里设置有问题
            return gifImgList[ind].get_canvas().toDataURL();
          }, false),
          scale: 0.25,
          // width: 36,
          // height: 36,
          //sizeInMeters: true,//以米为单位,近大远小
          //pixelOffset: new Cesium.Cartesian2(0,20), //设置左右、上下移动
          //rotation:1.58, //设置旋转角度
          //scaleByDistance: new Cesium.NearFarScalar(20000,1,8000000, 0.1), //设置近大远小
          //pixelOffsetScaleByDistance: new Cesium.NearFarScalar(20000,10,8000000,100), //设置偏移量
          // translucencyByDistance:new Cesium.NearFarScalar(20000,1,8000000,0), //设置透明
          // distanceDisplayCondition: new Cesium.DistanceDisplayCondition(
          //   20000,
          //   8000000
          // ), //限制区域显示与隐藏
          //水平方向
          heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
          // 垂直方向
          verticalOrigin: Cesium.VerticalOrigin.BASELINE,
        },
      });
    });
  });

2、cesium加载geoJSON并贴图

javascript 复制代码
const dataSource = new Cesium.GeoJsonDataSource();
  dataSource
    .load("https://geo.datav.aliyun.com/areas_v3/bound/110000.json", {
      clampToGround: true,
    })
    .then(() => {
      onViewer.dataSources.add(dataSource);
      const entities = dataSource.entities.values;
      for (let i = 0; i < entities.length; i++) {
        const entity = entities[i];
        // 修改 entity 样式
        entity.polygon.material = new Cesium.ImageMaterialProperty({
          image: beijin,
        });
        entity.polygon.outline = false;
        // 添加 entity 的 polyline
        entity.polyline = {
          positions: entity.polygon.hierarchy._value.positions,
          width: 2,
          material: Cesium.Color.fromCssColorString("#ffff"),
          clampToGround: true,
        };
        // 获取一个 entity 的中心位置
        const center = Cesium.BoundingSphere.fromPoints(
          entity.polygon.hierarchy._value.positions
        ).center;
        // 设置中心位置
        entity.position = center;
        // 添加 text
        entity.label = {
          text: entity.properties.name,
          color: Cesium.Color.fromCssColorString("#fff"),
          font: "normal 32px MicroSoft YaHei",
          showBackground: true,
          scale: 0.5,
          horizontalOrigin: Cesium.HorizontalOrigin.LEFT_CLICK,
          verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
          disableDepthTestDistance: 10000.0,
        };
      }

      // if (zoomto) {
      onViewer.zoomTo(dataSource);
      // }
    });

  return dataSource;
相关推荐
魔士于安5 小时前
Unity完整小球迷宫项目
前端·unity·游戏引擎·贴图·模型
魔士于安1 天前
Unity 超市总动员 超市收银台 超市货架 超市购物手推车 超市常见商品
游戏·unity·游戏引擎·贴图·模型
魔士于安2 天前
Unity windows 同步 异步 打开文件文件夹工具
游戏·unity·游戏引擎·贴图·模型
魔士于安2 天前
unity lowpoly 风格 城市 建筑 道路 交通标志
游戏·unity·游戏引擎·贴图·模型
魔士于安3 天前
Unity UI图片 复活节UI,卡通风格
游戏·ui·unity·游戏引擎·材质·贴图
魔士于安3 天前
unity 卡通风整套资源 小鸟N套带动作+一套卡通风村落 和 相关道具+落叶粒子效果 buildin
游戏·unity·游戏引擎·贴图·模型
CG_MAGIC3 天前
幕后花絮:用Blender打造自己的建筑
3d·blender·贴图·uv·建模教程·渲云渲染
魔士于安4 天前
Unity类似博物馆场景
前端·unity·游戏引擎·贴图·模型
摄影图8 天前
智慧城市数字孪生素材 多元风格适配各类创作需求
信息可视化·aigc·智慧城市·贴图·插画
mxwin9 天前
Unity URP 法线贴图:世界空间 vs 切线空间 深度解析两种法线贴图格式在实时渲染中的核心差异、适用场景与性能权衡
unity·游戏引擎·贴图