@@ -17,12 +17,55 @@ import { OnInit } from '@angular/core';
17
17
import { QueryList } from ' @angular/core' ;
18
18
import { SimpleChanges } from ' @angular/core' ;
19
19
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
+
20
45
// @public
21
46
export type AriaLabelFn = (text : string ) => string ;
22
47
23
48
// @public
24
49
export type Calculator = (markers : google .maps .Marker [], clusterIconStylesCount : number ) => ClusterIconInfo ;
25
50
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
+
26
69
// @public
27
70
export interface ClusterIconStyle {
28
71
// (undocumented)
@@ -55,6 +98,36 @@ export interface ClusterIconStyle {
55
98
width: number ;
56
99
}
57
100
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
+
58
131
// @public @deprecated
59
132
export class DeprecatedMapMarkerClusterer implements OnInit , AfterContentInit , OnChanges , OnDestroy {
60
133
constructor (... args : unknown []);
@@ -70,7 +143,7 @@ export class DeprecatedMapMarkerClusterer implements OnInit, AfterContentInit, O
70
143
set calculator(calculator : Calculator );
71
144
// (undocumented)
72
145
set clusterClass(clusterClass : string );
73
- readonly clusterClick: Observable <Cluster >;
146
+ readonly clusterClick: Observable <Cluster_2 >;
74
147
readonly clusteringbegin: Observable <void >;
75
148
readonly clusteringend: Observable <void >;
76
149
// (undocumented)
@@ -86,7 +159,7 @@ export class DeprecatedMapMarkerClusterer implements OnInit, AfterContentInit, O
86
159
// (undocumented)
87
160
getClusterClass(): string ;
88
161
// (undocumented)
89
- getClusters(): Cluster [];
162
+ getClusters(): Cluster_2 [];
90
163
// (undocumented)
91
164
getEnableRetinaIcons(): boolean ;
92
165
// (undocumented)
@@ -125,8 +198,8 @@ export class DeprecatedMapMarkerClusterer implements OnInit, AfterContentInit, O
125
198
set imagePath(imagePath : string );
126
199
// (undocumented)
127
200
set imageSizes(imageSizes : number []);
128
- markerClusterer? : MarkerClusterer ;
129
- readonly markerClustererInitialized: EventEmitter <MarkerClusterer >;
201
+ markerClusterer? : MarkerClusterer_2 ;
202
+ readonly markerClustererInitialized: EventEmitter <MarkerClusterer_2 >;
130
203
// (undocumented)
131
204
_markers: QueryList <MapMarker >;
132
205
// (undocumented)
@@ -604,11 +677,11 @@ export class MapMarker implements OnInit, OnChanges, OnDestroy, MapAnchorPoint,
604
677
// @public
605
678
export class MapMarkerClusterer implements OnInit , OnChanges , OnDestroy {
606
679
algorithm: Algorithm_2 ;
607
- readonly clusterClick: EventEmitter <Cluster_2 >;
680
+ readonly clusterClick: EventEmitter <Cluster >;
608
681
readonly clusteringbegin: Observable <void >;
609
682
readonly clusteringend: Observable <void >;
610
- markerClusterer? : MarkerClusterer_2 ;
611
- readonly markerClustererInitialized: EventEmitter <MarkerClusterer_2 >;
683
+ markerClusterer? : MarkerClusterer ;
684
+ readonly markerClustererInitialized: EventEmitter <MarkerClusterer >;
612
685
// (undocumented)
613
686
_markers: QueryList <MarkerDirective >;
614
687
// (undocumented)
@@ -758,6 +831,55 @@ export class MapTransitLayer implements OnInit, OnDestroy {
758
831
static ɵfac: i0 .ɵɵFactoryDeclaration <MapTransitLayer , never >;
759
832
}
760
833
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
+
761
883
// @public
762
884
export interface MarkerClustererOptions {
763
885
// (undocumented)
@@ -798,6 +920,14 @@ export interface MarkerClustererOptions {
798
920
zoomOnClick? : boolean ;
799
921
}
800
922
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
+
801
931
// (No @packageDocumentation comment for this package)
802
932
803
933
```
0 commit comments