/**
* @ngdoc managers
* @name RastreamentoManager
* @module s4c.managers.RastreamentoManager
*
* @description
* `RastreamentoManager` Componente para comunicação entre uma página html qualquer e o controller da diretiva
*
*
*/
(function () {
'use strict';
function RastreamentoManager(MainState, $q, $mdDialog, MapaService) {
var subItens = new L.LayerGroup([]);
return {
'ativo': false,
'activeWindow': false,
'top': 10,
'right': 10,
'data': {},
'pontoMovelAtivo': null,
'posicoesER': [],
'posicaoAtualER': {},
'subItens': new L.LayerGroup([]),
/**
* @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);
/*var distancia = turf.distance(
turf.point([coords.coordinates[1], coords.coordinates[0]]),
centroid,
'miles');*/
MapaService.destacarSubItem(coords);
/*var southWest = new L.LatLng(coords.coordinates[1], coords.coordinates[0]),
northEast = new L.LatLng(coords.coordinates[1], coords.coordinates[0]),
bounds = new L.LatLngBounds(southWest, northEast);
mapa.fitBounds(bounds);*/
},
/**
* @method fechar
* @param {*} force
*/
'fechar': function (force) {
var self = this;
if (!force) {
self.ativo = false;
} else {
mapa.changeClass(false);
self.ativo = false;
}
var areaAtuacao = MainState.getDirective('rastreamento');
areaAtuacao.fechar();
MapaService.removerPoiClicado();
MapaService.removerLinhas();
MapaService.removerLayers(subItens.getLayers());
subItens.clearLayers();
}
};
}
RastreamentoManager.$inject = [
'MainState',
'$q',
'$mdDialog',
'MapaService'
];
angular.module('s4c.managers')
.service('RastreamentoManager', RastreamentoManager);
})();