Clustering

Cluster markers

Example with two button which create 1000 markers every click, and other button when is clicked fit map bounds.

<!DOCTYPE html>
<html>
  <head>
    <title>Clustering</title>
    <script src="https://maps.cercalia.com/maps/loader.js?key=YOUR_API_KEY&v=5&lang=en&theme=1976d2"></script>
  </head>
  <body>
    <div id="map" class="map"></div>
    <button id="drawmarkers">Draw markers</button>
    <button id="enableclustering">Enable clustering</button>
    <button id="disableclustering">Disable clustering</button>
    <button id="removemarkers">Remove markers</button>

    <script>
      var map;

      document.addEventListener('cercalia-ready', initMap);

      function initMap() {

        var totalMarkers = [];
        var drawmarkers = document.querySelector('#drawmarkers');
        var enableclustering = document.querySelector('#enableclustering');
        var disableclustering = document.querySelector('#disableclustering');
        var removemarkers = document.querySelector('#removemarkers');

        var map = new cercalia.Map({
          target: 'map'
        });

        drawmarkers.addEventListener('click', function() {
          var arrayMarkers = [];
          for (var i = 0; i < 1000; i++) {
            var marker = new cercalia.Marker({
              position: new cercalia.LonLat((-1 - (Math.random() * 4)), (40 - (Math.random() * 4))),
              popup: new cercalia.Popup({
                title: 'Title',
                content: '<b>Content</b>'
              })
            });
            arrayMarkers.push(marker);
          }

          map.addMarkers(arrayMarkers);

          totalMarkers = totalMarkers.concat(arrayMarkers);
        });

        enableclustering.addEventListener('click', function() {
          map.enableClustering();
        });

        disableclustering.addEventListener('click', function() {
          map.disableClustering();
        });

        removemarkers.addEventListener('click', function() {
          map.removeMarkers(totalMarkers);
        });
      }
    </script>
  </body>
</html>