PageSourceSearch

https://creiland.com/wp-content/plugins/bts-properties/public/js/markerclusterer.js?ver=4.5.1

js creiland.com collected 2026-10-06 15:00:22 UTC 22,541 bytes, 624 lines download raw bytes

1function ClusterIcon(a, b) {
2  a.getMarkerClusterer().extend(ClusterIcon, google.maps.OverlayView),
3    (this.cluster_ = a),
4    (this.className_ = a.getMarkerClusterer().getClusterClass()),
5    (this.styles_ = b),
6    (this.center_ = null),
7    (this.div_ = null),
8    (this.sums_ = null),
9    (this.visible_ = !1),
10    this.setMap(a.getMap());
11}
12function Cluster(a) {
13  (this.markerClusterer_ = a),
14    (this.map_ = a.getMap()),
15    (this.gridSize_ = a.getGridSize()),
16    (this.minClusterSize_ = a.getMinimumClusterSize()),
17    (this.averageCenter_ = a.getAverageCenter()),
18    (this.markers_ = []),
19    (this.center_ = null),
20    (this.bounds_ = null),
21    (this.clusterIcon_ = new ClusterIcon(this, a.getStyles()));
22}
23function MarkerClusterer(a, b, c) {
24  this.extend(MarkerClusterer, google.maps.OverlayView),
25    (b = b || []),
26    (c = c || {}),
27    (this.markers_ = []),
28    (this.clusters_ = []),
29    (this.listeners_ = []),
30    (this.activeMap_ = null),
31    (this.ready_ = !1),
32    (this.gridSize_ = c.gridSize || 60),
33    (this.minClusterSize_ = c.minimumClusterSize || 2),
34    (this.maxZoom_ = c.maxZoom || null),
35    (this.styles_ = c.styles || []),
36    (this.title_ = c.title || ""),
37    (this.zoomOnClick_ = !0),
38    void 0 !== c.zoomOnClick && (this.zoomOnClick_ = c.zoomOnClick),
39    (this.averageCenter_ = !1),
40    void 0 !== c.averageCenter && (this.averageCenter_ = c.averageCenter),
41    (this.ignoreHidden_ = !1),
42    void 0 !== c.ignoreHidden && (this.ignoreHidden_ = c.ignoreHidden),
43    (this.enableRetinaIcons_ = !1),
44    void 0 !== c.enableRetinaIcons &&
45      (this.enableRetinaIcons_ = c.enableRetinaIcons),
46    (this.imagePath_ = c.imagePath || MarkerClusterer.IMAGE_PATH),
47    (this.imageExtension_ =
48      c.imageExtension || MarkerClusterer.IMAGE_EXTENSION),
49    (this.imageSizes_ = c.imageSizes || MarkerClusterer.IMAGE_SIZES),
50    (this.calculator_ = c.calculator || MarkerClusterer.CALCULATOR),
51    (this.batchSize_ = c.batchSize || MarkerClusterer.BATCH_SIZE),
52    (this.batchSizeIE_ = c.batchSizeIE || MarkerClusterer.BATCH_SIZE_IE),
53    (this.clusterClass_ = c.clusterClass || "cluster"),
54    navigator.userAgent.toLowerCase().indexOf("msie") !== -1 &&
55      (this.batchSize_ = this.batchSizeIE_),
56    this.setupStyles_(),
57    this.addMarkers(b, !0),
58    this.setMap(a);
59}
60(ClusterIcon.prototype.onAdd = function () {
61  var b,
62    c,
63    a = this;
64  (this.div_ = document.createElement("div")),
65    (this.div_.className = this.className_),
66    this.visible_ && this.show(),
67    this.getPanes().overlayMouseTarget.appendChild(this.div_),
68    (this.boundsChangedListener_ = google.maps.event.addListener(
69      this.getMap(),
70      "bounds_changed",
71      function () {
72        c = b;
73      }
74    )),
75    this.div_.addEventListener("mousedown", function () {
76        (b = !0), (c = !1);
77    }),
78    this.div_.addEventListener("click", function (d) {
79        if (((b = !1), !c)) {
80            var e,
81              f,
82              g = a.cluster_.getMarkerClusterer();
83            google.maps.event.trigger(g, "click", a.cluster_),
84              google.maps.event.trigger(g, "clusterclick", a.cluster_),
85              g.getZoomOnClick() &&
86                ((f = g.getMaxZoom()),
87                (e = a.cluster_.getBounds()),
88                g.getMap().fitBounds(e),
89                setTimeout(function () {
90                  g.getMap().fitBounds(e),
91                    null !== f &&
92                      g.getMap().getZoom() > f &&
93                      g.getMap().setZoom(f + 1);
94                }, 100)),
95              (d.cancelBubble = !0),
96              d.stopPropagation && d.stopPropagation();
97          }
98    }),
99    this.div_.addEventListener("mouseover", function () {
100        var b = a.cluster_.getMarkerClusterer();
101        google.maps.event.trigger(b, "mouseover", a.cluster_);
102    }),
103    this.div_.addEventListener("mouseout", function () {
104        var b = a.cluster_.getMarkerClusterer();
105        google.maps.event.trigger(b, "mouseout", a.cluster_);
106    });
107}),
108  (ClusterIcon.prototype.onRemove = function () {
109    this.div_ &&
110      this.div_.parentNode &&
111      (this.hide(),
112      google.maps.event.removeListener(this.boundsChangedListener_),
113      google.maps.event.clearInstanceListeners(this.div_),
114      this.div_.parentNode.removeChild(this.div_),
115      (this.div_ = null));
116  }),
117  (ClusterIcon.prototype.draw = function () {
118    if (this.visible_) {
119      var a = this.getPosFromLatLng_(this.center_);
120      (this.div_.style.top = a.y + "px"), (this.div_.style.left = a.x + "px");
121    }
122  }),
123  (ClusterIcon.prototype.hide = function () {
124    this.div_ && (this.div_.style.display = "none"), (this.visible_ = !1);
125  }),
126  (ClusterIcon.prototype.show = function () {
127    if (this.div_) {
128      var a = "",
129        b = this.backgroundPosition_.split(" "),
130        c = parseInt(b[0].replace(/^\s+|\s+$/g, ""), 10),
131        d = parseInt(b[1].replace(/^\s+|\s+$/g, ""), 10),
132        e = this.getPosFromLatLng_(this.center_);
133      (this.div_.style.cssText = this.createCss(e)),
134        (a =
135          "<img src='" +
136          this.url_ +
137          "' style='position: absolute; top: " +
138          d +
139          "px; left: " +
140          c +
141          "px; "),
142        this.cluster_.getMarkerClusterer().enableRetinaIcons_ ||
143          (a +=
144            "clip: rect(" +
145            -1 * d +
146            "px, " +
147            (-1 * c + this.width_) +
148            "px, " +
149            (-1 * d + this.height_) +
150            "px, " +
151            -1 * c +
152            "px);"),
153        (a += "'>"),
154        (this.div_.innerHTML =
155          a +
156          "<div class='cluster' style='position: absolute;top: " +
157          this.anchorText_[0] +
158          "px;left: " +
159          this.anchorText_[1] +
160          "px;color: " +
161          this.textColor_ +
162          ";font-size: " +
163          this.textSize_ +
164          "px;font-family: " +
165          this.fontFamily_ +
166          ";font-weight: " +
167          this.fontWeight_ +
168          ";font-style: " +
169          this.fontStyle_ +
170          ";text-decoration: " +
171          this.textDecoration_ +
172          ";text-align: center;width: " +
173          this.width_ +
174          "px;line-height:" +
175          this.height_ +
176          "px;'>" +
177          this.sums_.text +
178          "</div>"),
179        "undefined" == typeof this.sums_.title || "" === this.sums_.title
180          ? (this.div_.title = this.cluster_.getMarkerClusterer().getTitle())
181          : (this.div_.title = this.sums_.title),
182        (this.div_.style.display = "");
183    }
184    this.visible_ = !0;
185  }),
186  (ClusterIcon.prototype.useStyle = function (a) {
187    this.sums_ = a;
188    var b = Math.max(0, a.index - 1);
189    b = Math.min(this.styles_.length - 1, b);
190    var c = this.styles_[b];
191    (this.url_ = c.url),
192      (this.height_ = c.height),
193      (this.width_ = c.width),
194      (this.anchorText_ = c.anchorText || [0, 0]),
195      (this.anchorIcon_ = c.anchorIcon || [
196        parseInt(this.height_ / 2, 10),
197        parseInt(this.width_ / 2, 10),
198      ]),
199      (this.textColor_ = c.textColor || "black"),
200      (this.textSize_ = c.textSize || 11),
201      (this.textDecoration_ = c.textDecoration || "none"),
202      (this.fontWeight_ = c.fontWeight || "bold"),
203      (this.fontStyle_ = c.fontStyle || "normal"),
204      (this.fontFamily_ = c.fontFamily || "Arial,sans-serif"),
205      (this.backgroundPosition_ = c.backgroundPosition || "0 0");
206  }),
207  (ClusterIcon.prototype.setCenter = function (a) {
208    this.center_ = a;
209  }),
210  (ClusterIcon.prototype.createCss = function (a) {
211    var b = [];
212    return (
213      b.push("cursor: pointer;"),
214      b.push("position: absolute; top: " + a.y + "px; left: " + a.x + "px;"),
215      b.push("width: " + this.width_ + "px; height: " + this.height_ + "px;"),
216      b.join("")
217    );
218  }),
219  (ClusterIcon.prototype.getPosFromLatLng_ = function (a) {
220    var b = this.getProjection().fromLatLngToDivPixel(a);
221    return (
222      (b.x -= this.anchorIcon_[1]),
223      (b.y -= this.anchorIcon_[0]),
224      (b.x = parseInt(b.x, 10)),
225      (b.y = parseInt(b.y, 10)),
226      b
227    );
228  }),
229  (Cluster.prototype.getSize = function () {
230    return this.markers_.length;
231  }),
232  (Cluster.prototype.getMarkers = function () {
233    return this.markers_;
234  }),
235  (Cluster.prototype.getCenter = function () {
236    return this.center_;
237  }),
238  (Cluster.prototype.getMap = function () {
239    return this.map_;
240  }),
241  (Cluster.prototype.getMarkerClusterer = function () {
242    return this.markerClusterer_;
243  }),
244  (Cluster.prototype.getBounds = function () {
245    var a,
246      b = new google.maps.LatLngBounds(this.center_, this.center_),
247      c = this.getMarkers();
248    for (a = 0; a < c.length; a++) b.extend(c[a].getPosition());
249    return b;
250  }),
251  (Cluster.prototype.remove = function () {
252    this.clusterIcon_.setMap(null), (this.markers_ = []), delete this.markers_;
253  }),
254  (Cluster.prototype.addMarker = function (a) {
255    var b, c, d;
256    if (this.isMarkerAlreadyAdded_(a)) return !1;
257    if (this.center_) {
258      if (this.averageCenter_) {
259        var e = this.markers_.length + 1,
260          f = (this.center_.lat() * (e - 1) + a.getPosition().lat()) / e,
261          g = (this.center_.lng() * (e - 1) + a.getPosition().lng()) / e;
262        (this.center_ = new google.maps.LatLng(f, g)), this.calculateBounds_();
263      }
264    } else (this.center_ = a.getPosition()), this.calculateBounds_();
265    if (
266      ((a.isAdded = !0),
267      this.markers_.push(a),
268      (c = this.markers_.length),
269      (d = this.markerClusterer_.getMaxZoom()),
270      null !== d && this.map_.getZoom() > d)
271    )
272      a.getMap() !== this.map_ && a.setMap(this.map_);
273    else if (c < this.minClusterSize_)
274      a.getMap() !== this.map_ && a.setMap(this.map_);
275    else if (c === this.minClusterSize_)
276      for (b = 0; b < c; b++) this.markers_[b].setMap(null);
277    else a.setMap(null);
278    return this.updateIcon_(), !0;
279  }),
280  (Cluster.prototype.isMarkerInClusterBounds = function (a) {
281    return this.bounds_.contains(a.getPosition());
282  }),
283  (Cluster.prototype.calculateBounds_ = function () {
284    var a = new google.maps.LatLngBounds(this.center_, this.center_);
285    this.bounds_ = this.markerClusterer_.getExtendedBounds(a);
286  }),
287  (Cluster.prototype.updateIcon_ = function () {
288    var a = this.markers_.length,
289      b = this.markerClusterer_.getMaxZoom();
290    if (null !== b && this.map_.getZoom() > b)
291      return void this.clusterIcon_.hide();
292    if (a < this.minClusterSize_) return void this.clusterIcon_.hide();
293    var c = this.markerClusterer_.getStyles().length,
294      d = this.markerClusterer_.getCalculator()(this.markers_, c);
295    this.clusterIcon_.setCenter(this.center_),
296      this.clusterIcon_.useStyle(d),
297      this.clusterIcon_.show();
298  }),
299  (Cluster.prototype.isMarkerAlreadyAdded_ = function (a) {
300    var b;
301    if (this.markers_.indexOf) return this.markers_.indexOf(a) !== -1;
302    for (b = 0; b < this.markers_.length; b++)
303      if (a === this.markers_[b]) return !0;
304    return !1;
305  }),
306  (MarkerClusterer.prototype.onAdd = function () {
307    var a = this;
308    (this.activeMap_ = this.getMap()),
309      (this.ready_ = !0),
310      this.repaint(),
311      (this.listeners_ = [
312        google.maps.event.addListener(
313          this.getMap(),
314          "zoom_changed",
315          function () {
316            a.resetViewport_(!1),
317              (this.getZoom() !== (this.get("minZoom") || 0) &&
318                this.getZoom() !== this.get("maxZoom")) ||
319                google.maps.event.trigger(this, "idle");
320          }
321        ),
322        google.maps.event.addListener(this.getMap(), "idle", function () {
323          a.redraw_();
324        }),
325      ]);
326  }),
327  (MarkerClusterer.prototype.onRemove = function () {
328    var a;
329    for (a = 0; a < this.markers_.length; a++)
330      this.markers_[a].getMap() !== this.activeMap_ &&
331        this.markers_[a].setMap(this.activeMap_);
332    for (a = 0;
332 a < this.clusters_.length; a++) this.clusters_[a].remove();
333    for (this.clusters_ = [], a = 0; a < this.listeners_.length; a++)
334      google.maps.event.removeListener(this.listeners_[a]);
335    (this.listeners_ = []), (this.activeMap_ = null), (this.ready_ = !1);
336  }),
337  (MarkerClusterer.prototype.draw = function () {}),
338  (MarkerClusterer.prototype.setupStyles_ = function () {
339    var a, b;
340    if (!(this.styles_.length > 0))
341      for (a = 0; a < this.imageSizes_.length; a++)
342        (b = this.imageSizes_[a]),
343          this.styles_.push({
344            url: this.imagePath_ + (a + 1) + "." + this.imageExtension_,
345            height: b,
346            width: b,
347          });
348  }),
349  (MarkerClusterer.prototype.fitMapToMarkers = function () {
350    var a,
351      b = this.getMarkers(),
352      c = new google.maps.LatLngBounds();
353    for (a = 0; a < b.length; a++) c.extend(b[a].getPosition());
354    this.getMap().fitBounds(c);
355  }),
356  (MarkerClusterer.prototype.getGridSize = function () {
357    return this.gridSize_;
358  }),
359  (MarkerClusterer.prototype.setGridSize = function (a) {
360    this.gridSize_ = a;
361  }),
362  (MarkerClusterer.prototype.getMinimumClusterSize = function () {
363    return this.minClusterSize_;
364  }),
365  (MarkerClusterer.prototype.setMinimumClusterSize = function (a) {
366    this.minClusterSize_ = a;
367  }),
368  (MarkerClusterer.prototype.getMaxZoom = function () {
369    return this.maxZoom_;
370  }),
371  (MarkerClusterer.prototype.setMaxZoom = function (a) {
372    this.maxZoom_ = a;
373  }),
374  (MarkerClusterer.prototype.getStyles = function () {
375    return this.styles_;
376  }),
377  (MarkerClusterer.prototype.setStyles = function (a) {
378    this.styles_ = a;
379  }),
380  (MarkerClusterer.prototype.getTitle = function () {
381    return this.title_;
382  }),
383  (MarkerClusterer.prototype.setTitle = function (a) {
384    this.title_ = a;
385  }),
386  (MarkerClusterer.prototype.getZoomOnClick = function () {
387    return this.zoomOnClick_;
388  }),
389  (MarkerClusterer.prototype.setZoomOnClick = function (a) {
390    this.zoomOnClick_ = a;
391  }),
392  (MarkerClusterer.prototype.getAverageCenter = function () {
393    return this.averageCenter_;
394  }),
395  (MarkerClusterer.prototype.setAverageCenter = function (a) {
396    this.averageCenter_ = a;
397  }),
398  (MarkerClusterer.prototype.getIgnoreHidden = function () {
399    return this.ignoreHidden_;
400  }),
401  (MarkerClusterer.prototype.setIgnoreHidden = function (a) {
402    this.ignoreHidden_ = a;
403  }),
404  (MarkerClusterer.prototype.getEnableRetinaIcons = function () {
405    return this.enableRetinaIcons_;
406  }),
407  (MarkerClusterer.prototype.setEnableRetinaIcons = function (a) {
408    this.enableRetinaIcons_ = a;
409  }),
410  (MarkerClusterer.prototype.getImageExtension = function () {
411    return this.imageExtension_;
412  }),
413  (MarkerClusterer.prototype.setImageExtension = function (a) {
414    this.imageExtension_ = a;
415  }),
416  (MarkerClusterer.prototype.getImagePath = function () {
417    return this.imagePath_;
418  }),
419  (MarkerClusterer.prototype.setImagePath = function (a) {
420    this.imagePath_ = a;
421  }),
422  (MarkerClusterer.prototype.getImageSizes = function () {
423    return this.imageSizes_;
424  }),
425  (MarkerClusterer.prototype.setImageSizes = function (a) {
426    this.imageSizes_ = a;
427  }),
428  (MarkerClusterer.prototype.getCalculator = function () {
429    return this.calculator_;
430  }),
431  (MarkerClusterer.prototype.setCalculator = function (a) {
432    this.calculator_ = a;
433  }),
434  (MarkerClusterer.prototype.getBatchSizeIE = function () {
435    return this.batchSizeIE_;
436  }),
437  (MarkerClusterer.prototype.setBatchSizeIE = function (a) {
438    this.batchSizeIE_ = a;
439  }),
440  (MarkerClusterer.prototype.getClusterClass = function () {
441    return this.clusterClass_;
442  }),
443  (MarkerClusterer.prototype.setClusterClass = function (a) {
444    this.clusterClass_ = a;
445  }),
446  (MarkerClusterer.prototype.getMarkers = function () {
447    return this.markers_;
448  }),
449  (MarkerClusterer.prototype.getTotalMarkers = function () {
450    return this.markers_.length;
451  }),
452  (MarkerClusterer.prototype.getClusters = function () {
453    return this.clusters_;
454  }),
455  (MarkerClusterer.prototype.getTotalClusters = function () {
456    return this.clusters_.length;
457  }),
458  (MarkerClusterer.prototype.addMarker = function (a, b) {
459    this.pushMarkerTo_(a), b || this.redraw_();
460  }),
461  (MarkerClusterer.prototype.addMarkers = function (a, b) {
462    var c;
463    for (c in a) a.hasOwnProperty(c) && this.pushMarkerTo_(a[c]);
464    b || this.redraw_();
465  }),
466  (MarkerClusterer.prototype.pushMarkerTo_ = function (a) {
467    if (a.getDraggable()) {
468      var b = this;
469      google.maps.event.addListener(a, "dragend", function () {
470        b.ready_ && ((this.isAdded = !1), b.repaint());
471      });
472    }
473    (a.isAdded = !1), this.markers_.push(a);
474  }),
475  (MarkerClusterer.prototype.removeMarker = function (a, b) {
476    var c = this.removeMarker_(a);
477    return !b && c && this.repaint(), c;
478  }),
479  (MarkerClusterer.prototype.removeMarkers = function (a, b) {
480    var c,
481      d,
482      e = !1;
483    for (c = 0; c < a.length; c++) (d = this.removeMarker_(a[c])), (e = e || d);
484    return !b && e && this.repaint(), e;
485  }),
486  (MarkerClusterer.prototype.removeMarker_ = function (a) {
487    var b,
488      c = -1;
489    if (this.markers_.indexOf) c = this.markers_.indexOf(a);
490    else
491      for (b = 0; b < this.markers_.length; b++)
492        if (a === this.markers_[b]) {
493          c = b;
494          break;
495        }
496    return c !== -1 && (a.setMap(null), this.markers_.splice(c, 1), !0);
497  }),
498  (MarkerClusterer.prototype.clearMarkers = function () {
499    this.resetViewport_(!0), (this.markers_ = []);
500  }),
501  (MarkerClusterer.prototype.repaint = function () {
502    var a = this.clusters_.slice();
503    (this.clusters_ = []),
504      this.resetViewport_(!1),
505      this.redraw_(),
506      setTimeout(function () {
507        var b;
508        for (b = 0; b < a.length; b++) a[b].remove();
509      }, 0);
510  }),
511  (MarkerClusterer.prototype.getExtendedBounds = function (a) {
512    var b = this.getProjection(),
513      c = new google.maps.LatLng(
514        a.getNorthEast().lat(),
515        a.getNorthEast().lng()
516      ),
517      d = new google.maps.LatLng(
518        a.getSouthWest().lat(),
519        a.getSouthWest().lng()
520      ),
521      e = b.fromLatLngToDivPixel(c);
522    (e.x += this.gridSize_), (e.y -= this.gridSize_);
523    var f = b.fromLatLngToDivPixel(d);
524    (f.x -= this.gridSize_), (f.y += this.gridSize_);
525    var g = b.fromDivPixelToLatLng(e),
526      h = b.fromDivPixelToLatLng(f);
527    return a.extend(g), a.extend(h), a;
528  }),
529  (MarkerClusterer.prototype.redraw_ = function () {
530    this.createClusters_(0);
531  }),
532  (MarkerClusterer.prototype.resetViewport_ = function (a) {
533    var b, c;
534    for (b = 0; b < this.clusters_.length; b++) this.clusters_[b].remove();
535    for (this.clusters_ = [], b = 0; b < this.markers_.length; b++)
536      (c = this.markers_[b]), (c.isAdded = !1), a && c.setMap(null);
537  }),
538  (MarkerClusterer.prototype.distanceBetweenPoints_ = function (a, b) {
539    var c = 6371,
540      d = ((b.lat() - a.lat()) * Math.PI) / 180,
541      e = ((b.lng() - a.lng()) * Math.PI) / 180,
542      f =
543        Math.sin(d / 2) * Math.sin(d / 2) +
544        Math.cos((a.lat() * Math.PI) / 180) *
545          Math.cos((b.lat() * Math.PI) / 180) *
546          Math.sin(e / 2) *
547          Math.sin(e / 2),
548      g = 2 * Math.atan2(Math.sqrt(f), Math.sqrt(1 - f)),
549      h = c * g;
550    return h;
551  }),
552  (MarkerClusterer.prototype.isMarkerInBounds_ = function (a, b) {
553    return b.contains(a.getPosition());
554  }),
555  (MarkerClusterer.prototype.addToClosestCluster_ = function (a) {
556    var b,
557      c,
558      d,
559      e,
560      f = 4e4,
561      g = null;
562    for (b = 0; b < this.clusters_.length; b++)
563      (d = this.clusters_[b]),
564        (e = d.getCenter()),
565        e &&
566          ((c = this.distanceBetweenPoints_(e, a.getPosition())),
567          c < f && ((f = c), (g = d)));
568    g && g.isMarkerInClusterBounds(a)
569      ? g.addMarker(a)
570      : ((d = new Cluster(this)), d.addMarker(a), this.clusters_.push(d));
571  }),
572  (MarkerClusterer.prototype.createClusters_ = function (a) {
573    var b,
574      c,
575      d,
576      e = this;
577    if (this.ready_) {
578      0 === a &&
579        (google.maps.event.trigger(this, "clusteringbegin", this),
580        "undefined" != typeof this.timerRefStatic &&
581          (clearTimeout(this.timerRefStatic), delete this.timerRefStatic)),
582        (d =
583          this.getMap().getZoom() > 3
584            ? new google.maps.LatLngBounds(
585                this.getMap().getBounds().getSouthWest(),
586                this.getMap().getBounds().getNorthEast()
587              )
588            : new google.maps.LatLngBounds(
589                new google.maps.LatLng(85.02070771743472, -178.48388434375),
590                new google.maps.LatLng(-85.08136444384544, 178.00048865625)
591              ));
592      var f = this.getExtendedBounds(d),
593        g = Math.min(a + this.batchSize_, this.markers_.length);
594      for (b = a; b < g; b++)
595        (c = this.markers_[b]),
596          !c.isAdded &&
597            this.isMarkerInBounds_(c, f) &&
598            (!this.ignoreHidden_ || (this.ignoreHidden_ && c.getVisible())) &&
599            this.addToClosestCluster_(c);
600      g < this.markers_.length
601        ? (this.timerRefStatic = setTimeout(function () {
602            e.createClusters_(g);
603          }, 0))
604        : (delete this.timerRefStatic,
605          google.maps.event.trigger(this, "clusteringend", this));
606    }
607  }),
608  (MarkerClusterer.prototype.extend = function (a, b) {
609    return function (a) {
610      var b;
611      for (b in a.prototype) this.prototype[b] = a.prototype[b];
612      return this;
613    }.apply(a, [b]);
614  }),
615  (MarkerClusterer.CALCULATOR = function (a, b) {
616    for (var c = 0, d = "", e = a.length.toString(), f = e; 0 !== f; )
617      (f = parseInt(f / 10, 10)), c++;
618    return (c = Math.min(c, b)), { text: e, index: c, title: d };
619  }),
620  (MarkerClusterer.BATCH_SIZE = 2e3),
621  (MarkerClusterer.BATCH_SIZE_IE = 500),
622  (MarkerClusterer.IMAGE_PATH = "../images/m"),
623  (MarkerClusterer.IMAGE_EXTENSION = "png"),
624  (MarkerClusterer.IMAGE_SIZES = [53, 56, 66, 78, 90]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.