Class: CesiumHeatmap

CesiumHeatmap

new CesiumHeatmap()

engineExtensions/analysis/CesiumHeatmap.js, line 5

请参考以下示例:
1、热力图

热力图

Example

热力图

// 参考示例:
http://10.10.130.72:8086/#/modules/cesium/visualization/themeLayer/heat-map

// ES5引入方式
const { CesiumHeatmap } = zondy.cesium
// ES6引入方式
import { CesiumHeatmap } from "@mapgis/webclient-cesium-plugin"

// 1 构造热力图初始化参数
const options = {
  // 热力半径
  radius: 36,
  // 图层透明度
  alpha: 0.85,
  // 模糊因子
  blur: 0.75,
  // 热力图颜色梯度
  gradient: {
    0.3: 'rgb(0,0,255)',
    0.65: 'rgb(255,255,0)',
    0.8: 'rgb(255,128,0)',
    0.95: 'rgb(255,0,0)'
  },
  // 是否自动重算热力半径
  canChange: false
}

// 2 创建热力图
const heatMap = zondy.cesium.CesiumHeatmap.create(
  // Cesium场景视图对象
  viewer,
  // 热力图范围
  bounds,
  // 热力图额外初始化参数
  options
)

// 3 构建热力图数据,在矩形框内创建随机点,200个
const bounds = {
  east: 114.40295687456313,
  north: 30.467989447011963,
  south: 30.465570241010646,
  west: 114.40024175306026
}
const array = zondy.cesium.AlgorithmLib.getRandomPointByRect(
  bounds.west,
  bounds.south,
  bounds.east,
  bounds.north,
  200
)
const heatMapData = []
for (let i = 0; i < array.length; i++) {
  heatMapData.push({
    x: array[i].x,
    y: array[i].y,
    // 获取30到150之间的随机值
    value: parseInt(Math.random() * (150 - 30 + 1) + 30, 10)
  })
}

// 4 添加数据集,并设置数据范围
heatMap.setWGS84Data(30, 150, heatMapData)

Methods

CesiumHeatmap.create(viewer, boundingbox, options){Object}

engineExtensions/analysis/CesiumHeatmap.js, line 118

创建并返回一个热力图对象

Name Type Default Description
viewer Cesium.Viewer null 可选

场景视图对象,详见Cesium.Viewer

boundingbox Cesium.Rectangle null 可选

热力图范围,详见Cesium.Rectangle

options Object {} 可选

可选参数

Name Type Default Description
minCanvasSize Number 700 可选

热力图画布最小尺寸

maxCanvasSize Number 2000 可选

热力图画布最大尺寸

radiusFactor Number 60 可选

如果没有给出半径,则使用数据点大小因子(高度和宽度中的较大者除以这个数字产生使用的半径)

spacingFactor Number 1.5 可选

边界周围的额外空间(点半径乘以这个数字产生间距)

maxOpacity Number 0.8 可选

如果未在热力图选项对象中给出,则使用的最大不透明度

minOpacity Number 0.1 可选

如果未在热图选项对象中给出,则使用的最小不透明度

blur Number 0.85 可选

如果未在热力图选项对象中给出,则使用的模糊值为0.85。模糊值越高,渐变越平滑。

gradient Object {'0.3': 'rgb(0,0,255)', '0.65': 'yellow', '0.8': 'orange', '0.95': 'red'} 可选

热力图颜色梯度

canChange Boolean true 可选

默认自动重算热力半径

Returns:
Type Description
Object 热力图对象

CesiumHeatmap.mercatorToWgs84()

engineExtensions/analysis/CesiumHeatmap.js, line 208

Convert a mercator location into a WGS84 location

p: the mercator lcation like {x, y}