MeasureAreaTool

new Cesium.MeasureAreaTool(viewer, options)

面积测量工具
Name Type Description
viewer Object 视图
options Object 包含以下属性的对象
Name Type Default Description
callBack function function(result, positions){} optional 回调函数,返回测量结果值
labelCallBack function function(result, label){} optional 测量完毕后提示框的回调函数,可以覆盖提示内容
labelStyle LabelGraphics {} optional labelStyle 提示框样式,参考LabelGraphics
lineStyle PolylineGraphics {} optional lineStyle 测量线式,参考PolylineGraphics
polygonStyle PolygonGraphics {} optional polygonStyle 测量点样式,参考PolygonGraphics
closePointStyle Billboard {} optional closePointStyle 删除测量结果图标样式,参考Billboard
exHeight Number 0 optional 附加高程偏移 (避免遮挡)
disableDepthTestDistance Number Number.POSITIVE_INFINITY optional 只要小于这个距离深度检测就会失效,就会一直显示在最前面 不会被遮挡
spaceArea Boolean optional 是否计算空间点面积 默认计算的是球面投影面积
lineColor Color optional 边线颜色
areaColor Color optional 选定区域颜色
isTerrain Boolean false optional 是否针对地形,为true时对地形数据进行贴地面积测量,为false时进行空间面积测量
xPaneNum Number 32 optional 地形贴地面积测量中,向经度方向插入采样点的数量
yPaneNum Number 32 optional 地形贴地面积测量中,向纬度方向插入采样点的数量
classificationType Number 0 optional 测量区域的绘制结果显示,区分地形、模型,为0代表在地形上绘制,为1代表在模型上绘制,为2代表同时在地形和模型上绘制
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 相对于设定点的偏移位置
enableScaleByDistance Number true optional 是否启用标签随视角高度缩放功能
scaleByDistance Number optional 标签代销随视角高度缩放函数,用户可自定义,不传则使用默认函数,会传入一个当前的相机视角高度,返回一个NearFarScale函数对象,详见下方示例
isContinueDraw Number true optional 是否连续绘制,true:是,false:否
Author:
  • 韩彦生
Example:
function callBack(measureResult){
}
var measureAreaTool = new Cesium.MeasureAreaTool(viewer,
    {
        callBack:callBack,
        isTerrain:true,
        xPaneNum:32,
        yPaneNum:32,
         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);
          }
    });
measureAreaTool.startTool();  //开始测量
//measureAreaTool.stopTool(); //结束测量