s2maps-gpu
Version:
S2 Maps GPU - An open source, high-performance, and GPU-accelerated map engine for rendering large-scale, interactive maps.
69 lines (68 loc) • 1.9 kB
TypeScript
import type Session from './session.js';
import type { Face, LayerDefinition } from 'style/style.spec.js';
import type { SourceFlushMessage, TileRequest } from '../worker.spec.js';
import type { VectorPointGeometry, VectorPolygonGeometry } from 'gis-tools/index.js';
/** Local Tile Properties */
export interface LocalTileProperties {
id: string;
face: number;
zoom: number;
i: number;
j: number;
}
/** Boundary describing the tile shape */
export interface FeatureBoundary {
extent: number;
properties: LocalTileProperties;
geometry: VectorPolygonGeometry;
}
/** Point describing the tile */
export interface GetFeatureName {
extent: number;
properties: LocalTileProperties;
geometry: VectorPointGeometry;
}
/** Local Tile */
export interface LocalTile {
face: Face;
zoom: number;
i: number;
j: number;
extent: number;
layers: {
boundary: {
extent: 1;
length: 1;
features: FeatureBoundary[];
};
name: {
extent: 1;
length: 1;
features: GetFeatureName[];
};
};
}
/** Local Source */
export default class LocalSource {
#private;
name: string;
isTimeFormat: boolean;
styleLayers: LayerDefinition[];
session: Session;
textEncoder: TextEncoder;
/**
* @param name - the name of the source
* @param session - the session
* @param layers - the layers
*/
constructor(name: string, session: Session, layers: LayerDefinition[]);
/** a no-op for local sources; nothing to build */
build(): void;
/**
* Get a tile
* @param mapID - the map requesting the tile
* @param tile - the tile request
* @param flushMessage - the flush message to send a report to
*/
tileRequest(mapID: string, tile: TileRequest, flushMessage: SourceFlushMessage): void;
}