rc-leaflet
Version:
React Map Components of Leaflet
131 lines (130 loc) • 7.1 kB
TypeScript
import 'leaflet.markercluster/dist/MarkerCluster.css';
import 'leaflet.markercluster/dist/MarkerCluster.Default.css';
import React from 'react';
import PropTypes from 'prop-types';
import L from 'leaflet';
import 'leaflet.markercluster';
import { Icon } from '../../util/PropTypes';
import { ContextType } from '../RCMap/Context';
import Layer from '../Layer';
declare type Icon = L.Icon | L.DivIcon;
export declare type ChunkProgress = (processed?: number, total?: number, time?: number) => void;
export declare type IconCreateFunction = (cluster: L.MarkerCluster) => Icon;
interface RequiredProps {
points: L.LatLngExpression[];
}
interface PartialProps {
icon: Icon;
clusterPane: string;
chunkProgress: ChunkProgress;
}
declare type Props = Readonly<L.MarkerClusterGroupOptions & Partial<PartialProps> & RequiredProps>;
export default class ClusterPoints extends Layer<L.MarkerClusterGroup, Props> {
static propTypes: {
points: PropTypes.Validator<(number[] | L.LatLng | PropTypes.InferProps<{
lat: PropTypes.Validator<number>;
lng: PropTypes.Validator<number>;
}>)[]>;
icon: PropTypes.Requireable<L.Icon<L.IconOptions> | L.DivIcon>;
clusterPane: PropTypes.Requireable<string>;
chunkProgress: PropTypes.Requireable<(...args: any[]) => any>;
showCoverageOnHover: PropTypes.Requireable<boolean>;
zoomToBoundsOnClick: PropTypes.Requireable<boolean>;
spiderfyOnMaxZoom: PropTypes.Requireable<boolean>;
removeOutsideVisibleBounds: PropTypes.Requireable<boolean>;
animate: PropTypes.Requireable<boolean>;
animateAddingMarkers: PropTypes.Requireable<boolean>;
disableClusteringAtZoom: PropTypes.Requireable<number>;
maxClusterRadius: PropTypes.Requireable<number | ((...args: any[]) => any)>;
polygonOptions: PropTypes.Requireable<PropTypes.InferProps<{
smoothFactor: PropTypes.Requireable<number>;
noClip: PropTypes.Requireable<boolean>;
stroke: PropTypes.Requireable<boolean>;
color: PropTypes.Requireable<string>;
weight: PropTypes.Requireable<number>;
opacity: PropTypes.Requireable<number>;
lineCap: PropTypes.Requireable<L.LineCapShape>;
lineJoin: PropTypes.Requireable<L.LineJoinShape>;
dashArray: PropTypes.Requireable<string | number[]>;
dashOffset: PropTypes.Requireable<string>;
fill: PropTypes.Requireable<boolean>;
fillColor: PropTypes.Requireable<string>;
fillOpacity: PropTypes.Requireable<number>;
fillRule: PropTypes.Requireable<L.FillRule>;
renderer: PropTypes.Requireable<L.Renderer>;
className: PropTypes.Requireable<string>;
interactive: PropTypes.Requireable<boolean>;
bubblingMouseEvents: PropTypes.Requireable<boolean>;
group: PropTypes.Requireable<L.LayerGroup<unknown>>;
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>;
}>>;
singleMarkerMode: PropTypes.Requireable<boolean>;
spiderLegPolylineOptions: PropTypes.Requireable<PropTypes.InferProps<{
smoothFactor: PropTypes.Requireable<number>;
noClip: PropTypes.Requireable<boolean>;
stroke: PropTypes.Requireable<boolean>;
color: PropTypes.Requireable<string>;
weight: PropTypes.Requireable<number>;
opacity: PropTypes.Requireable<number>;
lineCap: PropTypes.Requireable<L.LineCapShape>;
lineJoin: PropTypes.Requireable<L.LineJoinShape>;
dashArray: PropTypes.Requireable<string | number[]>;
dashOffset: PropTypes.Requireable<string>;
fill: PropTypes.Requireable<boolean>;
fillColor: PropTypes.Requireable<string>;
fillOpacity: PropTypes.Requireable<number>;
fillRule: PropTypes.Requireable<L.FillRule>;
renderer: PropTypes.Requireable<L.Renderer>;
className: PropTypes.Requireable<string>;
interactive: PropTypes.Requireable<boolean>;
bubblingMouseEvents: PropTypes.Requireable<boolean>;
group: PropTypes.Requireable<L.LayerGroup<unknown>>;
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>;
}>>;
spiderfyDistanceMultiplier: PropTypes.Requireable<number>;
iconCreateFunction: PropTypes.Requireable<(...args: any[]) => any>;
chunkedLoading: PropTypes.Requireable<boolean>;
chunkDelay: PropTypes.Requireable<number>;
chunkInterval: PropTypes.Requireable<number>;
group: PropTypes.Requireable<L.LayerGroup<unknown>>;
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: L.MarkerClusterGroupOptions;
protected constructor(props: Props, context: ContextType);
componentDidUpdate(prevProps: Props): void;
protected createInstance(props: Props): L.MarkerClusterGroup;
protected getTheme(): object;
private addPoints;
render(): React.ReactNode;
}
export {};