UNPKG

iotmapmanager

Version:

Manage markers, clusters, user marker or paths on IotMaps

120 lines (119 loc) 3.6 kB
import * as L from 'leaflet'; import 'leaflet.markercluster'; import { IotMapConfig } from './iot-map-config'; import { IotMapDisplay } from './iot-map-types'; export declare class IotMapManager { private map; private config; private displayedMarkers; private selectedElement; private baseLayers; private markersLayers; private layerControl; private firstLayerAdded; private accuracyDisplayed; private currentDisplayedLayers; /** * Constructor * @param config - config to use for map display */ constructor(config: IotMapConfig); onMove?: () => void; onEltClick?: (id: string) => void; /** * Initialise a leaflet map with default position, zoom and layer * * @param selector - map id */ init(selector: string): void; /** * Create a layer according to marker / cluster types : if clustering is automatic or external, if layer is for * displaying accuracy areas or user marker... * @param layerName - name of the layer to init */ private initLayer; /** * Returns Leaflet layer corresponding to layerName * * @param layerName - name of the layer */ getLayer(layerName: string): L.MarkerClusterGroup | L.FeatureGroup; /** * Returns leaflet map * * @returns the leaflet map previously initialised */ getIotMap(): L.Map; /** * switch a displayed element to selected * @param elt - element to select */ selectElement(elt: IotMapDisplay): void; /** * switch a displayed element to unselected * @param elt - element to unselect */ unselectElement(elt: IotMapDisplay): void; /** * Add a marker to the map. * @param elt - marker to add * @param layer - layer to add the marker in * @param id - marker id * * @remarks used to get the list of displayed markers */ addElement(elt: IotMapDisplay, layer: string, id: string): void; /** * remove a marker from the map. * @param layer - layer to add the marker in * @param id - marker id * * @remarks used to get the list of displayed markers */ removeElement(elt: IotMapDisplay, layer: string): void; /** * Set selection status * @param elt - element (marker, cluster...) to select/unselect * @param selected - True if element must be selected, false otherwise */ private changeSelectionStatus; /** * Returns a DivIcon compatible with leaflet, representing all automatic cluster information (shape, tab, popup, gauge...) * @param leafletCluster - cluster computed by leaflet */ private getClusterIcon; /** * Called on element click * @param event - event data */ private onElementClick; /** * Called on cluster mouse over * @param event - event data */ private onClusterMouseOver; /** * Called on cluster mouse out * @param event - event data */ private onClusterMouseOut; /** * Called on marker mouse over (to bring manual cluster in front) * @param event - event data */ private onElementMouseOver; /** * Called on marker mouse out (to bring manual cluster in background) * @param event - event data */ private onElementMouseOut; /** * Called when displayed map area change (zoom in, zoom out, move, click...) */ private onZoom; private onBaseLayerChange; private onOverlayAdd; private onOverlayRemove; private onClick; private updateAccuracy; }