/**
* @ngdoc managers
* @name AreaAtuacaoManager
* @module s4c.managers.AreaAtuacaoManager
*
* @description
* `AreaAtuacaoManager` Componente para comunicação entre uma página html qualquer e o controller da diretiva
*
*
*/
(function () {
'use strict';
function AreaAtuacaoManager(MainState, $q, $mdDialog, MapaService) {
var subItens = new L.LayerGroup([]);
return {
'ativo': false,
'activeWindow': false,
'top': 10,
'right': 10,
'data': {},
'camerasProximas': [],
'poisProximos': [],
'incidentesProximos': [],
'poisAlertados': [],
'poiCamadas': [],
'subItens': new L.LayerGroup([]),
'poiAtivo': -1,
/**
* @method abrirAreaAtuacao
* @param {*} id
*/
'abrirAreaAtuacao': function (id) {
this.ativo = true;
var areaAtuacao = MainState.getDirective('areaAtuacao');
areaAtuacao.buscarRegiao(id);
},
/**
* @method voarParaSubItem
* @param {*} data
* @param {*} obj
*/
'voarParaSubItem': function (data, obj) {
var coords;
MainState.managers.HabilitarCamadasManager.habilitarCamadas(obj);
if (typeof obj.geojson === 'string') {
coords = JSON.parse(obj.geojson);
} else {
coords = obj.geojson;
}
var coords2 = JSON.parse(data.poiGeometricoBuffer);
var centroid = turf.centroid(coords2);
MapaService.destacarSubItem(coords);
},
/**
* @method fechar
* @param {*} force
*/
'fechar': function (force) {
var self = this;
if (!force) {
self.ativo = false;
} else {
MapaService.changeClass(false);
self.ativo = false;
}
var areaAtuacao = MainState.getDirective('areaAtuacao');
areaAtuacao.fechar();
MapaService.removerPoiClicado();
MapaService.removerLinhas();
MapaService.removerLayers(subItens.getLayers());
subItens.clearLayers();
}
};
}
AreaAtuacaoManager.$inject = [
'MainState',
'$q',
'$mdDialog',
'MapaService'
];
angular.module('s4c.managers')
.service('AreaAtuacaoManager', AreaAtuacaoManager);
})();