react-native-mapsforge-vtm
Version:
React Native components to build vector maps using Mapsforges fork of vtm. Offline rendering of OpenStreetMap data. Android only
120 lines (109 loc) • 3.44 kB
text/typescript
import { MarkerHotspotPlaces } from './constants';
import type { LayerBitmapTileProps } from './components/LayerBitmapTile';
import type { ShadingAlgorithm, ShadingAlgorithmOptions, LayerHillshadingProps } from './components/LayerHillshading';
import type { LayerMapsforgeResponse, LayerMapsforgeProps } from './components/LayerMapsforge';
import type { LayerMBTilesBitmapResponse, LayerMBTilesBitmapProps } from './components/LayerMBTilesBitmap';
import type { LayerPathResponse, LayerPathGestureResponse, LayerPathProps } from './components/LayerPath';
import type { GradientColors, LayerPathSlopeGradientResponse, LayerPathSlopeGradientProps } from './components/LayerPathSlopeGradient';
import type { LayerScalebarProps } from './components/LayerScalebar';
import type { MapContainerProps, MapLifeCycleResponse } from './components/MapContainer';
import type { LayerMarkerProps } from './components/LayerMarker';
import type { MarkerProps, MarkerResponse } from './components/Marker';
import type { XmlRenderTheme, RenderStyleOptionsCollection } from './compose/useRenderStyleOptions';
export type {
LayerBitmapTileProps,
ShadingAlgorithm,
ShadingAlgorithmOptions,
LayerHillshadingProps,
LayerMapsforgeResponse,
LayerMapsforgeProps,
LayerMBTilesBitmapResponse,
LayerMBTilesBitmapProps,
LayerPathResponse,
LayerPathGestureResponse,
LayerPathProps,
GradientColors,
LayerPathSlopeGradientResponse,
LayerPathSlopeGradientProps,
LayerScalebarProps,
MapContainerProps,
MapLifeCycleResponse,
LayerMarkerProps,
MarkerProps,
MarkerResponse,
XmlRenderTheme,
RenderStyleOptionsCollection,
};
export type Bounds = {
minLat: number;
minLng: number;
maxLat: number;
maxLng: number;
};
export interface ResponseBase {
uuid: string;
};
export interface Location {
lng: number;
lat: number;
alt?: number;
};
export interface LocationExtended extends Location {
lng: number;
lat: number;
alt?: number;
distance?: number;
time?: number;
};
export type ResponseInclude = { [value: string]: 0 | 1 | 2 };
export type GeometryStyle = {
strokeWidth?: number;
strokeColor?: `#${string}`;
fillColor?: `#${string}`;
fillAlpha?: number;
buffer?: number;
scalingZoomLevel?: number;
cap?: 'SQUARE' | 'ROUND' | 'BUTT';
fixed?: boolean;
strokeIncrease?: number;
blur?: number;
stipple?: number;
stippleColor?: `#${string}`;
stippleWidth?: number;
// texture?: string; // pathToImage ???
dropDistance?: number;
textureRepeat?: boolean;
heightOffset?: number;
randomOffset?: boolean;
transparent?: boolean;
};
export interface MapEventResponse {
nativeNodeHandle?: number;
zoomLevel?: number;
zoom?: number;
scale?: number;
zoomScale?: number;
bearing?: number;
roll?: number;
tilt?: number;
center?: Location;
};
export type MarkerSymbol = {
width?: number;
height?: number;
filePath?: `/${string}` | `content://${string}`;
fillColor?: `#${string}`;
strokeColor?: `#${string}`;
strokeWidth?: number;
hotspotPlace?: typeof MarkerHotspotPlaces[number];
text?: string;
textMargin?: number;
textStrokeWidth?: number;
textPositionX?: number;
textPositionY?: number;
};
export type HardwareKeyEventResponse = {
nativeNodeHandle: number;
keyCode: number;
keyCodeString: 'KEYCODE_VOLUME_UP' | 'KEYCODE_VOLUME_DOWN';
};