rc-leaflet-heat
Version:
React HeatMap Component based on rc-leaflet
76 lines (75 loc) • 2.81 kB
TypeScript
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;
}