File

src/lib/services/maps-api-wrapper.ts

Index

Properties
Methods

Constructor

constructor(_loader: MapsAPILoader, _zone: NgZone)
Parameters :
Name Type Optional
_loader MapsAPILoader No
_zone NgZone No

Methods

Public Abstract clearInstanceListeners
clearInstanceListeners()
Returns : void
Public Abstract createCircle
createCircle(center: GeoPoint, options: CircleOptions)
Parameters :
Name Type Optional
center GeoPoint No
options CircleOptions No
Returns : Promise<C>
Public Abstract createDrawingManager
createDrawingManager(param: any, addToMap?: boolean)
Parameters :
Name Type Optional
param any No
addToMap boolean Yes
Returns : Promise<any>
Public Abstract createInfoWindow
createInfoWindow(center: GeoPoint, options: any)
Parameters :
Name Type Optional
center GeoPoint No
options any No
Returns : Promise<I>
Public Abstract createMap
createMap(el: HTMLElement, center: GeoPoint, options: MapOptions)
Parameters :
Name Type Optional
el HTMLElement No
center GeoPoint No
options MapOptions No
Returns : void | Promise
Public Abstract createMarker
createMarker(position: GeoPoint, options?: MarkerOptions, addToMap?: boolean)
Parameters :
Name Type Optional
position GeoPoint No
options MarkerOptions Yes
addToMap boolean Yes
Returns : Promise<any>
Public Abstract createPolygon
createPolygon(options: any)
Parameters :
Name Type Optional
options any No
Returns : Promise<any>
Public Abstract createPolyline
createPolyline(options: any)
Parameters :
Name Type Optional
options any No
Returns : Promise<any>
Public Abstract createRectangle
createRectangle(box: BoundsLiteral, options: RectangleOptions)
Parameters :
Name Type Optional
box BoundsLiteral No
options RectangleOptions No
Returns : Promise<R>
Public Abstract fitBounds
fitBounds(bounds: BoundsLiteral, boundsPadding?: number | Padding)
Parameters :
Name Type Optional
bounds BoundsLiteral No
boundsPadding number | Padding Yes
Returns : void | Promise
Public Abstract getBounds
getBounds()
Public Abstract getCenter
getCenter()
Public Abstract getMapTypeId
getMapTypeId()
Returns : Promise<google.maps.MapTypeId | string | undefined>
Public Async getNativeMap
getNativeMap()
Returns : Promise<T | undefined>
Public Abstract getZoom
getZoom()
Returns : Promise<number | undefined>
Public Abstract panTo
panTo(newCenter: GeoPoint)
Parameters :
Name Type Optional
newCenter GeoPoint No
Returns : Promise<void>
Public Abstract panToBounds
panToBounds(bounds: BoundsLiteral, boundsPadding?: number | Padding)
Parameters :
Name Type Optional
bounds BoundsLiteral No
boundsPadding number | Padding Yes
Returns : void | Promise
Public Abstract setCenter
setCenter(newCenter: GeoPoint)
Parameters :
Name Type Optional
newCenter GeoPoint No
Returns : Promise<void>
Public Abstract setMapOptions
setMapOptions(options: MapOptions)
Parameters :
Name Type Optional
options MapOptions No
Returns : void | Promise
Public Abstract setZoom
setZoom(zoom: number)
Parameters :
Name Type Optional
zoom number No
Returns : Promise<any>
Public Abstract subscribeToMapEvent
subscribeToMapEvent(eventName: string)
Parameters :
Name Type Optional
eventName string No
Returns : Observable<any>
Public Abstract triggerMapEvent
triggerMapEvent(eventName: string)
Parameters :
Name Type Optional
eventName string No
Returns : Promise<void>

Properties

Protected Optional _api
Type : Promise<T>
Protected Optional _mapResolver
Type : function
import { Injectable, NgZone } from '@angular/core';
import { Observable } from 'rxjs';

import { BoundsLiteral } from '../interface/bounds';
import { CircleOptions } from '../interface/circle-options';
import { GeoPoint } from '../interface/geo-point';
import { MapOptions } from '../interface/map-options';
import { MarkerOptions } from '../interface/marker-options';
import { Padding } from '../interface/padding';
import { RectangleOptions } from '../interface/rectangle-options';

import { MapsAPILoader } from './maps-api-loader/maps-api-loader';

@Injectable()
export abstract class MapsApiWrapper<T = any, C = any, R = any, I = any> {
  protected _api?: Promise<T>;
  protected _mapResolver?: (value: T) => void;

  constructor(protected _loader: MapsAPILoader, protected _zone: NgZone) {
    this._api = new Promise<T>((resolve) => {
      this._mapResolver = resolve;
    });
  }

  public abstract createMap(
    el: HTMLElement,
    center: GeoPoint,
    options: MapOptions,
  ): void | Promise<void>;

  public abstract setMapOptions(options: MapOptions): void | Promise<void>;

  public abstract createMarker(
    position: GeoPoint,
    options?: MarkerOptions,
    addToMap?: boolean,
  ): Promise<any>;

  public abstract clearInstanceListeners(): void;

  public async getNativeMap(): Promise<T | undefined> {
    return this._api;
  }

  public abstract triggerMapEvent(eventName: string): Promise<void>;

  public abstract getCenter(): Promise<GeoPoint | undefined>;

  public abstract setCenter(newCenter: GeoPoint): Promise<void>;

  public abstract panTo(newCenter: GeoPoint): Promise<void>;

  public abstract panToBounds(
    bounds: BoundsLiteral,
    boundsPadding?: number | Padding,
  ): void | Promise<void>;

  public abstract fitBounds(
    bounds: BoundsLiteral,
    boundsPadding?: number | Padding,
  ): void | Promise<void>;

  public abstract getBounds(): Promise<BoundsLiteral | undefined>;

  public abstract getZoom(): Promise<number | undefined>;

  public abstract setZoom(zoom: number): Promise<any>;

  public abstract getMapTypeId(): Promise<
    google.maps.MapTypeId | string | undefined
  >;

  public abstract subscribeToMapEvent(eventName: string): Observable<any>;

  public abstract createInfoWindow(center: GeoPoint, options: any): Promise<I>;

  // TODO typings
  public abstract createDrawingManager(
    param: any,
    addToMap?: boolean,
  ): Promise<any>;

  public abstract createCircle(
    center: GeoPoint,
    options: CircleOptions,
  ): Promise<C>;

  public abstract createRectangle(
    box: BoundsLiteral,
    options: RectangleOptions,
  ): Promise<R>;

  public abstract createPolyline(options: any): Promise<any>;

  public abstract createPolygon(options: any): Promise<any>;
}

results matching ""

    No results matching ""