static zoomTileRenderer_(maxZoom, tile) {
    if (!tile.imageEl) {
      throw new Error('Tile must have an image element to be rendered.');
    }
    var zoomSteps = tile.zoom - maxZoom;
    var zoomFactor = Math.pow(2, zoomSteps);
    var sideLength = tile.tileSize.width;  // Tiles must be square.

    var canv = tile.div.ownerDocument.createElement('canvas');
    canv.setAttribute('width', sideLength);
    canv.setAttribute('height', sideLength);

    tile.div.appendChild(canv);

    var context = canv.getContext('2d');
    context['imageSmoothingEnabled'] = false;
    context['mozImageSmoothingEnabled'] = false;
    context['webkitImageSmoothingEnabled'] = false;

    var srcX = sideLength / zoomFactor * (tile.coord.x % zoomFactor);
    var srcY = sideLength / zoomFactor * (tile.coord.y % zoomFactor);
    var srcW = sideLength / zoomFactor;
    var srcH = sideLength / zoomFactor;
    context.drawImage(
        tile.imageEl, srcX, srcY, srcW, srcH, 0, 0, sideLength, sideLength);
  }
Renders a tile with client-side zooming beyond the maximum zoom level for
which full-size tile images are available.
@param {number} maxZoom The maximum zoom level at which tiles are
    available.
@param {!ImageTile} tile The tile to render.
@private