/** * Class LeafletCtrl * This is the controller of the leaflet directive */ class LeafletCtrl { /** * LeafletCtrl constructor * @constructor * @param {Object} $element angular $element * @param {Object} leafletService local service */ constructor($element, leafletService) { this.$element = $element; this.leafletService = leafletService; } $onInit() { this.mapid = this.$element.attr('id') || 'map'; this.$element.removeAttr('id'); var div = this.$element.find('div'); div.attr('id', this.mapid); div.attr('id', this.mapid); div.attr('style', this.$element.attr('style')); div.attr('class', this.$element.attr('class')); this.container = div[0]; } $postLink() { if (!L.Icon.Default.imagePath && this.leafletService.settings.imagePath) { L.Icon.Default.imagePath = this.leafletService.settings.imagePath; } var map = L.map(this.container); this.leafletService.data[this.mapid] = map; this.leafletService.updateMapFromSettings(map); this.onMapInitialized({map: map}); } } LeafletCtrl.$inject = ['$element', 'leafletService']; export default LeafletCtrl;