|
|
|
@ -1,4 +1,20 @@
|
|
|
|
|
import {Cartesian3, Entity, Color, Viewer, Cartesian2, HorizontalOrigin, VerticalOrigin, HeightReference} from "cesium";
|
|
|
|
|
/*
|
|
|
|
|
* @Author: cbwu 504-wuchengbo@htsdfp.com
|
|
|
|
|
* @Date: 2024-04-16 18:59:56
|
|
|
|
|
* @LastEditors: cbwu
|
|
|
|
|
* @LastEditTime: 2024-04-22 09:11:33
|
|
|
|
|
* @Description:
|
|
|
|
|
*/
|
|
|
|
|
import {
|
|
|
|
|
Cartesian3,
|
|
|
|
|
Entity,
|
|
|
|
|
Color,
|
|
|
|
|
Viewer,
|
|
|
|
|
Cartesian2,
|
|
|
|
|
HorizontalOrigin,
|
|
|
|
|
VerticalOrigin,
|
|
|
|
|
HeightReference,
|
|
|
|
|
} from 'cesium'
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
文件描述:文本标注
|
|
|
|
@ -6,59 +22,64 @@ import {Cartesian3, Entity, Color, Viewer, Cartesian2, HorizontalOrigin, Vertica
|
|
|
|
|
创建人:Zhaipeixiu
|
|
|
|
|
*/
|
|
|
|
|
export type textLabelOptions = {
|
|
|
|
|
showBackground?: boolean, //显示背景
|
|
|
|
|
backgroundColor?: Color, //背景色
|
|
|
|
|
backgroundPadding?: any, //padding值
|
|
|
|
|
fillColor: Color,
|
|
|
|
|
horizontalOrigin?: any, //水平对齐方式
|
|
|
|
|
verticalOrigin?: any, //竖直对齐方式
|
|
|
|
|
outlineColor?: any,
|
|
|
|
|
outlineWidth?: any
|
|
|
|
|
showBackground?: boolean //显示背景
|
|
|
|
|
backgroundColor?: Color //背景色
|
|
|
|
|
backgroundPadding?: any //padding值
|
|
|
|
|
fillColor: Color
|
|
|
|
|
horizontalOrigin?: any //水平对齐方式
|
|
|
|
|
verticalOrigin?: any //竖直对齐方式
|
|
|
|
|
outlineColor?: any
|
|
|
|
|
outlineWidth?: any
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export class TextLabel{
|
|
|
|
|
_viewer: Viewer|undefined = undefined
|
|
|
|
|
_defaultStyle: textLabelOptions = {
|
|
|
|
|
showBackground: true, //显示背景
|
|
|
|
|
backgroundColor: Color.BLACK, //背景色
|
|
|
|
|
backgroundPadding: new Cartesian2(10, 10), //padding值
|
|
|
|
|
fillColor: Color.WHITE,
|
|
|
|
|
outlineColor: Color.WHITESMOKE,
|
|
|
|
|
outlineWidth: 1.0,
|
|
|
|
|
horizontalOrigin: HorizontalOrigin.CENTER,//对齐方式
|
|
|
|
|
verticalOrigin: VerticalOrigin.CENTER,
|
|
|
|
|
}
|
|
|
|
|
_cesiumLabel: Entity|undefined = undefined
|
|
|
|
|
export class TextLabel {
|
|
|
|
|
_viewer: Viewer | undefined = undefined
|
|
|
|
|
_defaultStyle: textLabelOptions = {
|
|
|
|
|
showBackground: true, //显示背景
|
|
|
|
|
backgroundColor: Color.BLACK, //背景色
|
|
|
|
|
backgroundPadding: new Cartesian2(10, 10), //padding值
|
|
|
|
|
fillColor: Color.WHITE,
|
|
|
|
|
outlineColor: Color.WHITESMOKE,
|
|
|
|
|
outlineWidth: 1.0,
|
|
|
|
|
horizontalOrigin: HorizontalOrigin.CENTER, //对齐方式
|
|
|
|
|
verticalOrigin: VerticalOrigin.CENTER,
|
|
|
|
|
}
|
|
|
|
|
_cesiumLabel: Entity | undefined = undefined
|
|
|
|
|
|
|
|
|
|
// 构造函数,新建label并显示
|
|
|
|
|
constructor(viewer: Viewer, position: Cartesian3, text: string, options?: textLabelOptions) {
|
|
|
|
|
this._viewer = viewer
|
|
|
|
|
this._defaultStyle = {...this._defaultStyle, ...options}
|
|
|
|
|
// 构造函数,新建label并显示
|
|
|
|
|
constructor(
|
|
|
|
|
viewer: Viewer,
|
|
|
|
|
position: Cartesian3,
|
|
|
|
|
text: string,
|
|
|
|
|
options?: textLabelOptions,
|
|
|
|
|
) {
|
|
|
|
|
this._viewer = viewer
|
|
|
|
|
this._defaultStyle = { ...this._defaultStyle, ...options }
|
|
|
|
|
|
|
|
|
|
this._cesiumLabel = new Entity({
|
|
|
|
|
position: position,
|
|
|
|
|
name: 'default',
|
|
|
|
|
label: {
|
|
|
|
|
text: text,
|
|
|
|
|
scale: .6,
|
|
|
|
|
pixelOffset: new Cartesian2(20, -20),
|
|
|
|
|
showBackground: this._defaultStyle.showBackground, //显示背景
|
|
|
|
|
backgroundColor: this._defaultStyle.backgroundColor, //背景色
|
|
|
|
|
backgroundPadding: this._defaultStyle.backgroundPadding, //padding值
|
|
|
|
|
fillColor: this._defaultStyle.fillColor,
|
|
|
|
|
outlineColor: this._defaultStyle.outlineColor,
|
|
|
|
|
outlineWidth: this._defaultStyle.outlineWidth,
|
|
|
|
|
horizontalOrigin: this._defaultStyle.horizontalOrigin, //对齐方式
|
|
|
|
|
verticalOrigin: this._defaultStyle.verticalOrigin,
|
|
|
|
|
heightReference: HeightReference.CLAMP_TO_GROUND
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
this._viewer.entities.add(this._cesiumLabel)
|
|
|
|
|
}
|
|
|
|
|
this._cesiumLabel = new Entity({
|
|
|
|
|
position: position,
|
|
|
|
|
name: 'default',
|
|
|
|
|
label: {
|
|
|
|
|
text: text,
|
|
|
|
|
scale: 0.6,
|
|
|
|
|
pixelOffset: new Cartesian2(20, -20),
|
|
|
|
|
showBackground: this._defaultStyle.showBackground, //显示背景
|
|
|
|
|
backgroundColor: this._defaultStyle.backgroundColor, //背景色
|
|
|
|
|
backgroundPadding: this._defaultStyle.backgroundPadding, //padding值
|
|
|
|
|
fillColor: this._defaultStyle.fillColor,
|
|
|
|
|
outlineColor: this._defaultStyle.outlineColor,
|
|
|
|
|
outlineWidth: this._defaultStyle.outlineWidth,
|
|
|
|
|
horizontalOrigin: this._defaultStyle.horizontalOrigin, //对齐方式
|
|
|
|
|
verticalOrigin: this._defaultStyle.verticalOrigin,
|
|
|
|
|
heightReference: HeightReference.CLAMP_TO_GROUND,
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
this._viewer.entities.add(this._cesiumLabel)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//移除label
|
|
|
|
|
public remove(){
|
|
|
|
|
if(this._cesiumLabel !== undefined && this._viewer!==null)
|
|
|
|
|
this._viewer.entities.remove(this._cesiumLabel)
|
|
|
|
|
}
|
|
|
|
|
//移除label
|
|
|
|
|
public remove() {
|
|
|
|
|
if (this._cesiumLabel !== undefined && this._viewer !== null)
|
|
|
|
|
this._viewer.entities.remove(this._cesiumLabel)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|