@@ -17,12 +17,55 @@ import { OnInit } from '@angular/core';
1717import { QueryList } from ' @angular/core' ;
1818import { SimpleChanges } from ' @angular/core' ;
1919
20+ // @public (undocumented)
21+ interface Algorithm_2 {
22+ calculate: ({ markers, map }: AlgorithmInput ) => AlgorithmOutput ;
23+ }
24+ export { Algorithm_2 as Algorithm }
25+
26+ // @public (undocumented)
27+ export interface AlgorithmInput {
28+ map: google .maps .Map ;
29+ mapCanvasProjection: google .maps .MapCanvasProjection ;
30+ markers: Marker [];
31+ }
32+
33+ // @public (undocumented)
34+ export interface AlgorithmOptions {
35+ // (undocumented)
36+ maxZoom? : number ;
37+ }
38+
39+ // @public (undocumented)
40+ export interface AlgorithmOutput {
41+ changed? : boolean ;
42+ clusters: Cluster [];
43+ }
44+
2045// @public
2146export type AriaLabelFn = (text : string ) => string ;
2247
2348// @public
2449export type Calculator = (markers : google .maps .Marker [], clusterIconStylesCount : number ) => ClusterIconInfo ;
2550
51+ // @public (undocumented)
52+ export class Cluster {
53+ constructor ({ markers , position }: ClusterOptions );
54+ // (undocumented)
55+ get bounds(): google .maps .LatLngBounds | undefined ;
56+ get count(): number ;
57+ delete(): void ;
58+ // (undocumented)
59+ marker? : Marker ;
60+ // (undocumented)
61+ readonly markers? : Marker [];
62+ // (undocumented)
63+ get position(): google .maps .LatLng ;
64+ // (undocumented)
65+ protected _position: google .maps .LatLng ;
66+ push(marker : Marker ): void ;
67+ }
68+
2669// @public
2770export interface ClusterIconStyle {
2871 // (undocumented)
@@ -55,6 +98,36 @@ export interface ClusterIconStyle {
5598 width: number ;
5699}
57100
101+ // @public (undocumented)
102+ export interface ClusterOptions {
103+ // (undocumented)
104+ markers? : Marker [];
105+ // (undocumented)
106+ position? : google .maps .LatLng | google .maps .LatLngLiteral ;
107+ }
108+
109+ // @public (undocumented)
110+ export class ClusterStats {
111+ constructor (markers : Marker [], clusters : Cluster []);
112+ // (undocumented)
113+ readonly clusters: {
114+ count: number ;
115+ markers: {
116+ mean: number ;
117+ sum: number ;
118+ min: number ;
119+ max: number ;
120+ };
121+ };
122+ // (undocumented)
123+ readonly markers: {
124+ sum: number ;
125+ };
126+ }
127+
128+ // @public (undocumented)
129+ export const defaultOnClusterClickHandler: onClusterClickHandler ;
130+
58131// @public @deprecated
59132export class DeprecatedMapMarkerClusterer implements OnInit , AfterContentInit , OnChanges , OnDestroy {
60133 constructor (... args : unknown []);
@@ -70,7 +143,7 @@ export class DeprecatedMapMarkerClusterer implements OnInit, AfterContentInit, O
70143 set calculator(calculator : Calculator );
71144 // (undocumented)
72145 set clusterClass(clusterClass : string );
73- readonly clusterClick: Observable <Cluster >;
146+ readonly clusterClick: Observable <Cluster_2 >;
74147 readonly clusteringbegin: Observable <void >;
75148 readonly clusteringend: Observable <void >;
76149 // (undocumented)
@@ -86,7 +159,7 @@ export class DeprecatedMapMarkerClusterer implements OnInit, AfterContentInit, O
86159 // (undocumented)
87160 getClusterClass(): string ;
88161 // (undocumented)
89- getClusters(): Cluster [];
162+ getClusters(): Cluster_2 [];
90163 // (undocumented)
91164 getEnableRetinaIcons(): boolean ;
92165 // (undocumented)
@@ -125,8 +198,8 @@ export class DeprecatedMapMarkerClusterer implements OnInit, AfterContentInit, O
125198 set imagePath(imagePath : string );
126199 // (undocumented)
127200 set imageSizes(imageSizes : number []);
128- markerClusterer? : MarkerClusterer ;
129- readonly markerClustererInitialized: EventEmitter <MarkerClusterer >;
201+ markerClusterer? : MarkerClusterer_2 ;
202+ readonly markerClustererInitialized: EventEmitter <MarkerClusterer_2 >;
130203 // (undocumented)
131204 _markers: QueryList <MapMarker >;
132205 // (undocumented)
@@ -604,11 +677,11 @@ export class MapMarker implements OnInit, OnChanges, OnDestroy, MapAnchorPoint,
604677// @public
605678export class MapMarkerClusterer implements OnInit , OnChanges , OnDestroy {
606679 algorithm: Algorithm_2 ;
607- readonly clusterClick: EventEmitter <Cluster_2 >;
680+ readonly clusterClick: EventEmitter <Cluster >;
608681 readonly clusteringbegin: Observable <void >;
609682 readonly clusteringend: Observable <void >;
610- markerClusterer? : MarkerClusterer_2 ;
611- readonly markerClustererInitialized: EventEmitter <MarkerClusterer_2 >;
683+ markerClusterer? : MarkerClusterer ;
684+ readonly markerClustererInitialized: EventEmitter <MarkerClusterer >;
612685 // (undocumented)
613686 _markers: QueryList <MarkerDirective >;
614687 // (undocumented)
@@ -758,6 +831,55 @@ export class MapTransitLayer implements OnInit, OnDestroy {
758831 static ɵfac: i0 .ɵɵFactoryDeclaration <MapTransitLayer , never >;
759832}
760833
834+ // @public (undocumented)
835+ export class MarkerClusterer extends google .maps .OverlayView {
836+ constructor ({ map , markers , algorithmOptions , algorithm , renderer , onClusterClick , }: MarkerClustererOptions_2 );
837+ // (undocumented)
838+ addMarker(marker : Marker , noDraw ? : boolean ): void ;
839+ // (undocumented)
840+ addMarkers(markers : Marker [], noDraw ? : boolean ): void ;
841+ // (undocumented)
842+ protected algorithm: Algorithm_2 ;
843+ // (undocumented)
844+ clearMarkers(noDraw ? : boolean ): void ;
845+ // (undocumented)
846+ protected clusters: Cluster [];
847+ // (undocumented)
848+ protected idleListener: google .maps .MapsEventListener ;
849+ // (undocumented)
850+ protected map: google .maps .Map | null ;
851+ // (undocumented)
852+ protected markers: Marker [];
853+ // (undocumented)
854+ onAdd(): void ;
855+ // (undocumented)
856+ onClusterClick: onClusterClickHandler ;
857+ // (undocumented)
858+ onRemove(): void ;
859+ // (undocumented)
860+ removeMarker(marker : Marker , noDraw ? : boolean ): boolean ;
861+ // (undocumented)
862+ removeMarkers(markers : Marker [], noDraw ? : boolean ): boolean ;
863+ // (undocumented)
864+ render(): void ;
865+ // (undocumented)
866+ protected renderClusters(): void ;
867+ // (undocumented)
868+ protected renderer: Renderer ;
869+ // (undocumented)
870+ protected reset(): void ;
871+ }
872+
873+ // @public (undocumented)
874+ export enum MarkerClustererEvents {
875+ // (undocumented)
876+ CLUSTER_CLICK = " click" ,
877+ // (undocumented)
878+ CLUSTERING_BEGIN = " clusteringbegin" ,
879+ // (undocumented)
880+ CLUSTERING_END = " clusteringend"
881+ }
882+
761883// @public
762884export interface MarkerClustererOptions {
763885 // (undocumented)
@@ -798,6 +920,14 @@ export interface MarkerClustererOptions {
798920 zoomOnClick? : boolean ;
799921}
800922
923+ // @public (undocumented)
924+ export type onClusterClickHandler = (event : google .maps .MapMouseEvent , cluster : Cluster , map : google .maps .Map ) => void ;
925+
926+ // @public (undocumented)
927+ export interface Renderer {
928+ render(cluster : Cluster , stats : ClusterStats , map : google .maps .Map ): Marker ;
929+ }
930+
801931// (No @packageDocumentation comment for this package)
802932
803933```
0 commit comments