类名 TriangulationTool

# new TriangulationTool(viewer, options)

三角测量

参数:

名称 类型 默认值 描述
viewer Object

视图

options Object

包含以下属性的对象

callBack Boolean function(result, positions){}

回调函数

labelCallBack Boolean function(result, label){}

测量完毕后提示框的回调函数,可以覆盖提示内容

disableDepthTestDistance Number Number.POSITIVE_INFINITY

只要小于这个距离深度检测就会失效,就会一直显示在最前面 不会被遮挡

lineColor Cesium.Color

线颜色

pointColor Cesium.Color

点颜色

lineMaterial Material

线材质

style Cesium.LabelStyle Cesium.LabelStyle.FILL

label 文字的样式,支持填充、线框。填充和线框, FILL, OUTLINE, FILL_AND_OUTLINE

font String '12pt 楷体'

label 的字体以及大小 @see https://html.spec.whatwg.org/multipage/canvas.html#text-styles

fillColor Cesium.Color Cesium.Color.WHITE

label 的字体颜色

outlineColor Cesium.Color Cesium.Color.WHITE

label 文字线框的颜色

outlineWidth Number 4.0

label 的外轮廓边线

verticalOrigin Cesium.VerticalOrigin Cesium.VerticalOrigin.BOTTOM

label 的摆放位置

showBackground Boolean true

是否显示 label 的背景

backgroundColor Cesium.Color new Cesium.Color(0, 0, 0, 0.4)

lable 背景的颜色

pixelOffset Cesium.Cartesian2 new Cesium.Cartesian2(0, -4)

label 相对于设定点的偏移位置

showMoreInfo Boolean true

是否显示详细信息。默认显示。

enableABS Boolean false

展示信息时是否使用绝对值。默认不使用。

enableScaleByDistance Number true

是否启用标签随视角高度缩放功能

scaleByDistance NearFarScalar null

标签大小随视角高度缩放函数,用户可自定义,不传则使用默认函数,会传入一个当前的相机视角高度,返回一个NearFarScale函数对象,详见下方示例

作者:
  • 韩彦生
示例
// ES5引入方式
const { TriangulationTool } = zondy.cesium
// ES6引入方式
import { TriangulationTool } from "@mapgis/webclient-cesium-plugin"

function callBack(arg){
}
var triangulationTool = new TriangulationTool(viewer,{
    callBack:callBack,
    scaleByDistance: function(height) {
        if (height < 30) {
            return new NearFarScalar(30, 3, 180, 0);
        } else if (height < 60) {
            return new NearFarScalar(60, 3, 360, 0);
        } else if (height < 120) {
            return new NearFarScalar(120, 3, 720, 0);
        } else if (height < 240) {
            return new NearFarScalar(240, 2, 1200, 0);
        } else if (height < 480) {
            return new NearFarScalar(480, 2, 2400, 0);
        } else if (height < 960) {
            return new NearFarScalar(960, 2, 4800, 0);
        } else if (height < 1920) {
            return new NearFarScalar(1920, 2, 9600, 0);
        } else if (height < 3840) {
            return new NearFarScalar(3840, 2, 19200, 0);
        } else if (height < 7680) {
            return new NearFarScalar(7680, 2, 38400, 0);
        } else if (height < 15360) {
            return new NearFarScalar(15360, 2, 76800, 0);
        } else if (height < 30720) {
            return new NearFarScalar(30720, 2, 153600, 0);
        } else if (height < 61440) {
            return new NearFarScalar(61440, 2, 307200, 0);
        } else if (height < 122880) {
            return new NearFarScalar(122880, 2, 614400, 0);
        } else if (height < 245760) {
            return new NearFarScalar(245760, 2, 1228800, 0);
        } else if (height < 491520) {
            return new NearFarScalar(491520, 2, 2457600, 0);
        } else if (height < 983040) {
            return new NearFarScalar(983040, 2, 4915200, 0);
        } else if (height < 1966080) {
            return new NearFarScalar(1966080, 2, 9830400, 0);
        } else if (height < 3932160) {
            return new NearFarScalar(3932160, 1, 19660800, 0);
        } else if (height < 7864320) {
            return new NearFarScalar(7864320, 1, 39321600, 0);
        } else if (height < 15728640) {
            return new NearFarScalar(15728640, 1, 78643200, 0);
        }
        return new NearFarScalar(15728640, 1, 78643200, 0);
    }
});
triangulationTool.startTool();  //开始测量
//triangulationTool.stopTool(); //结束测量
scene.camera.enableTerrainAdjustmentWhenLoading = false;

成员变量

Number

# horizontalDiatance

水平距离

Boolean

# rightClickReBegin

右键是否继续重新

Number

# slantDiatance

直线距离

Number

# verticalDiatance

高差

方法

# calculateByTwoPoints(startPoint, endPoint)

计算两点之间的高程差

参数:

名称 类型 描述
startPoint Object

起始点

endPoint Object

终止点

# startTool()

开始测量

# stopTool()

结束测量

构造函数
成员变量
方法
事件