title: Disable Zoom in Google Marker
body: <p>I've no idea about editing .js but we have a requirement where if a user clicks on a city (ex: New York) it should not drill down.
  If I click a cluster it should zoom in but if I click a marker it should stay same. I've tried editing it but as I'm not proficient I couldn't make it work.
  <strong>Below is the .js script for extension</strong></p>
  
  <pre><code>function map_init() {
  
  Qva.AddExtension('GoogleMaps - Cluster', function() {
  
      var _this = this;
      var divName = _this.Layout.ObjectId.replace("\\", "_");
      var popupLabels = _this.Layout.Text0.text;
      var gSize = _this.Layout.Text1.text;
      var mZoom = _this.Layout.Text2.text;
      var disableStyles = _this.Layout.Text3.text;
      var markers = [];
      var infoList = [];
      var latlngbounds = new google.maps.LatLngBounds();
  
      var styles = [{
          "featureType": "landscape",
          "stylers": [{
              "saturation": -100
          }, {
              "lightness": 65
          }, {
              "visibility": "on"
          }]
      }, {
          "featureType": "poi",
          "stylers": [{
              "saturation": -100
          }, {
              "lightness": 51
          }, {
              "visibility": "simplified"
          }]
      }, {
          "featureType": "road.highway",
          "stylers": [{
              "saturation": -100
          }, {
              "visibility": "simplified"
          }]
      }, {
          "featureType": "road.arterial",
          "stylers": [{
              "saturation": -100
          }, {
              "lightness": 30
          }, {
              "visibility": "on"
          }]
      }, {
          "featureType": "road.local",
          "stylers": [{
              "saturation": -100
          }, {
              "lightness": 40
          }, {
              "visibility": "on"
          }]
      }, {
          "featureType": "transit",
          "stylers": [{
              "saturation": -100
          }, {
              "visibility": "simplified"
          }]
      }, {
          "featureType": "administrative.province",
          "stylers": [{
              "visibility": "off"
          }]
      }, {
          "featureType": "water",
          "elementType": "labels",
          "stylers": [{
              "visibility": "on"
          }, {
              "lightness": -25
          }, {
              "saturation": -100
          }]
      }, {
          "featureType": "water",
          "elementType": "geometry",
          "stylers": [{
              "hue": "#ffff00"
          }, {
              "lightness": -25
          }, {
              "saturation": -97
          }]
      }]
  
      if (this.Element.children.length === 0) {
          var ui = document.createElement("div");
          ui.setAttribute("id", divName);
          this.Element.appendChild(ui);
          $("#" + divName).css("height", _this.GetHeight() + "px").css("width", _this.GetWidth() + "px");
      } else {
          $("#" + divName).css("height", _this.GetHeight() + "px").css("width", _this.GetWidth() + "px");
          $("#" + divName).empty();
      };
  
  
      var styledMap = new google.maps.StyledMapType(styles, {
          name: "Grayscale"
      });
      var mapOptions = {
          panControl: true,
          zoomControl: true,
          overviewMapControl: false,
          overviewMapControlOptions: {
              opened: false
          },
          scaleControl: false,
          streetViewControl: true,
          mapTypeControlOptions: {
              mapTypeIds: [google.maps.MapTypeId.ROADMAP, 'map_style']
          }
      };
      var map = new google.maps.Map(document.getElementById(divName), mapOptions);
  
      map.mapTypes.set('map_style', styledMap);
  
      var reg = /\.(gif|jpg|jpeg|tiff|png|bmp)$/;
      var rowreg = _this.Data.Rows[0];
  
      if (reg.test(rowreg[4].text)) {
          for (var i = 0, k = _this.Data.Rows.length; i &lt; k; i++) {
              var row = _this.Data.Rows[i];
              var val = parseFloat(row[0].text);
              var val2 = parseFloat(row[1].text);
              console.log(val, val2)
              if (val != NaN &amp;&amp; val != '' &amp;&amp; val &lt;= 90 &amp;&amp; val &gt;= -90 &amp;&amp; val2 != NaN &amp;&amp; val2 != '' &amp;&amp; val2 &lt;= 180 &amp;&amp; val &gt;= -180) {
                  var latLng = new google.maps.LatLng(val, val2);
                  var marker = new google.maps.Marker({
                      position: latLng,
                      title: '',
                      icon: row[4].text,
                      customData: row[2].text
                  });
  
                  if (popupLabels === 1) {
  
                      marker.infoWindow = new google.maps.InfoWindow({
                          content: row[3].text
                      });
  
                      google.maps.event.addListener(marker, 'mouseover', function() {
                          infoList.push(this);
                          this.infoWindow.open(map, this);
                      });
  
                      google.maps.event.addListener(marker, 'mouseout', function() {
                          infoList.push(this);
                          this.infoWindow.close();
                      });
                  };
  
                  google.maps.event.addListener(marker, 'click', (function(lat, lng) {
                      return function() {
                          _this.Data.SearchColumn(0, lat, false);
                          _this.Data.SearchColumn(1, lng, true)
                      }
                  })(val, val2));
                  latlngbounds.extend(latLng);
                  markers.push(marker);
              }
          };
      } else {
  
          for (var i = 0, k = _this.Data.Rows.length; i &lt; k; i++) {
              var row = _this.Data.Rows[i];
              var val = parseFloat(row[0].text);
              var val2 = parseFloat(row[1].text);
              if (val != NaN &amp;&amp; val != '' &amp;&amp; val &lt;= 90 &amp;&amp; val &gt;= -90 &amp;&amp; val2 != NaN &amp;&amp; val2 != '' &amp;&amp; val2 &lt;= 180 &amp;&amp; val &gt;= -180) {
                  var latLng = new google.maps.LatLng(val, val2);
                  var marker = new google.maps.Marker({
                      position: latLng,
                      title: '',
                      customData: row[2].text
                  });
  
                  if (popupLabels === 1) {
  
                      marker.infoWindow = new google.maps.InfoWindow({
                          content: row[3].text
                      });
  
                      google.maps.event.addListener(marker, 'mouseover', function() {
                          infoList.push(this);
                          this.infoWindow.open(map, this);
                      });
  
                      google.maps.event.addListener(marker, 'mouseout', function() {
                          infoList.push(this);
                          this.infoWindow.close();
                      });
                  };
              }
              google.maps.event.addListener(marker, 'click', (function(lat, lng) {
                  return function() {
                      _this.Data.SearchColumn(0, lat, false);
                      _this.Data.SearchColumn(1, lng, true)
                  }
              })(val, val2));
              latlngbounds.extend(latLng);
              markers.push(marker);
          };
      }
  
      //map.setCenter(latlngbounds.getCenter());
      map.fitBounds(latlngbounds);
      if(disableStyles) {
          var clusterStyles = [{
              opt_textColor: 'black',
              url: Qva.Remote + '?public=only&amp;name=Extensions/' + encodeURIComponent('GoogleMaps - Cluster') + '/singlecluster.png',
              height: 56,
              width: 55
  
  
      var mcOptions = {
          gridSize: gSize,
          styles: clusterStyles,
          maxZoom: mZoom
      };
  
      var markerCluster = new MarkerClusterer(map, markers, mcOptions);
      markerCluster.setCalculator(function(markers, clusterStyles) {
  
          var index = 0,
              count = markers.length,
              total = count;
  
          while (total !== 0) {
              //Create a new total by dividing by a set number
              total = parseInt(total / 5, 10);
              //Increase the index and move up to the next style
              index++;
          }
          index = Math.min(index, clusterStyles);
  
          var measure = 0;
          for (var i = 0, k = count; i &lt; k; i++) {
              measure += parseInt(markers[i].customData)
          }
          var abbreviatedValue = abbreviateNumber(measure)
          return {
              text: abbreviatedValue,
              index: index
          };
      });
  
  });
  </code></pre>
  
  <p>I do not how to set the zoom level. I tried zoomvalue as false but cluster is not zooming. I want markers to not zoom to street level.</p>
  
  <p>Thanks.</p>