UNPKG

angular2-google-maps

Version:

Angular 2 components for Google Maps

82 lines 3.53 kB
import { Injectable, NgZone } from '@angular/core'; import { Observable } from 'rxjs/Observable'; import { GoogleMapsAPIWrapper } from './../google-maps-api-wrapper'; export var MarkerManager = (function () { function MarkerManager(_mapsWrapper, _zone) { this._mapsWrapper = _mapsWrapper; this._zone = _zone; this._markers = new Map(); } MarkerManager.prototype.deleteMarker = function (marker) { var _this = this; var m = this._markers.get(marker); if (m == null) { // marker already deleted return Promise.resolve(); } return m.then(function (m) { return _this._zone.run(function () { m.setMap(null); _this._markers.delete(marker); }); }); }; MarkerManager.prototype.updateMarkerPosition = function (marker) { return this._markers.get(marker).then(function (m) { return m.setPosition({ lat: marker.latitude, lng: marker.longitude }); }); }; MarkerManager.prototype.updateTitle = function (marker) { return this._markers.get(marker).then(function (m) { return m.setTitle(marker.title); }); }; MarkerManager.prototype.updateLabel = function (marker) { return this._markers.get(marker).then(function (m) { m.setLabel(marker.label); }); }; MarkerManager.prototype.updateDraggable = function (marker) { return this._markers.get(marker).then(function (m) { return m.setDraggable(marker.draggable); }); }; MarkerManager.prototype.updateIcon = function (marker) { return this._markers.get(marker).then(function (m) { return m.setIcon(marker.iconUrl); }); }; MarkerManager.prototype.updateOpacity = function (marker) { return this._markers.get(marker).then(function (m) { return m.setOpacity(marker.opacity); }); }; MarkerManager.prototype.updateVisible = function (marker) { return this._markers.get(marker).then(function (m) { return m.setVisible(marker.visible); }); }; MarkerManager.prototype.updateZIndex = function (marker) { return this._markers.get(marker).then(function (m) { return m.setZIndex(marker.zIndex); }); }; MarkerManager.prototype.addMarker = function (marker) { var markerPromise = this._mapsWrapper.createMarker({ position: { lat: marker.latitude, lng: marker.longitude }, label: marker.label, draggable: marker.draggable, icon: marker.iconUrl, opacity: marker.opacity, visible: marker.visible, zIndex: marker.zIndex, title: marker.title }); this._markers.set(marker, markerPromise); }; MarkerManager.prototype.getNativeMarker = function (marker) { return this._markers.get(marker); }; MarkerManager.prototype.createEventObservable = function (eventName, marker) { var _this = this; return Observable.create(function (observer) { _this._markers.get(marker).then(function (m) { m.addListener(eventName, function (e) { return _this._zone.run(function () { return observer.next(e); }); }); }); }); }; MarkerManager.decorators = [ { type: Injectable }, ]; /** @nocollapse */ MarkerManager.ctorParameters = function () { return [ { type: GoogleMapsAPIWrapper, }, { type: NgZone, }, ]; }; return MarkerManager; }()); //# sourceMappingURL=marker-manager.js.map