Пример #1
0
        /// <summary>
        /// Evento do botão zonear
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_zonearAluno_Click(object sender, EventArgs e)
        {
            var t = CarregaProgressoThread();

            try
            {
                LimpaGridView();

                coordenadas = Zoneador.Georreferenciar(msk_cep.Text, txt_mumresidencia.Text); //Georreferencia o aluno pelo SISGEO
                lbl_aviso_coordenadas.Visible   = true;
                lbl_aviso_coordenadas.Text      = $@"Coordenadas localizadas pelo SISGEO!";
                lbl_aviso_coordenadas.ForeColor = Color.Navy;

                if (coordenadas[0] == null || coordenadas[0].Equals("0"))
                {
                    //Georreferencia o aluno pelo GOOGLE
                    coordenadas = Zoneador.Locate($"{txt_mumresidencia.Text}+{txt_logradouro.Text.Replace(" ","+")},+{cbo_bairro.Text.Replace(" ","+")},+betim,+brasil");
                    lbl_aviso_coordenadas.Text      = @"Coordenadas localizadas pelo GOOGLE!";
                    lbl_aviso_coordenadas.ForeColor = Color.Firebrick;
                }

                lbl_latitude.Text  = coordenadas[0];
                lbl_longitude.Text = coordenadas[1];

                zoneamentoControl = new ZoneamentoControl();

                if (rdb_ens_fundamental.Checked)
                {
                    dgv_zoneamento.DataSource = zoneamentoControl.RetornaEscolasEndereco(coordenadas[0], coordenadas[1], mantenedor: 1, raio: Convert.ToInt32(nud_raioBusca.Value));
                }
                else
                {
                    dgv_zoneamento.DataSource = zoneamentoControl.RetornaCrechesEndereco(coordenadas[0], coordenadas[1], Convert.ToInt32(nud_raioBusca.Value));
                }

                for (int i = 0; i < dgv_zoneamento.Rows.Count; i++)
                {
                    dgv_zoneamento["DistanciaCaminhando", i].Value = Metrics.CalculaDistanciaCaminhando(coordenadas[0], coordenadas[1], dgv_zoneamento["latitude", i].Value.ToString(), dgv_zoneamento["longitude", i].Value.ToString());
                }

                dgv_zoneamento.Sort(dgv_zoneamento.Columns[4], ListSortDirection.Ascending);
            }
            catch (Exception exception)
            {
                if (t.IsAlive)
                {
                    t.Abort();
                }
                Mensageiro.MensagemErro(exception, this);
            }
            finally
            {
                if (t.IsAlive)
                {
                    t.Abort();
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Localiza as solicitações a partir de uma coordenada
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_localizar_Click(object sender, EventArgs e)
        {
            var t = CarregaProgressoThread();

            try
            {
                if (cbo_instituicao.SelectedValue == null)
                {
                    throw new Exception("A instituição não foi selecionada!");
                }

                controleInstituicao = new InstituicaoControl();

                coordenadasInstituicao = new string[2];

                coordenadasInstituicao = controleInstituicao.RetornaCoordenasInstituicao((int)cbo_instituicao.SelectedValue);

                controleZoneamento = new ZoneamentoControl();

                DataTable dt_solicitacoes = controleZoneamento.RetornaCoordSolicitacoesInstituicoes(coordenadasInstituicao[0], coordenadasInstituicao[1], (int)nud_raioBusca.Value, (int)cbo_anos_ensino.SelectedValue);

                dgv_solicitacoes.DataSource = dt_solicitacoes;

                dgv_solicitacoes.Columns.Remove("Mantenedor");

                dgv_solicitacoes.Columns["CodigoEscola"].Visible           = false;
                dgv_solicitacoes.Columns["CodigoSolicitacao"].DisplayIndex = 0;
                dgv_solicitacoes.Columns["NomeAluno"].DisplayIndex         = 1;
                dgv_solicitacoes.Columns["Escola"].DisplayIndex            = 2;
                dgv_solicitacoes.Columns["Escola"].HeaderText          = "EscolaSolicitada";
                dgv_solicitacoes.Columns["DistanciaReta"].DisplayIndex = 3;


                //  dgv_solicitacoes.Sort(dgv_solicitacoes.Columns[4],ListSortDirection.Ascending);
                if (t.IsAlive)
                {
                    t.Abort();
                }
            }
            catch (Exception exception)
            {
                if (t.IsAlive)
                {
                    t.Abort();
                }
                Mensageiro.MensagemErro(exception, this);
            }
        }
Пример #3
0
        /// <summary>
        /// Calcula a distancia de acordo com o endereço do aluno
        /// </summary>
        /// <param name="IdSolicitacao"></param>
        /// <param name="latitude"></param>
        /// <param name="longitude"></param>
        private void ZonearAluno(int IdSolicitacao, string latitude, string longitude)
        {
            var t = CarregaProgressoThread();

            try
            {
                zoneamentoControl = new ZoneamentoControl();

                if (rdb_ens_fundamental.Checked)
                {
                    dgv_zoneamento.DataSource = zoneamentoControl.RetornaInstituicoes(IdSolicitacao, (int)nud_raioBusca.Value);
                }
                else
                {
                    dgv_zoneamento.DataSource = zoneamentoControl.RetornaCreches(IdSolicitacao, (int)nud_raioBusca.Value);
                }

                for (int i = 0; i < dgv_zoneamento.Rows.Count; i++)
                {
                    dgv_zoneamento["DistanciaCaminhando", i].Value = Metrics.CalculaDistanciaCaminhando(latitude, longitude, dgv_zoneamento["latitude", i].Value.ToString(), dgv_zoneamento["longitude", i].Value.ToString());
                }

                dgv_zoneamento.Sort(dgv_zoneamento.Columns[4], ListSortDirection.Ascending);
                if (t.IsAlive)
                {
                    t.Abort();
                }
            }
            catch (Exception exception)
            {
                if (t.IsAlive)
                {
                    t.Abort();
                }
                throw exception;
            }
        }