angular2-google-maps
Version:
Angular 2 components for Google Maps
63 lines • 2.34 kB
JavaScript
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
;