src/lib/services/managers/marker.manager.ts
Properties |
|
Methods |
|
constructor(_mapsWrapper: MapsApiWrapper, _zone: NgZone)
|
|||||||||
Parameters :
|
Public Async addMarker | ||||||
addMarker(marker: NgMapsMarkerComponent)
|
||||||
Parameters :
Returns :
Promise<void>
|
Public Abstract createEventObservable | |||||||||
createEventObservable(eventName: string | Array
|
|||||||||
Type parameters :
|
|||||||||
Parameters :
Returns :
Observable<E>
|
Public Abstract deleteMarker | ||||||
deleteMarker(marker: NgMapsMarkerComponent)
|
||||||
Parameters :
Returns :
void
|
Public getNativeMarker | ||||||
getNativeMarker(marker: NgMapsMarkerComponent)
|
||||||
Parameters :
Returns :
T | undefined
|
Public Abstract updateAnimation | ||||||
updateAnimation(marker: NgMapsMarkerComponent)
|
||||||
Parameters :
Returns :
void
|
Public Abstract updateClickable | ||||||
updateClickable(marker: NgMapsMarkerComponent)
|
||||||
Parameters :
Returns :
void
|
Public Abstract updateDraggable | ||||||
updateDraggable(marker: NgMapsMarkerComponent)
|
||||||
Parameters :
Returns :
void
|
Public Abstract updateIcon | ||||||
updateIcon(marker: NgMapsMarkerComponent)
|
||||||
Parameters :
Returns :
void
|
Public Abstract updateIconLegacy | ||||||
updateIconLegacy(marker: NgMapsMarkerComponent)
|
||||||
Parameters :
Returns :
void
|
Public Abstract updateLabel | ||||||
updateLabel(marker: NgMapsMarkerComponent)
|
||||||
Parameters :
Returns :
void
|
Public Abstract updateMarkerPosition | ||||||
updateMarkerPosition(marker: NgMapsMarkerComponent)
|
||||||
Parameters :
Returns :
void
|
Public Abstract updateOpacity | ||||||
updateOpacity(marker: NgMapsMarkerComponent)
|
||||||
Parameters :
Returns :
void
|
Public Abstract updateTitle | ||||||
updateTitle(marker: NgMapsMarkerComponent)
|
||||||
Parameters :
Returns :
void
|
Public Abstract updateVisible | ||||||
updateVisible(marker: NgMapsMarkerComponent)
|
||||||
Parameters :
Returns :
void
|
Public Abstract updateZIndex | ||||||
updateZIndex(marker: NgMapsMarkerComponent)
|
||||||
Parameters :
Returns :
void
|
Protected _markers |
Type : Map<NgMapsMarkerComponent | T>
|
Default value : new Map<
NgMapsMarkerComponent,
T
>()
|
import { Injectable, NgZone } from '@angular/core';
import { Observable } from 'rxjs';
import { NgMapsMarkerComponent } from '../../directives/marker';
import { MapsApiWrapper } from '../maps-api-wrapper';
@Injectable()
export abstract class MarkerManager<T = any> {
protected _markers: Map<NgMapsMarkerComponent, T> = new Map<
NgMapsMarkerComponent,
T
>();
constructor(
protected _mapsWrapper: MapsApiWrapper,
protected _zone: NgZone,
) {}
public abstract deleteMarker(marker: NgMapsMarkerComponent): void;
public abstract updateMarkerPosition(marker: NgMapsMarkerComponent): void;
public abstract updateTitle(marker: NgMapsMarkerComponent): void;
public abstract updateLabel(marker: NgMapsMarkerComponent): void;
public abstract updateDraggable(marker: NgMapsMarkerComponent): void;
public abstract updateIconLegacy(marker: NgMapsMarkerComponent): void;
public abstract updateIcon(marker: NgMapsMarkerComponent): void;
public abstract updateOpacity(marker: NgMapsMarkerComponent): void;
public abstract updateVisible(marker: NgMapsMarkerComponent): void;
public abstract updateZIndex(marker: NgMapsMarkerComponent): void;
public abstract updateClickable(marker: NgMapsMarkerComponent): void;
public abstract updateAnimation(marker: NgMapsMarkerComponent): void;
public async addMarker(marker: NgMapsMarkerComponent): Promise<void> {
if (!marker.latitude || !marker.longitude) {
return;
}
const m = await this._mapsWrapper.createMarker(
{ lat: marker.latitude, lng: marker.longitude },
{
label: marker.label,
draggable: marker.draggable,
icon: marker.iconUrl,
opacity: marker.opacity,
optimized: marker.optimized,
visible: marker.visible,
zIndex: marker.zIndex,
title: marker.title,
clickable: marker.clickable,
animation:
typeof marker.animation === 'string'
? google.maps.Animation[marker.animation]
: marker.animation,
} as any,
);
this._markers.set(marker, m);
}
public getNativeMarker(marker: NgMapsMarkerComponent): T | undefined {
return this._markers.get(marker);
}
public abstract createEventObservable<E>(
eventName: string | Array<string>,
marker: NgMapsMarkerComponent,
): Observable<E>;
}