You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 9.8KB


场景分析 🌎

DC.Measure

三维空间分析

example

let measure = new DC.Measure(viewer)

creation

  • constructor()

构造函数

  • 返回值 measure

methods

  • angle([options])

角度

  • 参数
    • {Object} options:配置
  • 返回值 this

  • area([options])

面积

  • 参数
    • {Object} options:配置
  • 返回值 this

  • areaSurface([options])

表面面积

  • 参数
    • {Object} options:配置
  • 返回值 this

  • distance([options])

距离

  • 参数
    • {Object} options:配置
  • 返回值 this

  • distanceSurface([options])

表面距离

  • 参数
    • {Object} options:配置
  • 返回值 this

  • heading([options])

偏航角

  • 参数
    • {Object} options:配置
  • 返回值 this

  • height([options])

高度

  • 参数
    • {Object} options:配置
  • 返回值 this

  • triangleHeight([options])

三角测量

  • 参数
    • {Object} options:配置
  • 返回值 this

  • activate(type,[options])

根据类型分析

  • 参数
    • {String} type:分析类型,参考 DC.MeasureType,
    • {Object} options:配置
  • 返回值 this
//属性参数(可选)
{
  "icon_center": "**.png", // 自定义的中心点图标
  "icon_anchor": "**.png", //自定义的锚点图标
  "icon_midAnchor": "**.png", //自定义的中心锚点图标
  "icon_size": [12, 12], //自定义的中心锚点大小
  "clampToModel": false //点位是否获取模型表面坐标
}
  • deactivate()

释放空间分析

  • 返回值 this

DC.Analysis

三维场景分析

example

let analysis = new DC.Analysis(viewer)

creation

  • constructor()

构造函数

  • 返回值 analysis

methods

  • contourLine(lineColor, lineWidth, lineSpacing)

等高线

  • 参数
    • {Color} lineColor:颜色
    • {Number} lineWidth:宽度
    • {Number} lineSpacing:间隔
  • 返回值 this

  • shadows(startTime, multiplier)

日照分析

  • 参数
    • {Date} startTime:日期
    • {Number} multiplier:倍率
  • 返回值 this

  • sightLine(startPosition, endPosition, excludes, lerpNum)

通视分析(线)

  • 参数
    • {Position|Array|String|Object} startPosition:起点
    • {Position|Array|String|Object} endPosition:终点
    • {Array<Overlay>} excludes:非包含覆盖物
    • {Number} lerpNum:插值数量,默认:10,数量越大越准确,同时计算量也会增加
  • 返回值 this

  • sightCircle(center, radius, excludes, lerpNum)

通视分析(圆)

  • 参数
    • {Position|Array|String|Object} center:圆心
    • {Number} radius:半径
    • {Array<Overlay>} excludes:非包含覆盖物
    • {Number} lerpNum:插值数量,默认:10,数量越大越准确,同时计算量也会增加
  • 返回值 this

  • viewshed(position, radius, fov, aspectRatio, options)

可视域分析

  • 参数
    • {Position|Array|String|Object} position:视点
    • {Number} radius:半径
    • {Number} fov:横向视角
    • {Number} aspectRatio:横纵比例
    • {Object} options:属性设置
  • 返回值 this
//属性参数
{
  "mixNum":1, // 混合度
  "visibleColor":DC.Color.GREEN,//可见颜色
  "disVisibleColor":DC.Color.RED,//不可见颜色
  "showHelp": false, //显示辅助覆盖物
  "gridColor": DC.Color.YELLOW, //辅助覆盖物格子颜色
  "lineColor": DC.Color.YELLOW.withAlpha(0.3) //辅助覆盖物边线颜色
}
  • deactivate([type])

释放分析

  • 参数
    • {String} type:分析类型,参考 DC.AnalysisType。类型为空时,将清除所有分析
  • 返回值 this

DC.CameraVideoLayer

视频图层,继承于Layer

example

let layer = new DC.CameraVideoLayer('id')
viewer.addLayer(layer)

creation

  • constructor(id)

构造函数

  • 参数
    • {String} id:图层唯一标识
  • 返回值 videoLayer

methods

  • showHelp(show, videoOverlay, color)

是否显示辅助视锥

  • 参数
    • {Boolean} show:是否显示
    • {Overlay} videoOverlay:视频覆盖物
    • {Color} color:边线颜色
  • 返回值 this

DC.CameraVideo

视频融合要素,继承于Overlay

example

let position = new DC.Position(120, 20, 200, -20, 19)
let videoEl = new document.getElementById('video')
let cameraVideo = new DC.CameraVideo(position, videoEl)
layer.addOverlay(cameraVideo)

creation

  • constructor(position, video,[maskUrl])

构造函数

  • 参数
    • {Position} position:坐标
    • {Element} video:视频节点
    • {String} [maskUrl]: 羽化图片地址
  • 返回值 cameraVideo

properties

  • {Position} position:坐标
  • {Element} video:视频节点
  • {String} maskUrl: 羽化图片地址

methods

  • setStyle(style)

设置样式

  • 参数
    • {Object} style:样式
  • 返回值 this
// 样式参数(可选)
{
  "fov": 60, //视场角
  "near": 1, //近平面的距离
  "far": 5000, //远平面的距离
  "aspectRatio": 1, //视锥的宽度与高度的纵横比
  "alpha": 1, //透明度
  "clearBlack": true, //清除空白
  "disViewColor": DC.Color.WHITE //设置视频不可见颜色
}

DC.PlaneVideoLayer

平面视频图层,继承于Layer

example

let layer = new DC.PlaneVideoLayer('id')
viewer.addLayer(layer)

creation

  • constructor(id)

构造函数

  • 参数
    • {String} id:图层唯一标识
  • 返回值 videoLayer

methods

  • showHelp(show, videoOverlay, color)

是否显示辅助视锥

  • 参数
    • {Boolean} show:是否显示
    • {Overlay} videoOverlay:视频覆盖物
    • {Color} color:边线颜色
  • 返回值 this

DC.PlaneVideo

平面视频要素,继承于Overlay

example

let position = new DC.Position(120, 20, 200, -20, 19)
let videoEl = new document.getElementById('video')
let cameraVideo = new DC.PlaneVideo(position, videoEl)
layer.addOverlay(cameraVideo)

creation

  • constructor(position, video)

构造函数

  • 参数
    • {Position} position:坐标
    • {Element} video:视频节点
  • 返回值 cameraVideo

properties

  • {Position} position:坐标
  • {Element} video:视频节点

methods

  • setStyle(style)

设置样式

  • 参数
    • {Object} style:样式
  • 返回值 this
// 样式参数(可选)
{
  "fov": 60, //视场角
  "near": 1, //近平面的距离
  "far": 5000, //远平面的距离
  "aspectRatio": 1 //视锥的宽度与高度的纵横比
}

DC.GeoTools

要素工具

example

let coords = DC.GeoTools.pointBuffer(
  '120.71259021075333,31.22148081085083',
  100
)

let coords1 = DC.GeoTools.polygonBuffer(
  '120.71259021075333,31.22148081085083;120.71611354431036,31.221447256684566;120.7140691869497,31.21875584696343',
  150
)

static methods

  • pointBuffer(position, radius, steps)

点缓冲

  • 参数
    • {Array|String|Position} position:坐标
    • {Number} radius:半径
    • {Number} steps:步数,默认:8
  • 返回值 array

  • polylineBuffer(positions, radius, steps)

线缓冲

  • 参数
    • {Array|String|Array<Position>} positions:坐标串
    • {Number} radius:半径
    • {Number} steps:步数,默认:8
  • 返回值 array

  • polygonBuffer(positions, radius, steps)

面缓冲

  • 参数
    • {Array|String|Array<Position>} positions:坐标串
    • {Number} radius:半径
    • {Number} steps:步数,默认:8
  • 返回值 array

  • transformPolylineScale(positions, factor)

比例线

  • 参数
    • {Array|String|Array<Position>} positions:坐标串
    • {Number} factor:比例
  • 返回值 array

  • transformPolygonScale(positions, factor)

比例面

  • 参数
    • {Array|String|Array<Position>} positions:坐标串
    • {Number} factor:比例
  • 返回值 array

  • transformPolylineRotate(positions, angle)

旋转线

  • 参数
    • {Array|String|Array<Position>} positions:坐标串
    • {Number} angle:角度
  • 返回值 array

  • transformPolygonRotate(positions, angle)

旋转面

  • 参数
    • {Array|String|Array<Position>} positions:坐标串
    • {Number} angle:角度
  • 返回值 array

DC.GlobClipping

地球裁剪

example

let globClipping = new DC.GlobClipping(viewer)

creation

  • constructor(viewer,[options])

构造函数

  • 参数
    • {Viewer} viewer:场景
    • {Object} options:属性
  • 返回值 globClipping
// 属性参数(可选)
{
  "edgeWidth": 0, // 边缘宽度
  "edgeColor": DC.Color.WHITE // 边缘颜色
}

properties

  • {Array<Position>} positions:坐标串
  • {Number} distance: 距离
  • {Boolean} enable: 是否启用
  • {String} state: 状态 readonly

DC.TerrainClipping

地形裁剪

example

let terrainClipping = new DC.TerrainClipping(viewer)

creation

  • constructor(viewer,[options])

构造函数

  • 参数
    • {Viewer} viewer:场景
    • {Object} options:属性
  • 返回值 terrainClipping
// 属性参数(可选)
{
  "edgeWidth": 0, // 边缘宽度
  "edgeColor": DC.Color.WHITE, // 边缘颜色
  "lerpInterval": 50, // 插值数量
  "bottomImage": "", // 底部图片
  "sideImage": "" // 侧边图片
}

properties

  • {Array<Position>} positions:坐标串
  • {Number} height: 高度
  • {Boolean} enable: 是否启用
  • {String} state: 状态 readonly