Cesium 视频贴图

一、创作灵感

        a、在cesium中视频或者图像在矩形或者圆形中显示

        b、在不使用entity模式下,使用Primitive进行视频或者图像渲染

        c、在使用Primitive的前提下,需要进行视频或者图像贴地

        d、不贴地,请跳转到我的另外一份日志纹理贴图

二、创建步骤

1、创建圆形或者矩形

        创建圆

        1、传入圆心的世界坐标和半径创建

        2、将圆心的坐标转换为经纬度坐标

        3、转换完成后,利用Turf的circle函数生产圆的点位

/**
 * 将世界坐标系转换为球面坐标系
 * @param {Cartesian3} position
 * @return {
  {alt: number, lon: number, lat: number}}
 */
export const Cartesian3ToWgs84 = (position) => {
  let cartographic = ellipsoid.cartesianToCartographic(position);
  let lon = CesiumMath.toDegrees(cartographic.longitude);
  let lat = CesiumMath.toDegrees(cartographic.latitude);
  let alt = cartographic.height;
  return {
    lon,
    lat,
    alt,
  };
};
/**
 * 根据半径和中心点,获取圆形
 * @param center
 * @param radius
 * @return {Cartesian3[]}
 */
export const getCircle = (center, radius) => {
  let center84 = Cartesian3ToWgs84(center);
  let centerP = [center84.lon, center84.lat];
  let circleInfo = circle(centerP, radius / 1000.0, options);
  return circleInfo.geometry.coordinates[0].map((item) => {
    return Cartesian3.fromDegrees(item[0], item[1]);
  });
};

        创建矩形

        1、模式1,将坐标转换为经纬度坐标,然后利用turf的envelope函数计算出5个顶点,转换顶点坐标为世界坐标

        2、模式2,通过三个点、利用向量来计算倾斜的矩形。

                a、首先计算出p1分别到p2、p3的向量坐标

                b、计算出p1p3在p1p2上的投影向量p1p3_p1p2

                c、计算

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生活真难

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值