TriangulationTool

new Cesium.TriangulationTool(viewer, options)

三角测量
Name Type Description
viewer Object 视图
options Object 包含以下属性的对象
Name Type Default Description
callBack Boolean function(result, positions){} optional 回调函数
labelCallBack Boolean function(result, label){} optional 测量完毕后提示框的回调函数,可以覆盖提示内容
disableDepthTestDistance Number Number.POSITIVE_INFINITY optional 只要小于这个距离深度检测就会失效,就会一直显示在最前面 不会被遮挡
lineColor Color optional 线颜色
pointColor Color optional 点颜色
lineMaterial Material optional 线材质
style LabelStyle LabelStyle.FILL optional label 文字的样式,支持填充、线框。填充和线框, FILL, OUTLINE, FILL_AND_OUTLINE
font String '12pt 楷体' optional label 的字体以及大小 @see https://html.spec.whatwg.org/multipage/canvas.html#text-styles
fillColor Color Color.WHITE optional label 的字体颜色
outlineColor Color Color.WHITE optional label 文字线框的颜色
outlineWidth Number 4.0 optional label 的外轮廓边线
verticalOrigin VerticalOrigin VerticalOrigin.BOTTOM optional label 的摆放位置
showBackground Boolean true optional 是否显示 label 的背景
backgroundColor Color new Color(0, 0, 0, 0.4) optional lable 背景的颜色
pixelOffset Cartesian2 new Cartesian2(0, -4) optional label 相对于设定点的偏移位置
showMoreInfo Boolean true optional 是否显示详细信息。默认显示。
enableABS Boolean false optional 展示信息时是否使用绝对值。默认不使用。
enableScaleByDistance Number true optional 是否启用标签随视角高度缩放功能
scaleByDistance NearFarScalar null optional 标签大小随视角高度缩放函数,用户可自定义,不传则使用默认函数,会传入一个当前的相机视角高度,返回一个NearFarScale函数对象,详见下方示例
Author:
  • 韩彦生
Example:
function callBack(arg){
   }
  var triangulationTool = new Cesium.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;

Members

horizontalDiatance : Number

水平距离

rightClickReBegin : Boolean

右键是否继续重新

slantDiatance : Number

直线距离

verticalDiatance : Number

高差

Methods

calculateByTwoPoints(startPoint, endPoint)

计算两点之间的高程差
Name Type Description
startPoint Object 起始点
endPoint Object 终止点
开始测量
结束测量