cesium 图层构建的那些事 (二十三)

2022-08-06  本文已影响0人  haibalai

我们来构建视频图层

首先做定义

export interface PVideoEntity{

name?:string,

entity:any,

video:any,

}

视频构建图层

```javascript

import { PVideoEntity } from './PVideoEntity';

import { Tuple } from "./Tuple";

export class VideoEntity extends Tuple {

type = "VideoEntity";

public video: any;

private _url: string = "";

constructor(option: PVideoEntity) {

super();

this.setVideoDOM(option.video);

this.createEntity(option.entity);

}

set stRotation(value) {

this.cesiumObj.polygon.stRotation = Cesium.Math.toRadians(value)

}

get stRotation() {

return Cesium.Math.toDegrees(this.cesiumObj.polygon.stRotation);

}

set url(value) {

this._url = value;

this.video.src = value;

this.cesiumObj.polygon.material = this.video;

}

get url() {

return this._url;

}

set hierarchy(rings: any) {

this.cesiumObj.polygon.hierarchy = Cesium.Cartesian3.fromDegreesArray(rings.flat())

}

get hierarchy() {

let cartographic = Cesium.Ellipsoid.WGS84.cartesianToCartographic(this.cesiumObj.polygon.hierarchy);

const x = Cesium.Math.toDegrees(cartographic.longitude);

const y = Cesium.Math.toDegrees(cartographic.latitude);

const z = cartographic.height;

return { x, y, z };

}

public addToMap(map: any): this {

this.map = map;

map.entities.add(this.cesiumObj);

this.video.play();

return this;

}

public removeByMap(destroy: boolean = true): this {

if (this.cesiumObj) {

this.map!.entities.remove(this.cesiumObj);

this.video.pause();

if (destroy) {

this.video.src = "";

this.video.load();

this.video = null;

}

this.cesiumObj = null;

this.map = null;

}

return this;

}

 更多参考 https://xiaozhuanlan.com/topic/0518672394

上一篇下一篇

猜你喜欢

热点阅读