UNPKG

angular2-google-maps

Version:

Angular 2 components for Google Maps

63 lines 2.34 kB
"use strict"; var core_1 = require('@angular/core'); var Observable_1 = require('rxjs/Observable'); var google_maps_api_wrapper_1 = require('./../google-maps-api-wrapper'); /** * Manages all KML Layers for a Google Map instance. */ var KmlLayerManager = (function () { function KmlLayerManager(_wrapper, _zone) { this._wrapper = _wrapper; this._zone = _zone; this._layers = new Map(); } /** * Adds a new KML Layer to the map. */ KmlLayerManager.prototype.addKmlLayer = function (layer) { var newLayer = this._wrapper.getNativeMap().then(function (m) { return new google.maps.KmlLayer({ clickable: layer.clickable, map: m, preserveViewport: layer.preserveViewport, screenOverlays: layer.screenOverlays, suppressInfoWindows: layer.suppressInfoWindows, url: layer.url, zIndex: layer.zIndex }); }); this._layers.set(layer, newLayer); }; KmlLayerManager.prototype.setOptions = function (layer, options) { this._layers.get(layer).then(function (l) { return l.setOptions(options); }); }; KmlLayerManager.prototype.deleteKmlLayer = function (layer) { var _this = this; this._layers.get(layer).then(function (l) { l.setMap(null); _this._layers.delete(layer); }); }; /** * Creates a Google Maps event listener for the given KmlLayer as an Observable */ KmlLayerManager.prototype.createEventObservable = function (eventName, layer) { var _this = this; return Observable_1.Observable.create(function (observer) { _this._layers.get(layer).then(function (m) { m.addListener(eventName, function (e) { return _this._zone.run(function () { return observer.next(e); }); }); }); }); }; KmlLayerManager.decorators = [ { type: core_1.Injectable }, ]; /** @nocollapse */ KmlLayerManager.ctorParameters = function () { return [ { type: google_maps_api_wrapper_1.GoogleMapsAPIWrapper, }, { type: core_1.NgZone, }, ]; }; return KmlLayerManager; }()); exports.KmlLayerManager = KmlLayerManager; //# sourceMappingURL=kml-layer-manager.js.map