function isTileAvailable(that, level, x, y) {
  if (!that._hasAvailability) {
    return undefined;
  }

  const tilesAvailabilityLoaded = that._tilesAvailabilityLoaded;
  const tilesAvailable = that._tilesAvailable;

  if (level > that._lodCount) {
    return false;
  }

  // Check if tiles are known to be available
  if (tilesAvailable.isTileAvailable(level, x, y)) {
    return true;
  }

  // or to not be available
  if (tilesAvailabilityLoaded.isTileAvailable(level, x, y)) {
    return false;
  }

  return undefined;
}
Requests the geometry for a given tile. The result includes terrain
data and indicates that all child tiles are available.

@param {number} x The X coordinate of the tile for which to request geometry.
@param {number} y The Y coordinate of the tile for which to request geometry.
@param {number} level The level of the tile for which to request geometry.
@param {Request} [request] The request object. Intended for internal use only.
@returns {Promise<TerrainData>|undefined} A promise for the requested geometry.  If this method
         returns undefined instead of a promise, it is an indication that too many requests are already
         pending and the request will be retried later.