import { GeoBox } from "../coordinates/GeoBox" ; import { GeoCoordinatesLike } from "../coordinates/GeoCoordinatesLike" ; import { Box3Like } from "../math/Box3Like" ; import { Projection } from "../projection/Projection" ; import { FlatTileBoundingBoxGenerator } from "./FlatTileBoundingBoxGenerator" ; import { SubdivisionScheme } from "./SubdivisionScheme" ; import { TileKey } from "./TileKey" ; import { TileKeyUtils } from "./TileKeyUtils" ; import { TileTreeTraverse } from "./TileTreeTraverse" ; /**
 * The `TilingScheme` represents how the data is tiled.
 */ export class TilingScheme { readonly boundingBoxGenerator : FlatTileBoundingBoxGenerator ; readonly tileTreeTraverse : TileTreeTraverse ; param subdivisionScheme param projection constructor ( readonly subdivisionScheme , readonly projection ) { this . boundingBoxGenerator = new FlatTileBoundingBoxGenerator ( this ) ; this . tileTreeTraverse = new TileTreeTraverse ( subdivisionScheme ) ; } param tileKey - The  TileKey .
     *  returns getSubTileKeys ( tileKey ) { return this . tileTreeTraverse . subTiles ( tileKey ) ; } /**
     * Gets the  TileKey from the given geo position and level.
     *
     *  param geoPoint param level getTileKey ( geoPoint , level ) { return TileKeyUtils . geoCoordinatesToTileKey ( this , geoPoint , level ) ; } /**
     * Gets the list of  TileKey s contained in the given  GeoBox .
     *
     *  param geoBox param level getTileKeys ( geoBox , level ) { return TileKeyUtils . geoRectangleToTileKeys ( this , geoBox , level ) ; } /**
     * Returns the bounding box in geo coordinates for the given  TileKey .
     *
     *  param tileKey getGeoBox ( tileKey ) { return this . boundingBoxGenerator . getGeoBox ( tileKey ) ; } param tileKey param result getWorldBox ( tileKey , result ? ) { return this . boundingBoxGenerator . getWorldBox ( tileKey , result ) ; } }