24 lines
661 B
TypeScript
24 lines
661 B
TypeScript
import FeatureSource, { Tiled } from "../FeatureSource"
|
|
import { BBox } from "../../BBox"
|
|
|
|
export default interface TileHierarchy<T extends FeatureSource & Tiled> {
|
|
/**
|
|
* A mapping from 'tile_index' to the actual tile featrues
|
|
*/
|
|
loadedTiles: Map<number, T>
|
|
}
|
|
|
|
export class TileHierarchyTools {
|
|
public static getTiles<T extends FeatureSource & Tiled>(
|
|
hierarchy: TileHierarchy<T>,
|
|
bbox: BBox
|
|
): T[] {
|
|
const result: T[] = []
|
|
hierarchy.loadedTiles.forEach((tile) => {
|
|
if (tile.bbox.overlapsWith(bbox)) {
|
|
result.push(tile)
|
|
}
|
|
})
|
|
return result
|
|
}
|
|
}
|