UNPKG

angular2-google-maps

Version:

Angular 2 components for Google Maps

69 lines 2.62 kB
import { Injectable, NgZone } from '@angular/core'; import { Observable } from 'rxjs/Observable'; import { GoogleMapsAPIWrapper } from '../google-maps-api-wrapper'; export var PolygonManager = (function () { function PolygonManager(_mapsWrapper, _zone) { this._mapsWrapper = _mapsWrapper; this._zone = _zone; this._polygons = new Map(); } PolygonManager.prototype.addPolygon = function (path) { var polygonPromise = this._mapsWrapper.createPolygon({ clickable: path.clickable, draggable: path.draggable, editable: path.editable, fillColor: path.fillColor, fillOpacity: path.fillOpacity, geodesic: path.geodesic, paths: path.paths, strokeColor: path.strokeColor, strokeOpacity: path.strokeOpacity, strokeWeight: path.strokeWeight, visible: path.visible, zIndex: path.zIndex, }); this._polygons.set(path, polygonPromise); }; PolygonManager.prototype.updatePolygon = function (polygon) { var _this = this; var m = this._polygons.get(polygon); if (m == null) { return Promise.resolve(); } return m.then(function (l) { return _this._zone.run(function () { l.setPaths(polygon.paths); }); }); }; PolygonManager.prototype.setPolygonOptions = function (path, options) { return this._polygons.get(path).then(function (l) { l.setOptions(options); }); }; PolygonManager.prototype.deletePolygon = function (paths) { var _this = this; var m = this._polygons.get(paths); if (m == null) { return Promise.resolve(); } return m.then(function (l) { return _this._zone.run(function () { l.setMap(null); _this._polygons.delete(paths); }); }); }; PolygonManager.prototype.createEventObservable = function (eventName, path) { var _this = this; return Observable.create(function (observer) { _this._polygons.get(path).then(function (l) { l.addListener(eventName, function (e) { return _this._zone.run(function () { return observer.next(e); }); }); }); }); }; PolygonManager.decorators = [ { type: Injectable }, ]; /** @nocollapse */ PolygonManager.ctorParameters = function () { return [ { type: GoogleMapsAPIWrapper, }, { type: NgZone, }, ]; }; return PolygonManager; }()); //# sourceMappingURL=polygon-manager.js.map