麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

Cesium API - Label 中文文档

本文介绍下Cesium中 Label API的详细使用说明。

Label API 调用方法

new Cesium.Label()
标签是可绘制在3D场景中与视口对齐的文本。这个构造函数不应直接使用,而是通过调用 LabelCollection#add 创建标签。
异常情况:
  • DeveloperError : translucencyByDistance.far 必须大于 translucencyByDistance.near。
  • DeveloperError : pixelOffsetScaleByDistance.far 必须大于 pixelOffsetScaleByDistance.near。
  • DeveloperError : distanceDisplayCondition.far 必须大于 distanceDisplayCondition.near。
演示Demo:
参考:

成员变量

staticCesium.Label.enableRightToLeftDetection : Boolean
确定是否运行将标签的文本与从右到左的语言匹配的算法。
Default Value: false
示例:
// 例1
// 在初始化之前设置标签的rightToLeft
Cesium.Label.enableRightToLeftDetection = true;
var myLabelEntity = viewer.entities.add({
  label: {
    id: 'my label',
    text: 'זה טקסט בעברית \n ועכשיו יורדים שורה',
  }
});
// 例2
var myLabelEntity = viewer.entities.add({
  label: {
    id: 'my label',
    text: 'English text'
  }
});
// 在初始化之后设置标签的rightToLeft
Cesium.Label.enableRightToLeftDetection = true;
myLabelEntity.text = 'טקסט חדש';
backgroundColor : Color
获取或者设置标签的背景色。
Default Value: new Color(0.165, 0.165, 0.165, 0.8)
backgroundPadding : Cartesian2
获取或设置此标签的背景填充(以像素为单位)。 x 值控制水平填充,而 y 值控制垂直填充。
Default Value: new Cartesian2(7, 5)
disableDepthTestDistance : Number
获取或者设置进行深度测试的距离。 当为0时,总是进行深度测试;当为Number.POSITIVE_INFINITY时,总是不进行深度测试。
distanceDisplayCondition : DistanceDisplayCondition
设置或者获取标签的显示距离。
Default Value: undefined
获取或设置在视点坐标中应用于此标签的3D笛卡尔偏移。 视点坐标是左手坐标系,其中 x 指向查看者的右侧, y 指向上方,并且 z 指向屏幕。视点坐标与世界坐标和模型坐标使用相同的比例,通常是米。



在下方,标签位于地球中心,但视点偏移使它始终无论观看者或地球的方向如何,它都会出现在地球的顶部。

l.eyeOffset = new Cartesian3(0.0, 8000000.0, 0.0);

Default Value: Cartesian3.ZERO
设置或者获取标签的填充颜色。
Default Value: Color.WHITE
参考:
font : String
获取或设置用于绘制此标签的字体。使用与CSS'font'属性相同的语法指定字体。
Default Value: '30px sans-serif'
参考:
获取或设置此广告牌的高度参考。
Default Value: HeightReference.NONE
获取或者设置标签的水平原点位置。(左侧,中心或者右侧)


Default Value: HorizontalOrigin.LEFT
示例:
//原点在上面右侧
l.horizontalOrigin = Cesium.HorizontalOrigin.RIGHT;
l.verticalOrigin = Cesium.VerticalOrigin.TOP;
获取或设置在拾取标签时返回的用户定义对象。
outlineColor : Color
获取或者设置标签的边线颜色。
Default Value: Color.BLACK
参考:
outlineWidth : Number
获取或者设置标签的边线宽度。
Default Value: 1.0
参考:
获取或设置屏幕空间中距此标签原点的像素偏移量。 屏幕空间原点是画布的左上角; x 从左到右增加, y 从上到下增加。

default
l.pixeloffset = new Cartesian2(25, 75);
标签的原点由黄点表示。
Default Value: Cartesian2.ZERO
pixelOffsetScaleByDistance : NearFarScalar
根据标签与摄像头的距离,获取或设置标签的近像素像素缩放比例和远像素像素缩放比例属性。 当相机距离在NearFarScalar#nearNearFarScalar#far时,标签的像素缩放比例在 NearFarScalar#nearValueNearFarScalar#farValue之间。 在这些范围之外,标签的像素缩放比例保持在最近的范围内。如果此属性未定义pixelOffsetScaleByDistance将被禁用。
示例:
// 例1
// 当相机距离标签1500米时,将标签的像素偏移比例设置为0.0;当相机距离为8.0e6米,在y方向将相机距离设置为10.0像素。
text.pixelOffset = new Cesium.Cartesian2(0.0, 1.0);
text.pixelOffsetScaleByDistance = new Cesium.NearFarScalar(1.5e2, 0.0, 8.0e6, 10.0);
// 例2
// 禁用像素偏移的距离
text.pixelOffsetScaleByDistance = undefined;
获取或设置此标签的笛卡尔位置。
scale : Number
获取或设置与标签的缩放系数。

应用大比例尺值可能会使标签像素化。要使文本变大而不产生像素化,请在调用Label#font时使用更大的字体。


From left to right in the above image, the scales are 0.5, 1.0, and 2.0.
Default Value: 1.0
scaleByDistance : NearFarScalar
获取或设置基于标签到摄像机的距离的广告牌的远近缩放属性。 当相机距离在NearFarScalar#nearNearFarScalar#far时,标签的缩放比例在 NearFarScalar#nearValueNearFarScalar#farValue之间。 在这些范围之外,标签的比例保持在最近的范围内。如果此属性未定义scaleByDistance将被禁用。
示例:
// 例1
// 当相机距离标签1500米时,将标签的scaleByDistance设置为1.5,当相机距离接近8.0e6米时,将标签的scaleByDistance设置为1.5。
label.scaleByDistance = new Cesium.NearFarScalar(1.5e2, 1.5, 8.0e6, 0.0);
// 例2
// 禁用按距离缩放
label.scaleByDistance = undefined;
show : Boolean
是否显示标签。 使用它来隐藏或显示标签,而不是删除它并将其重新添加到集合中。
Default Value: true
showBackground : Boolean
确定是否显示此标签后面的背景。
Default Value: false
获取或设置此标签的样式。
Default Value: LabelStyle.FILL
text : String
获取或者设置标签的文本。
totalScale : Number
获取标签的总比例,即标签的比例乘以计算出的相对大小与生成的字形大小进行比较。
Default Value: 1.0
translucencyByDistance : NearFarScalar
获取或设置基于标签与摄像机的距离的标签的近、远半透明属性。 当相机距离在NearFarScalar#nearNearFarScalar#far时,标签的半透明系数在 NearFarScalar#nearValueNearFarScalar#farValue之间。 在这些范围之外,布告牌的半透明系数保持在最近的范围内。如果此属性未定义translucencyByDistance将被禁用。
示例:
// 例1
// 当相机距离标签1500米时,将标签的半透明距离设置为1.0,当相机距离接近8.0e6米时,将标签的半透明距离设置为1.0。
text.translucencyByDistance = new Cesium.NearFarScalar(1.5e2, 1.0, 8.0e6, 0.0);
// 例2
// 通过距离禁用半透明
text.translucencyByDistance = undefined;
获取或者设置标签的垂直原点位置。(上面,中心或者下面)


Default Value: VerticalOrigin.BASELINE
示例:
// 原点在上面右侧
l.horizontalOrigin = Cesium.HorizontalOrigin.RIGHT;
l.verticalOrigin = Cesium.VerticalOrigin.TOP;

内置方法

computeScreenSpacePosition(scene, result)Cartesian2
考虑到视点和像素偏移,计算标签原点的屏幕空间位置。屏幕空间原点是画布的左上角; x 从从左到右, y 从上到下增加。
Name Type Description
scene Scene 场景(Scene对象)
result Cartesian2 optional 存储结果的对象。
返回值:
标签的屏幕空间位置。
异常情况:
示例:
console.log(l.computeScreenSpacePosition(scene).toString());
参考:
equals(other)Boolean
确定这个标签是否等于另一个标签。如果标签的所有属性都相等,那么它们就是相等的。不同集合中的标签可以是相同的。
Name Type Description
other Label 用来比较是否相等的标签。
返回值:
如果相等,返回true。
isDestroyed()Boolean
如果该对象没被销毁,返回false。

如果该对象已经被销毁,使用isDestroyed 会触发 DeveloperError 异常。
返回值:
false

其他API

Cesium中文API文档手册(v1.63.1版本)参考:《Cesium中文API文档手册(v1.63.1版本)

相关阅读

麻辣GIS-Sailor

作者:

GIS爱好者,学GIS,更爱玩GIS。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读
公众号关注
知识星球
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
关注麻辣GIS知识星球
私享圈子

留言板(小编看到第一时间回复)