UNPKG

mmr-gl-react

Version:

React components for MMR GL JS-compatible libraries

71 lines (70 loc) 2.05 kB
export * from './common'; export * from './lib'; export * from './events'; import type GeoJSON from 'geojson'; import type { CustomSourceImplementation } from './lib'; export interface ISource { type: string; } export interface ILayer { id: string; type: string; metadata?: any; source?: unknown; minzoom?: number; maxzoom?: number; filter?: any; layout?: { [property: string]: any; }; paint?: { [property: string]: any; }; } export interface MapStyle { name?: string; metadata?: unknown; version: number; layers: ILayer[]; sources: { [sourceName: string]: object; }; fog?: any; terrain?: any; light?: any; } export interface GeoJSONSourceImplementation { type: 'geojson'; setData(data: GeoJSON.Feature<GeoJSON.Geometry> | GeoJSON.FeatureCollection<GeoJSON.Geometry> | String): this; } export interface ImageSourceImplemtation { type: 'image'; updateImage(options: { url?: string; coordinates?: number[][]; }): this; setCoordinates(coordinates: number[][]): this; } export interface CanvasSourceImplemtation { type: 'canvas'; play(): void; pause(): void; getCanvas(): HTMLCanvasElement; setCoordinates(coordinates: number[][]): this; } export interface VectorSourceImplementation { type: 'vector'; setTiles(tiles: ReadonlyArray<string>): this; setUrl(url: string): this; } export interface RasterSourceImplementation { type: 'raster' | 'raster-dem'; setTiles(tiles: ReadonlyArray<string>): this; setUrl(url: string): this; } export interface VideoSourceImplementation { type: 'video'; getVideo(): HTMLVideoElement; setCoordinates(coordinates: number[][]): this; } export type AnySourceImplementation = GeoJSONSourceImplementation | VideoSourceImplementation | ImageSourceImplemtation | CanvasSourceImplemtation | VectorSourceImplementation | RasterSourceImplementation | CustomSourceImplementation<HTMLImageElement | ImageData | ImageBitmap>;