Sign

标牌 继承自PlotGeoEffectBase

相关说明如下:

1 标牌支持通过参数、DOM元素(html模板或DOM字符串)、图片(路径或图片资源)三种模式构建,见SignParmMode类。

1.1 参数构建标牌的模式设计逻辑是:认为任何标牌都是由标题区域、内容区域、托三部分构成,用户可通过设置这三部分的相关参数构建对象。

1.1.1 参数构建标牌中,标题区域包含【标题文字(title)、标题文字样式(titleStyle)、标题框样式(TitleFrameStyle)】组成。

1.1.2 参数构建标牌中,内容区域包含【多行文字(texts)、多行文字样式(textsStyle)、内容框样式(contentFrameStyle)】组成。

1.1.3 参数构建标牌中,托的样式可通过接口设置相关样式。

1.2 参数构建标牌的模式,通常是通过标牌枚举(SignEffectType)先创建出标牌对象,再通过相关接口再获取标牌各个部分的参数进行修改。

2 DOM元素构建标牌的模式中,支持传入用户传入DOM字符串或者对应的HTML模板。

2.1 mServer中提供了相关HTML模板,查看路径:mServer包中\webapps\iserver\mgis\situationSimulation\Sign文件夹下。

3 标牌支持通过Billboard对象(billboard)、DOM元素(DOM)、三维对象(Solid)三种模式渲染。

3.1 Billboard渲染,实时朝向屏幕,优点:性能高,资源消耗少,基本不影响场景渲染帧率,常用于添加大批量标牌时;缺点:标牌上的数据不支持实时更新, 渲染效果没有DOM好。

3.2 DOM渲染,实时朝向屏幕,优点:渲染效果好,标牌上的数据支持实时更新;缺点:资源消耗大,添加数量过多时,会影响场景渲染帧率。另外,此中模式下DOM对象可能会遮挡球操作。

3.3 Solid渲染,是将标牌对象转化为三维模型对象,故不实时朝向屏幕;在不绑定标绘对象时,满足右手坐标系,Y轴正方向默认朝北极,常用于绑定标绘(模型模式)的对象。

4 立体标牌不支持标牌避让。

new SuperMap3D.Sign(options)

Name Type Description
options Object optional Object with the following properties:
Name Type Default Description
isUsePlotVisible Boolean true optional 是否受标号对象的显隐影响
visible Boolean true optional 是否显示
geoGraphicObject GeoGraphicObject optional 设置绑定的标号
position MPoint3D optional 设置特效位置,未设置则先从标号中获取,如果未绑定标号,则需要通过updateEffect(options)接口,更新位置点。
texts Array.<String> ["This is a sign"] optional 标牌文本信息数组
title String "Title" optional 标牌标题信息
signParmMode SignParmMode SignParmMode.Parameter optional 标牌创建模式参数创建 SignParmMode.Parameter(可设置texts、title),自定义创建 SignParmMode.Custom(可设置texts,templateUrl或dom),Image创建 SignParmMode.Image(可设置image)
signEffectType SignEffectType SignEffectType.Sign1 optional 参数化标牌默认样式类型
showIndecatorLine boolean true optional 标牌是否显示牵引线
pntOffset3D MPoint3D new SuperMap3D.MPoint3D() optional 标绘模型标牌偏移量
pntOffset2D MPoint3D new SuperMap3D.MPoint3D() optional 标绘标号或标绘图片标牌偏移量
dom String "" optional 自定义标牌div
signRenderMode SignRenderMode SignRenderMode.Billboard optional 标牌渲染模式
templateUrl String "" optional 用户自定义标牌模板资源路径(signParmMode == SignParmMode.Custom 生效)
signImage String "" optional 设置标牌图片的Base64资源字符串或图片路径(signParmMode == SignParmMode.Image 生效)
billboardScale Number 1 optional 二维Billboard标牌的缩放。当 signRenderMode == SignRenderMode.Billboard 时生效
indecatorLineLength Number 8 optional 设置牵引线长度(单位:mm)
indecatorLineRotation Number 90 optional 设置牵引线旋转(以屏幕X轴正向为0,逆时针方向为正的角度,单位:度)
solidRotation MPoint3D new MPoint3D(0, 0, 0) optional 设置三维标牌的缩放。当 signRenderMode == SignRenderMode.Solid 时生效
solidScale Number 1 optional 设置三维标牌的缩放。当 signRenderMode == SignRenderMode.Solid 时生效
disableDepthTestDistance boolean false optional 设置billboard标牌是否开启深度检测。当 signRenderMode == SignRenderMode.Billboard 时生效

Members

billboardScale : Number

设置二维Billboard标牌的缩放。当 signRenderMode == SignRenderMode.Billboard 时生效
Default Value: 1

disableDepthTestDistance : Number

设置billboard标牌是否开启深度检测。当 signRenderMode == SignRenderMode.Billboard 时生效
Default Value: false

dom : String

标牌dom字符串,当signParmMode == Custom时生效

id : String

特效id

indecatorLineLength : Number

设置标牌牵引线长度(单位: mm)
Default Value: 8

indecatorLineRotation : Number

设置/获取牵引线旋转角度(以屏幕X轴正向为0,逆时针方向为正的角度,单位:度)
Default Value: 90

offset2D : MPoint3D

二维标牌偏移量(单位:像素) 当 signRenderMode == SignRenderMode.Billboard 或 signRenderMode == SignRenderMode.DOM 时生效
Default Value: MPoint3D(0,0,0)

offset3D : MPoint3D

三维标牌偏移量(相对模型【标绘】控制点的百分比) 当 signRenderMode == SignRenderMode.Solid 时生效
Default Value: MPoint3D(0,0,0)

readyPromise : Promise

标牌资源准备完成

showIndecatorLine : Boolean

是否显示牵引线
Default Value: true

signEffectType : SignEffectType

标牌类型,当signParmMode == SignParmMode.Parameter时生效
Default Value: SignEffectType.Sign1

signParmMode : SignParmMode

标牌创建模式
Default Value: SignParmMode.Parameter

signRenderMode : SignRenderMode

设置标牌的渲染模式
Default Value: SignRenderMode.Billboard

solidRotation : MPoint3D

设置三维标牌的旋转。当 signRenderMode == SignRenderMode.Solid 时生效
Default Value: MPoint3D(0,0,0)

solidScale : Number

设置三维标牌的缩放。当 signRenderMode == SignRenderMode.Solid 时生效
Default Value: 1

templateUrl : String

标牌模板资源路径,当signParmMode == Custom 时生效

Methods

addClickedEvent(callback)

添加鼠标左键单击事件
Name Type Description
callback Sign~callback 回调事件, 参数{ object: 标牌对象, e: { x: 屏幕x坐标, y: 屏幕y坐标 } }

addDoubleClickedEvent(callback)

添加鼠标左键双击事件
Name Type Description
callback Sign~callback 回调事件,参数{ object: 标牌对象, e: { x: 屏幕x坐标, y: 屏幕y坐标 } }

addRightClickedEvent(callback)

添加鼠标右键单击事件
Name Type Description
callback Sign~callback 回调事件,参数{ object: 标牌对象, e: { x: 屏幕x坐标, y: 屏幕y坐标 } }

destroy()

释放资源

fromJSON(jsonObj)

Json对象转特效对象, 注意:json对象中没有包含scene和geoGraphicObject对象,需要调用对应接口设置(未完成)
Name Type Description
jsonObj Object json对象

getContentFrameStyle()Object

获取标牌内容框样式
Returns:
标牌内容框样式(object详见setContentFrameStyle()接口)

getIndecatorLineStyle()Object

获取标牌牵引线样式
Returns:
牵引线样式(setIndecatorLineStyle()接口)

getSignImage()

获取标牌图片的Base64资源字符串或图片路径

getTexts()Array.<String>

获取标牌文本数组
Returns:
文本数组

getTextStyles()Array

获取标牌文本样式数组
Returns:
文本样式数组(object对象见:setTextStyles()接口)

getTitle()String

获取标牌标题
Returns:
标牌标题

getTitleFrameStyle()Object

获取标牌标题框样式
Returns:
标牌标题框样式(object详见setTitleFrameStyle()接口)

getTitleStyle()Object

获取标牌标题样式
Returns:
标牌标题样式(object详见setTitleStyle()接口)

getTrayStyle()Object

获取标牌托盘样式
Returns:
标牌托盘样式(setTrayStyle()接口)

removeClickedEvent(callback)

移除鼠标左键单击事件
Name Type Description
callback Sign~callback 回调事件

removeDoubleClickedEvent(callback)

移除鼠标左键双击事件
Name Type Description
callback Sign~callback 回调事件

removeRightClickedEvent(callback)

移除鼠标右键单击事件
Name Type Description
callback Sign~callback 回调事件

setContentFrameStyle(contentFrameStyle)

设置标牌内容框样式,(signParmMode == SignParmMode.Parameter)时生效
Name Type Description
contentFrameStyle Object 标牌内容框样式
Name Type Description
visible Boolean 是否显示
lineWidth Number 线宽(mm)
lineColor Array.<Color> 线色(例:[Cesium.Color(1, 0, 0, 1)])
lineColorGradientType ColorGradientType 颜色渐变类型(例:ColorGradientType.Horizontal 横向渐变)
lineDash Number 虚线间隔(例:10mm)
backgroundColor Array.<Color> 背景色(例例:[Cesium.Color(1, 0, 0, 0.4)])
backgroundColorGradientType ColorGradientType 颜色渐变类型(例:ColorGradientType.Horizontal 横向渐变)
arcCorner Boolean 是否圆角(boolean)
imagePath String 背景图片(例:"http://localhost:8090/iserver/mgis/situationSimulation/Sign/科技.png")

setIndecatorLineStyle(indecatorLineStyle)

设置标牌牵引线样式
Name Type Description
indecatorLineStyle Object 牵引线样式
Name Type Description
lineWidth Number 线宽(mm)
aryLineColors Array.<Color> 线色(例:[MGIS_SuperMap3D.Color(255, 0, 0, 1)])

setSignImage(signImage)

设置标牌图片的Base64资源字符串或图片路径 (signParmMode == 2 生效)
Name Type Description
signImage String 标牌图片的Base64资源字符串或图片路径

setTexts(texts)

设置标牌文本数组
Name Type Description
texts Array.<String> 文本数组

setTextStyle(textStyle, index)

设置标牌内容文本样式
Name Type Description
textStyle Object 标牌内容文本样式
Name Type Description
visible Boolean 是否显示
color Color 文字颜色(例:Cesium.Color(1255, 0, 0, 1))
fontFamily String 字体系列
fontStyle String 字体样式(例:1.默认值:normal(正常) 2.italic(倾斜))
fontSize String 字体大小(单位:mm)
fontWeight String 字体粗细(例:1.关键字normal(正常)bold(加粗) 2.纯数字100-900的整百数 400(正常) 700加粗)
index Number 标牌内容指定行索引,如果未设置默认为所有内容样式

setTextStyles(textStyles, textStyle)

设置标牌文本样式数组(文本样式数组需与文本数组一一对应)
Name Type Description
textStyles Array 文本样式数组
textStyle Object 文本样式JSON对象
Name Type Description
color Color 标牌文本颜色 (例:Cesium.Color(1, 0, 0, 1))
fontFamily String 标牌文本字体 Arial | Helvetica | ... (例:"Microsoft YaHei")
fontStyle String 标牌文本样式 italic | oblique (例:"normal")
fontSize Number 标牌文本大小(单位:mm)
fontWeight String 标牌文本粗细 normal | bold | bolder | lighter | 100 | 200 | 300 | ... | 900 (例:"400")

setTitle(title)

设置标牌标题
Name Type Description
title String 标牌标题

setTitleFrameStyle(titleFrameStyle)

设置标牌标题框样式,(signParmMode == SignParmMode.Parameter)时生效
Name Type Description
titleFrameStyle Object 标牌标题框样式
Name Type Description
visible Boolean 是否显示
lineWidth Number 线宽(mm)
lineColor Array.<Color> 线色(例:[Cesium.Color(1, 0, 0, 1)])
lineColorGradientType ColorGradientType 颜色渐变类型(例:ColorGradientType.Horizontal 横向渐变)
lineDash Number 虚线间隔(例:10 mm)
backgroundColor Array.<Color> 背景色(例:[Cesium.Color(1, 0, 0, 0.4)])
backgroundColorGradientType ColorGradientType 颜色渐变类型(例:ColorGradientType.Horizontal 横向渐变)
arcCorner Boolean 是否圆角(boolean)
imagePath String 背景图片(例:"http://localhost:8090/iserver/mgis/situationSimulation/Sign/科技.png")

setTitleStyle(titleStyle)

设置标牌标题样式,(signParmMode == SignParmMode.Parameter)时生效
Name Type Description
titleStyle Object 标牌标题样式
Name Type Description
visible Boolean 是否显示
color Color 文字颜色(例:Cesium.Color(1, 0, 0, 1))
fontFamily String 字体系列
fontStyle String 字体样式(例:1.默认值:normal(正常) 2.italic(倾斜))
fontSize String 字体大小(单位:mm)
fontWeight String 字体粗细(例:1.关键字normal(正常)bold(加粗) 2.纯数字100-900的整百数 400(正常) 700加粗)

setTrayStyle(trayStyle)

设置标牌托盘样式,(signParmMode == SignParmMode.Parameter)时生效
Name Type Description
trayStyle Object 标牌托盘样式
Name Type Description
visible Boolean 是否显示
lineWidth Number 线宽(mm)
lineColor Array.<Color> 线色(例:[Cesium.Color(1, 0, 0, 1)])
lineDash Number 虚线间隔(例:10 mm)

toJSON()String

特效对象转Json对象, 注意:json对象中没有包含scene和geoGraphicObject对象(未完成)
Returns:
Json字符串

updateEffect(options)

设置特效属性
Name Type Description
options Object optional Object with the following properties:
Name Type Description
point MPoint3D optional 位置点
rotate MPoint3D optional 旋转
scale MPoint3D optional 缩放

Type Definitions

callback(params)

鼠标点击事件回调函数
Name Type Description
params Object 返回参数对象
Name Type Description
object Object 标牌对象
e Object 屏幕坐标
Name Type Description
x Number 屏幕X坐标
y Number 屏幕Y坐标