private void btnGerarRota_Click(object sender, EventArgs e)
        {
            try
            {
                txtRota.Text = "Processando...";

                Dictionary<string, int> qtdAgenciasPorBanco = new Dictionary<string, int>();
                foreach (KeyValuePair<int, string> banco in bancos)
                {
                    string txtbanco = ((TextBox)pnlBancos.Controls.Find("txt" + banco.Value.Trim(), true).First()).Text;
                    int qtd = 0;
                    if (Int32.TryParse(txtbanco, out qtd) && qtd > 0)
                    {
                        qtdAgenciasPorBanco.Add(banco.Value, qtd);
                    }
                }
                //qtdAgenciasPorBanco.Add("Banco do Brasil", 1);
                //qtdAgenciasPorBanco.Add("Caixa Economica Federal", 1);

                AGCaixeiroViajantePMX.AlgGenetico algGenetico = new AGCaixeiroViajantePMX.AlgGenetico(qtdAgenciasPorBanco, latitude, longitude);
                List<Rota> rota = algGenetico.RecuperarRotaAgencias();

                StringBuilder roteiro = new StringBuilder("Voce deve:");
                foreach (Rota rotaAtual in rota)
                {
                    roteiro.AppendFormat("\r\n ir a \"{0}\" que fica na latitude: {1} e longitude: {2}, percorrendo {3} KM,\r\n", rotaAtual.Destino, rotaAtual.Latitude, rotaAtual.Longitude, rotaAtual.Distancia);
                }

                txtRota.Text = roteiro.ToString();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                if (txtRota.Text == "Processando...")
                {
                    txtRota.Text = "";
                }
            }
        }
        static void Main(string[] args)
        {
            Coordenadas cord = GoogleGeoCode.GetCoordenadas("Avenida Maranhão, 235 - Parque Paraíso - Itapecerica da Serra/SP");
            // cord = GoogleGeoCode.GetCoordenadas("Rua Brigadeiro Araujo, 76 - Freguesia do Ó - Sao Paulo/SP");

            Console.WriteLine("Latitude:{0}, Longitude:{1}", cord.Latitude, cord.Longitude);
            //Console.Read();

            Dictionary<string, int> qtdAgenciasPorBanco = new Dictionary<string, int>();
            qtdAgenciasPorBanco.Add("Banco do Brasil", 1);
            qtdAgenciasPorBanco.Add("Caixa Economica Federal", 1);

            AGCaixeiroViajantePMX.AlgGenetico algGenetico = new AGCaixeiroViajantePMX.AlgGenetico(qtdAgenciasPorBanco, (double)cord.Latitude, (double)cord.Longitude);
            List<Rota> rota = algGenetico.RecuperarRotaAgencias();

            StringBuilder roteiro = new StringBuilder("Voce deve:");
            foreach (Rota rotaAtual in rota)
            {
                roteiro.AppendFormat("\n ir a \"{0}\" que fica na latitude: {1} e longitude: {2}, percorrendo {3} KM,\n", rotaAtual.Destino, rotaAtual.Latitude, rotaAtual.Longitude, rotaAtual.Distancia);
            }

            Console.WriteLine(roteiro.ToString());
            Console.ReadKey();
        }