UNPKG

react-leaflet-markercluster

Version:

React wrapper of Leaflet.markercluster for react-leaflet

188 lines (166 loc) 5.71 kB
import { PolylineOptions, MarkerCluster, Icon, DivIcon, Point } from "leaflet"; declare module "react-leaflet-markercluster" { interface MarkerClusterGroupProps { /** * showCoverageOnHover * * When you mouse over a cluster it shows the bounds of its markers. */ showCoverageOnHover?: boolean | undefined; /** * zoomToBoundsOnClick * * When you click a cluster we zoom to its bounds. */ zoomToBoundsOnClick?: boolean | undefined; /** * spiderfyOnMaxZoom * * When you click a cluster at the bottom zoom level we spiderfy it so you can see all of its * markers. * * Note: the spiderfy occurs at the current zoom level if all items within the cluster are * still clustered at the maximum zoom level or at zoom specified by disableClusteringAtZoom * option. */ spiderfyOnMaxZoom?: boolean | undefined; /** * removeOutsideVisibleBounds * * Clusters and markers too far from the viewport are removed from the map for performance. */ removeOutsideVisibleBounds?: boolean | undefined; /** * animate * * Smoothly split / merge cluster children when zooming and spiderfying. * If L.DomUtil.TRANSITION is false, this option has no effect (no animation is possible). */ animate?: boolean | undefined; /** * animateAddingMarkers * * If set to true (and animate option is also true) then adding individual markers * to the MarkerClusterGroup after it has been added to the map will add the marker * and animate it into the cluster. * Defaults to false as this gives better performance when bulk adding markers. * addLayers does not support this, only addLayer with individual Markers. */ animateAddingMarkers?: boolean | undefined; /** * disableClusteringAtZoom * * If set, at this zoom level and below, markers will not be clustered. * This defaults to disabled. * * Note: you may be interested in disabling spiderfyOnMaxZoom option when using * disableClusteringAtZoom. */ disableClusteringAtZoom?: number | undefined; /** * maxClusterRadius * * The maximum radius that a cluster will cover from the central marker (in pixels). * Default 80. * Decreasing will make more, smaller clusters. * You can also use a function that accepts the current map zoom * and returns the maximum cluster radius in pixels. */ maxClusterRadius?: number | ((zoom: number) => number) | undefined; /** * polygonOptions * * Options to pass when creating the L.Polygon(points, options) to show the bounds of a cluster. * Defaults to empty, which lets Leaflet use the default Path options. */ polygonOptions?: PolylineOptions | undefined; /** * singleMarkerMode * * If set to true, overrides the icon for all added markers to make them appear as a 1 size cluster. * Note: the markers are not replaced by cluster objects, only their icon is replaced. * Hence they still react to normal events, and option disableClusteringAtZoom does not restore * their previous icon (see #391). */ singleMarkerMode?: boolean | undefined; /** * spiderLegPolylineOptions * * Allows you to specify PolylineOptions to style spider legs. * By default, they are { weight: 1.5, color: '#222', opacity: 0.5 }. */ spiderLegPolylineOptions?: PolylineOptions | undefined; /** * spiderfyDistanceMultiplier * * Increase from 1 to increase the distance away from the center * that spiderfied markers are placed. * Use if you are using big marker icons (Default: 1). */ spiderfyDistanceMultiplier?: number | undefined; /** * iconCreateFunction * * Function used to create the cluster icon. */ iconCreateFunction?: | ((cluster: MarkerCluster) => Icon | DivIcon) | undefined; /** * spiderfyShapePositions * * Function used to override spiderfy default shape positions. */ spiderfyShapePositions?: | ((count: number, centerPt: Point) => Point[]) | undefined; /** * clusterPane * * Map pane where the cluster icons will be added. * Defaults to L.Marker's default (currently 'markerPane'). */ clusterPane?: string | undefined; /** * chunkedLoading * * Boolean to split the addLayers processing in to small intervals * so that the page does not freeze. */ chunkedLoading?: boolean | undefined; /** * chunkInterval * * Time interval (in ms) during which addLayers works before pausing * to let the rest of the page process. * In particular, this prevents the page from freezing while adding a lot of markers. * Defaults to 200ms. */ chunkInterval?: number | undefined; /** * chunkDelay * * Time delay (in ms) between consecutive periods of processing for addLayers. * Default to 50ms. */ chunkDelay?: number | undefined; /** * chunkProgress * * Callback function that is called at the end of each chunkInterval. * Typically used to implement a progress indicator. * Defaults to null. */ chunkProgress?: | ((processed: number, total: number, elapsed: number) => void) | null; /** * children * * Allow to add childrens (Marker) to the MarkerClusterGroup. */ children?: React.ReactNode | null; } } declare const MarkerClusterGroup: ComponentType<MarkerClusterGroupProps>; export default MarkerClusterGroup;