@ng-maps/google
Version:
**@ng-maps/google** is a simple, modular and tree-shakable library for displaying google-maps inside an angular application
70 lines • 9.66 kB
JavaScript
import { Injectable, NgZone } from '@angular/core';
import { Observable } from 'rxjs';
import { MapsApiWrapper, PolylineManager, } from '@ng-maps/core';
import * as i0 from "@angular/core";
import * as i1 from "@ng-maps/core";
export class GooglePolylineManager extends PolylineManager {
constructor(_mapsWrapper, _zone) {
super(_mapsWrapper, _zone);
}
_convertPoints(line) {
return line._getPoints().map((point) => ({
lat: point.latitude,
lng: point.longitude,
}));
}
addPolyline(line) {
const path = this._convertPoints(line);
const polylinePromise = this._mapsWrapper.createPolyline({
clickable: line.clickable,
draggable: line.draggable,
editable: line.editable,
geodesic: line.geodesic,
strokeColor: line.strokeColor,
strokeOpacity: line.strokeOpacity,
strokeWeight: line.strokeWeight,
visible: line.visible,
zIndex: line.zIndex,
icons: line.icons,
path,
});
this._polylines.set(line, polylinePromise);
}
updatePolylinePoints(line) {
const path = this._convertPoints(line);
const m = this._polylines.get(line);
if (m == null) {
return Promise.resolve();
}
return m.then((l) => this._zone.run(() => {
l.setPath(path);
}));
}
async setPolylineOptions(line, options) {
const l = await this._polylines.get(line);
l?.setOptions(options);
}
deletePolyline(line) {
const m = this._polylines.get(line);
if (m == null) {
return Promise.resolve();
}
return m.then((l) => this._zone.run(() => {
l.setMap(null);
this._polylines.delete(line);
}));
}
createEventObservable(eventName, line) {
return new Observable((observer) => {
this._polylines.get(line)?.then((l) => {
l.addListener(eventName, (e) => this._zone.run(() => observer.next(e)));
});
});
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GooglePolylineManager, deps: [{ token: i1.MapsApiWrapper }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GooglePolylineManager }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GooglePolylineManager, decorators: [{
type: Injectable
}], ctorParameters: () => [{ type: i1.MapsApiWrapper }, { type: i0.NgZone }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWxpbmUubWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZ29vZ2xlL3NyYy9saWIvbWFuYWdlcnMvcG9seWxpbmUubWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sTUFBTSxDQUFDO0FBRTVDLE9BQU8sRUFDTCxjQUFjLEVBR2QsZUFBZSxHQUNoQixNQUFNLGVBQWUsQ0FBQzs7O0FBR3ZCLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxlQUFxQztJQUM5RSxZQUFZLFlBQTRCLEVBQUUsS0FBYTtRQUNyRCxLQUFLLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFa0IsY0FBYyxDQUMvQixJQUFvQjtRQUVwQixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQzFCLENBQUMsS0FBMEIsRUFBRSxFQUFFLENBQzdCLENBQUM7WUFDQyxHQUFHLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDbkIsR0FBRyxFQUFFLEtBQUssQ0FBQyxTQUFTO1NBQ1MsQ0FBQSxDQUNsQyxDQUFDO0lBQ0osQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFvQjtRQUNyQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDO1lBQ3ZELFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixJQUFJO1NBQ0wsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxJQUFvQjtRQUM5QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2QsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQXVCLEVBQUUsRUFBRSxDQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbEIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVNLEtBQUssQ0FBQyxrQkFBa0IsQ0FDN0IsSUFBb0IsRUFDcEIsT0FBb0M7UUFFcEMsTUFBTSxDQUFDLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxDQUFDLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFTSxjQUFjLENBQUMsSUFBb0I7UUFDeEMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDZCxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBdUIsRUFBRSxFQUFFLENBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNsQixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTSxxQkFBcUIsQ0FDMUIsU0FBaUIsRUFDakIsSUFBb0I7UUFFcEIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFFBQXFCLEVBQUUsRUFBRTtZQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUF1QixFQUFFLEVBQUU7Z0JBQzFELENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBSSxFQUFFLEVBQUUsQ0FDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUN2QyxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBaEZVLHFCQUFxQjtrSEFBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZlciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBNYXBzQXBpV3JhcHBlcixcbiAgTmdNYXBzUG9seWxpbmUsXG4gIE5nTWFwc1BvbHlsaW5lUG9pbnQsXG4gIFBvbHlsaW5lTWFuYWdlcixcbn0gZnJvbSAnQG5nLW1hcHMvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBHb29nbGVQb2x5bGluZU1hbmFnZXIgZXh0ZW5kcyBQb2x5bGluZU1hbmFnZXI8Z29vZ2xlLm1hcHMuUG9seWxpbmU+IHtcbiAgY29uc3RydWN0b3IoX21hcHNXcmFwcGVyOiBNYXBzQXBpV3JhcHBlciwgX3pvbmU6IE5nWm9uZSkge1xuICAgIHN1cGVyKF9tYXBzV3JhcHBlciwgX3pvbmUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIF9jb252ZXJ0UG9pbnRzKFxuICAgIGxpbmU6IE5nTWFwc1BvbHlsaW5lLFxuICApOiBBcnJheTxnb29nbGUubWFwcy5MYXRMbmdMaXRlcmFsPiB7XG4gICAgcmV0dXJuIGxpbmUuX2dldFBvaW50cygpLm1hcChcbiAgICAgIChwb2ludDogTmdNYXBzUG9seWxpbmVQb2ludCkgPT5cbiAgICAgICAgKHtcbiAgICAgICAgICBsYXQ6IHBvaW50LmxhdGl0dWRlLFxuICAgICAgICAgIGxuZzogcG9pbnQubG9uZ2l0dWRlLFxuICAgICAgICB9IGFzIGdvb2dsZS5tYXBzLkxhdExuZ0xpdGVyYWwpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkUG9seWxpbmUobGluZTogTmdNYXBzUG9seWxpbmUpIHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5fY29udmVydFBvaW50cyhsaW5lKTtcbiAgICBjb25zdCBwb2x5bGluZVByb21pc2UgPSB0aGlzLl9tYXBzV3JhcHBlci5jcmVhdGVQb2x5bGluZSh7XG4gICAgICBjbGlja2FibGU6IGxpbmUuY2xpY2thYmxlLFxuICAgICAgZHJhZ2dhYmxlOiBsaW5lLmRyYWdnYWJsZSxcbiAgICAgIGVkaXRhYmxlOiBsaW5lLmVkaXRhYmxlLFxuICAgICAgZ2VvZGVzaWM6IGxpbmUuZ2VvZGVzaWMsXG4gICAgICBzdHJva2VDb2xvcjogbGluZS5zdHJva2VDb2xvcixcbiAgICAgIHN0cm9rZU9wYWNpdHk6IGxpbmUuc3Ryb2tlT3BhY2l0eSxcbiAgICAgIHN0cm9rZVdlaWdodDogbGluZS5zdHJva2VXZWlnaHQsXG4gICAgICB2aXNpYmxlOiBsaW5lLnZpc2libGUsXG4gICAgICB6SW5kZXg6IGxpbmUuekluZGV4LFxuICAgICAgaWNvbnM6IGxpbmUuaWNvbnMsXG4gICAgICBwYXRoLFxuICAgIH0pO1xuICAgIHRoaXMuX3BvbHlsaW5lcy5zZXQobGluZSwgcG9seWxpbmVQcm9taXNlKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVQb2x5bGluZVBvaW50cyhsaW5lOiBOZ01hcHNQb2x5bGluZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHBhdGggPSB0aGlzLl9jb252ZXJ0UG9pbnRzKGxpbmUpO1xuICAgIGNvbnN0IG0gPSB0aGlzLl9wb2x5bGluZXMuZ2V0KGxpbmUpO1xuICAgIGlmIChtID09IG51bGwpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG4gICAgcmV0dXJuIG0udGhlbigobDogZ29vZ2xlLm1hcHMuUG9seWxpbmUpID0+XG4gICAgICB0aGlzLl96b25lLnJ1bigoKSA9PiB7XG4gICAgICAgIGwuc2V0UGF0aChwYXRoKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2V0UG9seWxpbmVPcHRpb25zKFxuICAgIGxpbmU6IE5nTWFwc1BvbHlsaW5lLFxuICAgIG9wdGlvbnM6IHsgW3Byb3BOYW1lOiBzdHJpbmddOiBhbnkgfSxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbCA9IGF3YWl0IHRoaXMuX3BvbHlsaW5lcy5nZXQobGluZSk7XG4gICAgbD8uc2V0T3B0aW9ucyhvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVQb2x5bGluZShsaW5lOiBOZ01hcHNQb2x5bGluZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG0gPSB0aGlzLl9wb2x5bGluZXMuZ2V0KGxpbmUpO1xuICAgIGlmIChtID09IG51bGwpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG4gICAgcmV0dXJuIG0udGhlbigobDogZ29vZ2xlLm1hcHMuUG9seWxpbmUpID0+XG4gICAgICB0aGlzLl96b25lLnJ1bigoKSA9PiB7XG4gICAgICAgIGwuc2V0TWFwKG51bGwpO1xuICAgICAgICB0aGlzLl9wb2x5bGluZXMuZGVsZXRlKGxpbmUpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVFdmVudE9ic2VydmFibGU8VD4oXG4gICAgZXZlbnROYW1lOiBzdHJpbmcsXG4gICAgbGluZTogTmdNYXBzUG9seWxpbmUsXG4gICk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXI6IE9ic2VydmVyPFQ+KSA9PiB7XG4gICAgICB0aGlzLl9wb2x5bGluZXMuZ2V0KGxpbmUpPy50aGVuKChsOiBnb29nbGUubWFwcy5Qb2x5bGluZSkgPT4ge1xuICAgICAgICBsLmFkZExpc3RlbmVyKGV2ZW50TmFtZSwgKGU6IFQpID0+XG4gICAgICAgICAgdGhpcy5fem9uZS5ydW4oKCkgPT4gb2JzZXJ2ZXIubmV4dChlKSksXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19