import {UIEventSource} from "../../UIEventSource"; import FilteredLayer from "../../../Models/FilteredLayer"; import {FeatureSourceForLayer, Tiled} from "../FeatureSource"; import {BBox} from "../../BBox"; export default class SimpleFeatureSource implements FeatureSourceForLayer, Tiled { public readonly features: UIEventSource<{ feature: any; freshness: Date }[]>; public readonly name: string = "SimpleFeatureSource"; public readonly layer: FilteredLayer; public readonly bbox: BBox = BBox.global; public readonly tileIndex: number; constructor(layer: FilteredLayer, tileIndex: number, featureSource?: UIEventSource<{ feature: any; freshness: Date }[]>) { this.name = "SimpleFeatureSource(" + layer.layerDef.id + ")" this.layer = layer this.tileIndex = tileIndex ?? 0; this.bbox = BBox.fromTileIndex(this.tileIndex) this.features = featureSource ?? new UIEventSource<{ feature: any; freshness: Date }[]>([]); } }