offline-map-react
Version:
<h1 style="text-align: center">Welcome to offline-map-react 👋</h1> <p> <a href="https://www.npmjs.com/package/offline-map-react" target="_blank"> <img alt="Version" src="https://img.shields.io/npm/v/offline-map-react.svg"> </a> <a href="ht
68 lines (59 loc) • 2.38 kB
TypeScript
/// <reference types="react" />
import { ReactNode } from 'react';
import Leaflet, { LatLng, Map } from 'leaflet';
interface ICoords {
lat: number;
lng: number;
}
interface ICheckpoint {
id: number;
position: Pick<LatLng, 'lat' | 'lng'>;
text?: string;
alreadyCollected?: boolean;
}
declare type IPosition = Pick<LatLng, 'lat' | 'lng'>;
declare type IHeatPoint = [number, number, number];
interface ILeafletMapProps {
currentPosition?: IPosition | undefined;
checkpoints: ICheckpoint[];
heatPoints?: IHeatPoint[] | undefined;
checkpointIconUrl?: string | null | undefined;
parentWindow?: Window;
maxMapZoom?: number;
}
declare function LeafletMap({ currentPosition, checkpoints, checkpointIconUrl, parentWindow, heatPoints, maxMapZoom }: ILeafletMapProps): {
renderMap: (...children: ReactNode[]) => JSX.Element;
setMapViewOnUserLocation: () => void;
navigateToPosition: (position?: IPosition, zoomLevel?: number) => void;
resetHeatLayerRender: () => void;
setHeatPoints: (heatPoints: IHeatPoint[]) => void;
heatPoints: IHeatPoint[];
heatLayer: any;
progressSaveMap: number;
totalLayersToSave: number;
userPosition: IPosition;
map: Leaflet.Map;
offlineMapControls: () => {
saveCurrentMapView: () => void;
deleteCurrentMapView: () => void;
toggleUserLocation: () => void;
};
calibrateGpsTutorial: () => JSX.Element;
accuracy: number;
};
interface ICheckpointMarkerProps {
marker: ICheckpoint;
checkPointDetails?: (distanceInMeters: number) => ReactNode;
positionToCompare?: ICoords;
iconUrl?: string | undefined | null;
onClick?: (distanceInMeters: number) => void;
greenCheckpoint?: boolean;
}
declare function CheckpointMarker({ marker, checkPointDetails, positionToCompare, onClick, greenCheckpoint }: ICheckpointMarkerProps): JSX.Element;
interface IMakeTileLayerOfflineProps {
leaflet: typeof Leaflet;
map: Map;
}
declare function MakeTileLayerOffline({ map, leaflet, }: IMakeTileLayerOfflineProps): Leaflet.tileLayerOffline | undefined;
declare function CalculateDistanceBetweenCoords(firstPosition?: ICoords, secondPosition?: ICoords): number;
export { CalculateDistanceBetweenCoords, CheckpointMarker, MakeTileLayerOffline, LeafletMap as OfflineMap };