一、创作灵感
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、计算