flatgeobuf
Version:
A performant binary encoding for geographic data
44 lines (43 loc) • 1.84 kB
TypeScript
import { Feature } from './flat-geobuf/feature.js';
import type { HeaderMeta } from './header-meta.js';
import { type Rect } from './packedrtree.js';
interface FeatureWithId {
id: number;
feature: Feature;
}
export declare class HttpReader {
private headerClient;
header: HeaderMeta;
private headerLength;
private indexLength;
private nocache;
private headers;
constructor(headerClient: BufferedHttpRangeClient, header: HeaderMeta, headerLength: number, indexLength: number, nocache: boolean, headers?: HeadersInit);
static open(url: string, nocache: boolean, headers?: HeadersInit): Promise<HttpReader>;
selectBbox(rect: Rect): AsyncGenerator<FeatureWithId, void, unknown>;
lengthBeforeTree(): number;
lengthBeforeFeatures(): number;
buildFeatureClient(nocache: boolean): BufferedHttpRangeClient;
readFeatureBatch(batch: [number, number, number][], nocache: boolean): AsyncGenerator<FeatureWithId, void, unknown>;
readFeature(featureClient: BufferedHttpRangeClient, featureOffset: number, minFeatureReqLength: number): Promise<Feature>;
}
declare class BufferedHttpRangeClient {
httpClient: HttpRangeClient;
bytesEverUsed: number;
bytesEverFetched: number;
private buffer;
private head;
constructor(source: string | HttpRangeClient, nocache: boolean, headers?: HeadersInit);
getRange(start: number, length: number, minReqLength: number, purpose: string): Promise<ArrayBuffer>;
logUsage(purpose: string): void;
}
declare class HttpRangeClient {
url: string;
nocache: boolean;
headers: HeadersInit;
requestsEverMade: number;
bytesEverRequested: number;
constructor(url: string, nocache: boolean, headers?: HeadersInit);
getRange(begin: number, length: number, purpose: string): Promise<ArrayBuffer>;
}
export {};