getTile(coord, zoom, ownerDocument) {
    var maxCoord = 1 << zoom;
    if (zoom < this.minZoom || coord.y < 0 || coord.y >= maxCoord) {
      // Construct and return the tile immediately.
      var img = ownerDocument.createElement('IMG');
      img.style.width = '0px';
      img.style.height = '0px';
      return img;
    }

    var profiling = this.profiler_ && this.profiler_.isEnabled();
    var tileId = this.getTileId(coord, zoom);
    var src = [this.url, tileId].join('/') + '?token=' + this.token;
    if (profiling) {
      src += '&profiling=1';
    }

    // Append 1) a unique counter string to the tileid to make sure that
    // repeated requests for the same tile and cancellations thereof
    // (which may occur if the user quickly moves the map around)
    // don't overwrite each other's state, and 2) the unique token for this
    // layer to differentiate its tile requests from other tile requests
    // for other layers with the same map ID.
    var uniqueTileId = [tileId, this.tileCounter, this.token].join('/');
    this.tileCounter += 1;

    // Holds the <img> element created asynchronously.
    var div = goog.dom.createDom(goog.dom.TagName.DIV, {'id': uniqueTileId});

    // Use the current time in seconds as the priority for the tile
    // loading queue. Smaller priorities move to the front of the queue,
    // which is what we want - the Maps API loads the tiles in a spiral
    // starting from the center, and we would like to preserve this order.
    // Requests for tiles that are no longer visible won't clog the queue:
    // if the map is moved around a lot, Maps API calls our releaseTile()
    // method, and the obsolete requests will be removed from the queue.
    var priority = new Date().getTime() / 1000;
    this.tilesLoading.push(uniqueTileId);

    ee.MapTileManager.getInstance().send(
        uniqueTileId, src, priority,
        goog.bind(this.handleImageCompleted_, this, div, uniqueTileId));
    this.dispatchTileEvent_();
    return div;
  }
Implements getTile() for the google.maps.MapType interface.
@param {!google.maps.Point} coord Position of tile.
@param {number} zoom Zoom level.
@param {Node} ownerDocument Parent document.
@return {Node} Element to be displayed as a map tile.
@override