一、創作靈感
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、計算