iotmapmanager
Version:
Manage markers, clusters, user marker or paths on IotMaps
120 lines (119 loc) • 3.6 kB
TypeScript
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;
}