/// <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(); } } }
/// <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); } }
/// <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; } }