UNPKG

@orca-fe/x-map

Version:
63 lines (62 loc) 2.12 kB
import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer'; import { RenderPass } from 'three/examples/jsm/postprocessing/RenderPass'; import { ShaderPass } from 'three/examples/jsm/postprocessing/ShaderPass'; import { CanvasTexture, Group, PlaneGeometry } from 'three'; import ThreeLayer, { ThreeLayerOptions } from './ThreeLayer'; import IMap from '../core/IMap'; export declare type HeatmapData = { lng: number; lat: number; value: number; }; export interface ThreeHeatmapLayerOptions extends ThreeLayerOptions { /** 热力图颜色跨度 */ colors?: [number, string][]; /** 热力图色阶的精度 */ colorPrecision?: number; min?: number; max?: number; maxZoom?: number; minZoom?: number; data?: HeatmapData[]; dataPrecision?: number; z?: number; opacity?: number; radius?: number; } export default class ThreeHeatmapLayer extends ThreeLayer { protected heatmapTexture: CanvasTexture; protected shaderPass?: ShaderPass; protected renderPass?: RenderPass; protected composer: EffectComposer; protected dataOrigin?: HeatmapData[]; protected heatmapObj3D: Group; protected planeGeometry: PlaneGeometry; dataPrecision: number; min: number; max?: number; minZoom?: number; maxZoom?: number; z: number; opacity: number; radius: number; constructor(options?: ThreeHeatmapLayerOptions); /** * 设置热力图颜色 * @param colors 热力值对应的颜色 * @param precision 热力图颜色精度 */ setHeatmapColor(colors: [number, string][], precision?: number): void; createObject(): void; setData(data: HeatmapData[], max?: number, min?: number): void; setMin(min?: number): void; setMax(max?: number): void; setMinZoom(minZoom?: number): void; setMaxZoom(maxZoom?: number): void; setOpacity(opacity?: number): void; setRadius(radius: number): void; updatePosition(): void; setMap(map: IMap): void; add(): void; destroy(): void; }