TypesScript
Generic Types
ts
export type IndexAny = Record<string, any>
export type AnyFunc = (...args: any[]) => any
export type AnyNumberFunc = (...args: any[]) => number
export type AnyNumbersFunc = (...args: any[]) => number[]
export type AnyArr = any[]
export type EmptyFunction = () => void
mapbox-gl Types
ts
@types/mapbox-gl: ^1.13.10
Map-related Types
ts
import type mapboxgl from 'mapbox-gl'
import type { AnyLayer, AnySourceData, CameraOptions, EaseToOptions, FlyToOptions, LngLatBoundsLike, LngLatLike, Map } from 'mapbox-gl'
export type MapboxglNamespace = typeof mapboxgl
export interface SupermapMapboxglNamespace extends MapboxglNamespace {
supermap: any
}
export interface MapboxInstance extends Map {
_removed: boolean
__deck: any
mapboxgl: SupermapMapboxglNamespace
updateImage(
name: string,
image:
| HTMLImageElement
| ArrayBufferView
| { width: number; height: number; data: Uint8Array | Uint8ClampedArray }
| ImageData
| ImageBitmap,
options?: { pixelRatio?: number | undefined; sdf?: boolean | undefined },
): void
}
export interface MapImageCanvas {
width: number;
height: number;
data: Uint8Array | Uint8ClampedArray
[x: string]: any
}
export type MapInstance = {
addSource: (id: string, source: AnySourceData) => void;
getSource: (id: string) => mapboxgl.AnySourceImpl;
addLayer: (layer: AnyLayer, beforeId?: string) => void;
moveLayer: (id: string, beforeId?: string) => void;
getZoom: () => number;
setZoom: (zoomValue: number) => void;
getCenter: () => [number, number]
setCenter: (centerValue: number[]) => void
resize: () => void
reorderLayers: (layerIds: string[]) => void
getBearing: () => number
setBearing: (bearingValue: number) => void
getPitch: () => number
setPitch: (pitchValue: number) => void
jumpTo: (options: CameraOptions) => void
easeTo: (options: EaseToOptions) => Promise<void>
flyTo: (options: FlyToOptions) => Promise<void>
stop: () => void
cameraForBounds: (bounds: LngLatBoundsLike, options: Record<string, any>) => mapboxgl.CameraForBoundsResult | undefined
fitBounds: (bounds: LngLatBoundsLike, options: Record<string, any>) => Promise<void>
project: (lnglatLike: LngLatLike) => mapboxgl.Point;
}
export type MapResolved = {
mapboxInstance: MapboxInstance
mapInstance: MapInstance
}
export type VectorLayerDataItem = { coordinates: Array<number[]>, properties?: Record<string, any> }
export type VectorLayerData = VectorLayerDataItem[]
export type SymbolLayerDataItem = {
coordinates: number[]
properties?: Record<string, any>
}
export type SymbolLayerData = SymbolLayerDataItem[]
Usage
ts
import type {
MapImageCanvas,
MapInstance,
MapResolved,
MapboxInstance,
SymbolLayerData,
SymbolLayerDataItem,
VectorLayerData,
VectorLayerDataItem,
} from '@mapbox-vue3/core'