findAltTiles_(tileGrid, tileCoord, altZ, tilesByZ) {
    const tileRange = tileGrid.getTileRangeForTileCoordAndZ(
      tileCoord,
      altZ,
      this.tempTileRange_,
    );

    if (!tileRange) {
      return false;
    }

    let covered = true;
    const tileCache = this.tileCache_;
    const source = this.getLayer().getRenderSource();
    const sourceKey = source.getKey();
    for (let x = tileRange.minX; x <= tileRange.maxX; ++x) {
      for (let y = tileRange.minY; y <= tileRange.maxY; ++y) {
        const cacheKey = getCacheKey(source, sourceKey, altZ, x, y);
        let loaded = false;
        if (tileCache.containsKey(cacheKey)) {
          const tile = tileCache.peek(cacheKey);
          if (tile.getState() === TileState.LOADED) {
            addTileToLookup(tilesByZ, tile, altZ);
            loaded = true;
          }
        }
        if (!loaded) {
          covered = false;
        }
      }
    }
    return covered;
  }
Look for tiles covering the provided tile coordinate at an alternate
zoom level.  Loaded tiles will be added to the provided tile texture lookup.
@param {import("../../tilegrid/TileGrid.js").default} tileGrid The tile grid.
@param {import("../../tilecoord.js").TileCoord} tileCoord The target tile coordinate.
@param {number} altZ The alternate zoom level.
@param {TileLookup} tilesByZ Lookup of tiles by zoom level.
@return {boolean} The tile coordinate is covered by loaded tiles at the alternate zoom level.
@private