mmr-gl-react
Version:
React components for MMR GL JS-compatible libraries
79 lines (78 loc) • 2.39 kB
TypeScript
import type GeoJSON from 'geojson';
/** @mapbox/point-geometry */
export interface Point {
x: number;
y: number;
}
export type PointLike = Point | [number, number];
export interface LngLat {
lng: number;
lat: number;
wrap(): LngLat;
/** Return a LngLat as an array */
toArray(): number[];
/** Return a LngLat as a string */
toString(): string;
/** Returns the approximate distance between a pair of coordinates in meters
* Uses the Haversine Formula (from R.W. Sinnott, "Virtues of the Haversine", Sky and Telescope, vol. 68, no. 2, 1984, p. 159) */
distanceTo(lngLat: LngLat): number;
}
export type LngLatLike = [number, number] | LngLat | {
lng: number;
lat: number;
} | {
lon: number;
lat: number;
};
export interface LngLatBounds {
contains(lnglat: LngLatLike): boolean;
setNorthEast(ne: LngLatLike): this;
setSouthWest(sw: LngLatLike): this;
extend(obj: LngLatLike | LngLatBoundsLike): this;
getCenter(): LngLat;
getSouthWest(): LngLat;
getNorthEast(): LngLat;
getNorthWest(): LngLat;
getSouthEast(): LngLat;
getWest(): number;
getSouth(): number;
getEast(): number;
getNorth(): number;
toArray(): number[][];
toString(): string;
isEmpty(): boolean;
}
export type LngLatBoundsLike = LngLatBounds | [LngLatLike, LngLatLike] | [number, number, number, number] | LngLatLike;
export type MapGeoJSONFeature = GeoJSON.Feature<GeoJSON.Geometry> & {
layer: any;
source: string;
sourceLayer: string;
state: {
[key: string]: any;
};
};
export type PaddingOptions = {
top: number;
bottom: number;
left: number;
right: number;
};
/** Describes the camera's state */
export type ViewState = {
/** Longitude at map center */
longitude: number;
/** Latitude at map center */
latitude: number;
/** Map zoom level */
zoom: number;
/** Map rotation bearing in degrees counter-clockwise from north */
bearing: number;
/** Map angle in degrees at which the camera is looking at the ground */
pitch: number;
/** Dimensions in pixels applied on each side of the viewport for shifting the vanishing point. */
padding: PaddingOptions;
};
export type ControlPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
export interface ImmutableLike<T> {
toJS: () => T;
}