예제 #1
0
파일: Program.cs 프로젝트: falreis/tcc
        private static void TimerCallback(Object o)
        {
            int index = random.Next(taxistas.Count);

            //define a direção para onde será colocado o próximo ponto
            int direcao_latitude  = (rand_pos.NextDouble() > 0.5) ? 1 : -1;
            int direcao_longitude = (rand_pos.NextDouble() > 0.5) ? 1 : -1;

            //se o taxi ainda não possui uma posição atual
            if (taxistas[index].PosicaoAtual == null)
            {
                const int CONSTANTE_DISTANCIA_MAXIMA_INICIAL_NOVO_PONTO = 20;
                double    incremento_latitude  = rand_pos.NextDouble() * direcao_latitude / CONSTANTE_DISTANCIA_MAXIMA_INICIAL_NOVO_PONTO;
                double    incremento_longitude = rand_pos.NextDouble() * direcao_longitude / CONSTANTE_DISTANCIA_MAXIMA_INICIAL_NOVO_PONTO;

                //define a posição inicial do taxi
                taxistas[index].PosicaoAtual = new Localizacao(LATITUDE_BASE + incremento_latitude, LONGITUDE_BASE + incremento_longitude);
            }
            else
            {
                //atualiza a posição atual do taxi
                taxistas[index].PosicaoAtual.Latitude  += 0.0005 * direcao_latitude;
                taxistas[index].PosicaoAtual.Longitude += 0.0005 * direcao_longitude;
            }

            Console.WriteLine(string.Format("Placa: {0}  > lat: {1} ; lng:{2}", taxistas[index].Veiculo.Placa, taxistas[index].PosicaoAtual.Latitude, taxistas[index].PosicaoAtual.Longitude));

            TaxistaLocationClient taxista_location = new TaxistaLocationClient();

            taxista_location.AtualizarPosicao(taxistas[index].ID, taxistas[index].PosicaoAtual.Latitude, taxistas[index].PosicaoAtual.Longitude);
            //GC.Collect();
        }
예제 #2
0
        private static void CarregarTaxistas()
        {
            taxistas = Taxista.ListarTodos().OrderBy(tx => tx.Pessoa.NomeOuRazaoSocial).Take(NUMERO_TAXISTAS).ToList();

            for (int i = 0; i < taxistas.Count; i++)
            {
                taxistas[i].PosicaoAtual = DefinirPosicao();

                TaxistaLocationClient taxista_location = new TaxistaLocationClient();
                taxista_location.IniciarPosicaoComStatusAleatorio(taxistas[i].ID, taxistas[i].PosicaoAtual.Latitude, taxistas[i].PosicaoAtual.Longitude);
            }
        }