UNPKG

rc-leaflet-heat

Version:

React HeatMap Component based on rc-leaflet

76 lines (75 loc) 2.81 kB
import PropTypes from 'prop-types'; import L from 'leaflet'; import HeatmapOverlay from 'leaflet-heatmap'; import { ContextType } from 'rc-leaflet/es/components/RCMap/Context'; import { Layer } from 'rc-leaflet'; export interface Point { lat: number; lng: number; value?: number; } export interface Gradient { [key: string]: string; } export interface Extrema { gradient: Gradient; max: number; min: number; } export interface PartialProps { dataMax: number; dataMin: number; backgroundColor: string; gradient: Gradient; radius: number; opacity: number; maxOpacity: number; minOpacity: number; blur: number; scaleRadius: boolean; useLocalExtrema: boolean; onExtremaChange(extrema: Extrema): void; } export interface ReqiuredProps { points: Point[]; } export declare type Props = Readonly<L.LayerOptions & Partial<PartialProps> & ReqiuredProps>; export default class HeatLayer extends Layer<HeatmapOverlay, Props> { static propTypes: { backgroundColor: PropTypes.Requireable<string>; gradient: PropTypes.Requireable<object>; radius: PropTypes.Requireable<number>; opacity: PropTypes.Requireable<number>; maxOpacity: PropTypes.Requireable<number>; minOpacity: PropTypes.Requireable<number>; blur: PropTypes.Requireable<number>; scaleRadius: PropTypes.Requireable<boolean>; useLocalExtrema: PropTypes.Requireable<boolean>; onExtremaChange: PropTypes.Requireable<(...args: any[]) => any>; points: PropTypes.Requireable<PropTypes.InferProps<{ lat: PropTypes.Validator<number>; lng: PropTypes.Validator<number>; value: PropTypes.Requireable<number>; }>[]>; dataMax: PropTypes.Requireable<number>; dataMin: PropTypes.Requireable<number>; pane: PropTypes.Requireable<string>; attribution: PropTypes.Requireable<string>; onCreate: PropTypes.Requireable<(...args: any[]) => any>; onAdd: PropTypes.Requireable<(...args: any[]) => any>; onUpdate: PropTypes.Requireable<(...args: any[]) => any>; onBeforeRemove: PropTypes.Requireable<(...args: any[]) => any>; onRemove: PropTypes.Requireable<(...args: any[]) => any>; children: PropTypes.Requireable<PropTypes.ReactNodeLike>; onClick: PropTypes.Requireable<(...args: any[]) => any>; onMouseOver: PropTypes.Requireable<(...args: any[]) => any>; onMouseOut: PropTypes.Requireable<(...args: any[]) => any>; }; static defaultProps: { radius: number; scaleRadius: boolean; }; constructor(props: Props, context: ContextType); componentDidUpdate(prevProps: Props): void; createInstance(props: Props): HeatmapOverlay; }