react-mapbox-gl
Version:
A React binding of mapbox-gl-js
53 lines (52 loc) • 1.7 kB
TypeScript
import * as React from 'react';
import { Map } from 'mapbox-gl';
import { Props as MarkerProps } from './marker';
import Supercluster from 'supercluster';
import * as GeoJSON from 'geojson';
export interface Props {
ClusterMarkerFactory(coordinates: GeoJSON.Position, pointCount: number, getLeaves: (limit?: number, offset?: number) => Array<React.ReactElement<MarkerProps> | undefined>): React.ReactElement<MarkerProps>;
radius?: number;
maxZoom?: number;
minZoom?: number;
extent?: number;
nodeSize?: number;
log?: boolean;
zoomOnClick?: boolean;
zoomOnClickPadding?: number;
children?: Array<React.ReactElement<MarkerProps>>;
style?: React.CSSProperties;
className?: string;
tabIndex?: number;
map: Map;
}
export interface State {
superC: Supercluster;
clusterPoints: Array<GeoJSON.Feature<GeoJSON.Point>>;
}
export declare class Cluster extends React.Component<Props, State> {
static defaultProps: {
radius: number;
minZoom: number;
maxZoom: number;
extent: number;
nodeSize: number;
log: boolean;
zoomOnClick: boolean;
zoomOnClickPadding: number;
};
state: State;
private featureClusterMap;
componentDidMount(): void;
componentWillUnmount(): void;
componentDidUpdate(prevProps: Props): void;
private childrenChange;
private mapChange;
private feature;
private childrenToFeatures;
private getLeaves;
zoomToClusterBounds: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;
private findMarkerElement;
render(): JSX.Element;
}
declare const _default: <T>(props: T) => JSX.Element;
export default _default;