@itwin/core-frontend
Version:
iTwin.js frontend components
64 lines • 3.13 kB
TypeScript
/** @packageDocumentation
* @module Tiles
*/
import { AngleSweep, Range2d } from "@itwin/core-geometry";
import { MapTilingScheme } from "../internal";
/** The JSON representation of a [[QuadId]]
* @public
*/
export interface QuadIdProps {
/** The level of the node within the tree, increasing with each subdivision, as a non-negative integer. */
level: number;
/** The node's position along the X axis as a non-negative integer. */
column: number;
/** The node's position along the Y axis as a non-negative integer. */
row: number;
}
/** Identifies a node within a [quad tree](https://en.wikipedia.org/wiki/Quadtree), such as a [[MapTile]] within a [[MapTileTree]].
* A quad tree recursively sub-divides a two-dimensional space along the X and Y axes such that each node on level L has four child nodes on
* level L+1.
* @public
*/
export declare class QuadId {
/** The level of the node within the tree, increasing with each subdivision, as a non-negative integer. */
level: number;
/** The node's position along the X axis as a non-negative integer. */
column: number;
/** The node's position along the Y axis as a non-negative integer. */
row: number;
/** @alpha */
get isValid(): boolean;
/** @alpha */
static createFromContentId(stringId: string): QuadId;
/** @alpha */
get contentId(): string;
/** @alpha */
static getTileContentId(level: number, column: number, row: number): string;
/** @alpha */
get debugString(): string;
/** Construct a new QuadId. The inputs are expected to be non-negative integers. */
constructor(level: number, column: number, row: number);
/** Compute the QuadIds corresponding to this node's four child nodes. */
getChildIds(columnCount?: number, rowCount?: number): QuadId[];
/** Compute the region of the surface of the Earth represented by this node according to the specified tiling scheme. */
getLatLongRangeDegrees(mapTilingScheme: MapTilingScheme): Range2d;
/** Compute the region of the surface of the Earth represented by this node according to the specified tiling scheme. */
getLatLongRangeRadians(mapTilingScheme: MapTilingScheme): Range2d;
private _getLatLongRange;
/** @alpha */
getAngleSweep(mapTilingScheme: MapTilingScheme): {
longitude: AngleSweep;
latitude: AngleSweep;
};
/** Returns true if this node is adjacent to the south pole according to the specified tiling scheme. */
bordersSouthPole(mapTilingScheme: MapTilingScheme): boolean;
/** Returns true if this node is adjacent to the north pole according to the specified tiling scheme. */
bordersNorthPole(mapTilingScheme: MapTilingScheme): boolean;
/** Compares this Id to another according to the conventions of an [OrderedComparator]($bentley). */
compare(other: QuadId): number;
/** Creates a QuadId from a JSON representation */
static fromJSON(props: QuadIdProps): QuadId;
/** Convert this QuadId to a JSON representation */
static toJSON(props: QuadIdProps): QuadIdProps;
}
//# sourceMappingURL=QuadId.d.ts.map