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

    if (!tileRange) {
      return false;
    }

    let covered = true;
    const tileRepresentationCache = this.tileRepresentationCache;
    const source = this.getLayer().getRenderSource();
    for (let x = tileRange.minX; x <= tileRange.maxX; ++x) {
      for (let y = tileRange.minY; y <= tileRange.maxY; ++y) {
        const cacheKey = getCacheKey(source, [altZ, x, y]);
        let loaded = false;
        if (tileRepresentationCache.containsKey(cacheKey)) {
          const tileRepresentation = tileRepresentationCache.get(cacheKey);
          if (
            tileRepresentation.ready &&
            !lookupHasTile(tileRepresentationLookup, tileRepresentation.tile)
          ) {
            addTileRepresentationToLookup(
              tileRepresentationLookup,
              tileRepresentation,
              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 representation 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 {TileRepresentationLookup} tileRepresentationLookup Lookup of
tile representations by zoom level.
@return {boolean} The tile coordinate is covered by loaded tiles at the alternate zoom level.
@private