anchor.diff:    }
     // add a utfgrid data layer and custom JS events to catch interactivity
     if( options.interactivity ) {
  -    this.addTileInteractivity( tilejson, layerID );
  +    this.addTileInteractivity( tilejson, layerID, options );
     }
     // return the layer and index of this layer in the current stack
     return { layer: layer, layerID: layerID };
   }
   
  -google.maps.Map.prototype.interactivityURL = function( tileURL, interactivity ) {
  -  utfgridURL = tileURL.replace( /\.png/, ".grid.json" );
  -  utfgridURL += ( utfgridURL.indexOf("?") < 0 ) ? "?" : "&";
  -  return utfgridURL + "interactivity=" + interactivity;
  -};
  -
  -google.maps.Map.prototype.addTileInteractivity = function( tilejson, layerID ) {
  +google.maps.Map.prototype.utfgridURL = function( tileURL ) {
  +  url = tileURL.replace( /\.png/, ".grid.json" );
  +  url += ( url.indexOf("?") < 0 ) ? "?" : "&";
  +  return url;
  +};
  +
  +google.maps.Map.prototype.addTileInteractivity = function( tilejson, layerID, options ) {
     var map = this;
     var interactionOn = false;
     var waxInteraction = wax.g.interaction( );
     var oldFeature = waxInteraction.screen_feature;
  -  waxInteraction.screen_feature = function(pos, callback) {
  +  waxInteraction.screen_feature = function( pos, callback ) {
  +    // making sure the colored heatmap doesn't have offset interactions
  +    if( options.maxzoom && map.getZoom( ) <= options.maxzoom ) {
  +      return oldFeature( pos, callback );
  +    }
       oldFeature( { x: pos.x, y: pos.y + 13 }, function( f ) {
         if( f && f.mappable === "true" && !f.private_location ) { return callback( f ); }
         oldFeature( pos, function( f ) {
  
positive.code:   var options = options || {},
        interactivity = options.interactivity;
    if( options.interactivity ) {
      // windshaft needs the interactivity param to know what data to render
      options.grids = _.map( tileURLs, function( l ) {
        return google.maps.Map.prototype.interactivityURL( l, options.interactivity );
      })
    }
    // finish preparing the tile options hash
  
negative.code:       base + "/" + endpoint + "/" + endpointID + "/{z}/{x}/{y}.png", options );
    });
    return this.addLayerAndControl( { tiles: tileURLs }, options );
  };
  
  // Convenience method that likely isn't called outside this file.
  