Search code examples
google-mapsgoogle-maps-markers

How to hide the numbers on a cluster marker in Google Maps?


So I have this:

enter image description here

But what I want is this:

enter image description here

I'm pretty sure there should be an option I can specify here:

var options = {
    gridSize: 80,
    imagePath: imagePath ,
    someOption : iAmMissing ??
}
var mc = new MarkerClusterer(map, mapmarkers, options);
google.maps.event.addListener(mc, 'clusteringend', function(){
    setTimeout(fixMyPageOnce, 1);
});

But I can't seem to find an option. Is this the right place or is there another way I can get rid of the numbers in the circles?


Solution

  • Create a custom "calculator" function that sets the "text" property of the return value to "".

    calculator: function(markers, numStyles) {
      var index = 0;
      var count = markers.length.toString();
    
      var dv = count;
      while (dv !== 0) {
        dv = parseInt(dv / 10, 10);
        index++;
      }
    
      index = Math.min(index, numStyles);
      return {
        text: "",
        index: index,
        title: count
      };
    }
    

    proof of concept fiddle

    enter image description here

    code snippet:

    function initialize() {
      var center = new google.maps.LatLng(52.4357808, 4.991315699999973);
      var mapOptions = {
        zoom: 12,
        center: center,
        mapTypeId: google.maps.MapTypeId.TERRAIN
      };
    
      map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
      for (i = 0; i < markers.length; i++) {
        addMarker(markers[i]);
      }
      markerCluster = new MarkerClusterer(map, gmarkers, {
        imagePath: 'https://cdn.rawgit.com/googlemaps/v3-utility-library/master/markerclustererplus/images/m',
        calculator: function(markers, numStyles) {
          var index = 0;
          var title = "";
          var count = markers.length.toString();
    
          var dv = count;
          while (dv !== 0) {
            dv = parseInt(dv / 10, 10);
            index++;
          }
    
          index = Math.min(index, numStyles);
          return {
            text: "",
            index: index,
            title: count
          };
        }
      });
    }
    var gmarkers = [];
    var markers = [];
    var infowindow = new google.maps.InfoWindow({
      content: ''
    });
    var markerCluster;
    
    // Our markers
    markers = [
      ['0', 'Title 1', 52.4357808, 4.991315699999973, 'car'],
      ['1', 'Title 2', 52.4357808, 4.981315699999973, 'third'],
      ['2', 'Title 3', 52.4555687, 5.039231599999994, 'car'],
      ['3', 'Title 4', 52.4555687, 5.029231599999994, 'second']
    ];
    
    function addMarker(marker) {
      var title = marker[1];
      var pos = new google.maps.LatLng(marker[2], marker[3]);
      var content = marker[1];
    
      var marker = new google.maps.Marker({
        title: title,
        position: pos,
        map: map
      });
    
      gmarkers.push(marker);
    
      google.maps.event.addListener(marker, 'click', (function(marker1, content) {
        return function() {
          infowindow.setContent(content);
          infowindow.open(map, marker);
        }
      })(marker, content));
    }
    google.maps.event.addDomListener(window, "load", initialize);
    html,
    body,
    #map-canvas {
      width: 100%;
      height: 100%;
    }
    <script src="https://maps.googleapis.com/maps/api/js?libraries=geometry,places&key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk"></script>
    <script src="https://unpkg.com/@googlemaps/markerclustererplus/dist/index.min.js"></script>
    <div id="map-canvas"></div>