src/api/v4/native/google-maps-map-type.js
function GoogleMapsMapType (layers, engine, map) {
  this._layers = layers;
  this._engine = engine;
  this._map = map;

  this._hoveredLayers = [];

  this.tileSize = new google.maps.Size(256, 256);
  this._internalView = new GMapsCartoDBLayerGroupView(this._engine._cartoLayerGroup, {
    nativeMap: map
  });
  this._id = this._internalView._id;
  this._internalView.on('featureClick', this._onFeatureClick, this);
  this._internalView.on('featureOver', this._onFeatureOver, this);
  this._internalView.on('featureOut', this._onFeatureOut, this);
  this._internalView.on('featureError', this._onFeatureError, this);
}
function GoogleMapsMapType (layers, engine, map) {
  this._layers = layers;
  this._engine = engine;
  this._map = map;

  this._hoveredLayers = [];

  this.tileSize = new google.maps.Size(256, 256);
  this._internalView = new GMapsCartoDBLayerGroupView(this._engine._cartoLayerGroup, {
    nativeMap: map
  });
  this._id = this._internalView._id;
  this._internalView.on('featureClick', this._onFeatureClick, this);
  this._internalView.on('featureOver', this._onFeatureOver, this);
  this._internalView.on('featureOut', this._onFeatureOut, this);
  this._internalView.on('featureError', this._onFeatureError, this);
}
function GoogleMapsMapType ( layers , engine , map ) { this . _layers = layers ; this . _engine = engine ; this . _map = map ; this . _hoveredLayers = [ ] ; this . tileSize = new google . maps . Size ( 256 , 256 ) ; this . _internalView = new GMapsCartoDBLayerGroupView ( this . _engine . _cartoLayerGroup , { nativeMap : map } ) ; this . _id = this . _internalView . _id ; this . _internalView . on ( 'featureClick' , this . _onFeatureClick , this ) ; this . _internalView . on ( 'featureOver' , this . _onFeatureOver , this ) ; this . _internalView . on ( 'featureOut' , this . _onFeatureOut , this ) ; this . _internalView . on ( 'featureError' , this . _onFeatureError , this ) ; }
This object is a custom Google Maps MapType to enable feature interactivity
using an internal GMapsCartoDBLayerGroupView instance.

NOTE: It also contains the feature events handlers. That's why it requires the carto layers array.
This object is a custom Google Maps MapType to enable feature interactivity using an internal GMapsCartoDBLayerGroupView instance .