UNPKG

@agmbudik/js-marker-clusterer

Version:

Angular Google Maps (AGM) extension for js-marker-clusterer support

98 lines (97 loc) 2.72 kB
import { Marker, GoogleMap, LatLngBounds } from '@agmbudik/core/services/google-maps-types'; export interface CalculatorResult { text: string; index: number; } export declare type CalculateFunction = (marker: Marker[], count: number) => CalculatorResult; export interface MarkerClustererInstance { zoomOnClick_: boolean; averageCenter_: boolean; imagePath_: string; minimumClusterSize_: number; imageExtension_: string; new (map: GoogleMap, marker: Marker[], options: ClusterOptions): MarkerClustererInstance; addMarker(marker: Marker, noDraw?: boolean): void; addMarkers(markers: Marker[], noDraw?: boolean): void; clearMarkers(): void; getCalculator(): CalculateFunction; getExtendedBounds(bounds: LatLngBounds): LatLngBounds; getGridSize(): number; getMap(): GoogleMap; getMarkers(): Marker[]; getStyles(): ClusterStyle; getTotalClusters(): number; getTotalMarkers(): Marker[]; isZoomOnClick(): boolean; redraw(): void; removeMarker(marker: Marker): boolean; resetViewport(): void; setCalculator(calculator: CalculateFunction): void; setGridSize(size: number): void; setMap(map: GoogleMap): void; setMaxZoom(maxZoom: number): void; setStyles(styles: ClusterStyle): void; } export interface ClusterOptions { /** * The grid size of a cluster in pixels. */ gridSize?: number; /** * The maximum zoom level that a marker can be part of a cluster. */ maxZoom?: number; /** * Whether the default behaviour of clicking on a cluster is to zoom into it. */ zoomOnClick?: boolean; /** * Whether the center of each cluster should be the average of all markers in the cluster. */ averageCenter?: boolean; /** * The minimum number of markers to be in a cluster before the markers are hidden and a count is shown. */ minimumClusterSize?: number; /** * An object that has style properties. */ styles?: ClusterStyle; imagePath?: string; imageExtension?: string; calculator?: any; } export interface ClusterStyle { /** * The image url. */ url?: string; /** * The image height. */ height?: number; /** * The image width. */ width?: number; /** * The anchor position of the label text. */ anchor?: [number, number]; /** * The text color. */ textColor?: string; /** * The text size. */ textSize?: number; /** * The position of the backgound x, y. */ backgroundPosition?: string; /** * The anchor position of the icon x, y. */ iconAnchor?: [number, number]; }