rs-react-native-map-clustering
Version:
React Native Map Clustering both for Android and iOS with TypeScript support
51 lines (50 loc) • 1.56 kB
TypeScript
import { ReactNode } from 'react';
export interface Region {
latitude: number;
longitude: number;
latitudeDelta: number;
longitudeDelta: number;
}
export interface MarkerData {
properties: {
point_count: number;
index: number;
[key: string]: any;
};
geometry: {
coordinates: [number, number];
};
}
export interface MarkerProps {
coordinate: {
latitude: number;
longitude: number;
};
cluster?: boolean;
[key: string]: any;
}
export interface SpiderMarker {
index: number;
longitude: number;
latitude: number;
centerPoint: {
latitude: number;
longitude: number;
};
}
export interface ClusterStyleProps {
width: number;
height: number;
size: number;
fontSize: number;
}
export declare const isMarker: (child: ReactNode) => boolean;
export declare const calculateBBox: (region: Region) => [number, number, number, number];
export declare const returnMapZoom: (region: Region, bBox: [number, number, number, number], minZoom: number) => number;
export declare const markerToGeoJSONFeature: (marker: any, index: number) => any;
export declare const generateSpiral: (marker: MarkerData, clusterChildren: any[], markers: MarkerData[], index: number) => SpiderMarker[];
/**
* Optimized marker style calculation that uses a lookup table for common values
* to avoid repetitive condition checks for better performance with large datasets
*/
export declare const returnMarkerStyle: (points: number) => ClusterStyleProps;