Google Maps com Windows Form (Busca Por Lat, Long)

26/04/2013

Bom dia, estou com dificuldades, eu tenho um projeto Windows Form e quero mostrar a área no google map, através da latitude e longitude, que ja vem na aplicação através de XML. Componente que eu tentei utilizar foi, webBrowser com o URI: "http://maps.google.com/maps?q=", e dois textBox com os valores de lat e long. Código abaixo:

private void btnGerar_Click(object sender, EventArgs e)
{
try
{
string lat = string.Empty;
string lon = string.Empty;

lat = textBox1.Text;
lon = textBox2.Text;

StringBuilder queryAddress = new StringBuilder();
queryAddress.Append(lat);
queryAddress.Append(lon);
webBrowser1.Navigate(queryAddress.ToString());
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

O problema é que no webbrowser aparece pagina não encontrada, msg: "Este programa não pode exibir a página da Web".

Leonardo Carvalho

Respostas

26/04/2013

Joel Rodrigues

Tenta o seguinte:
string url_base = "https://maps.google.com.br/maps?q=,";
                string lat = string.Empty;
                string lon = string.Empty;

                lat = textbox1.Text;
                lon = textbox2.Text;

                webBrowser1.Navigate(string.Format(url_base, lat, lon));

Aqui deu certo.
Responder Citar

26/04/2013

Leonardo Carvalho

Opa, vou tentar aqui e já já falo se deu certo.. obrigado
Responder Citar

26/04/2013

Joel Rodrigues

Só otimizando, não precisa atribuir o String.Empty às variáveis.
string url_base = "https://maps.google.com.br/maps?q=,";
string lat = textbox1.Text;
string lon = textbox2.Text;

webBrowser1.Navigate(string.Format(url_base, lat, lon));
Responder Citar

26/04/2013

Leonardo Carvalho

Funcionou aqui, muito obrigado, abusando um pouco da sua boa vontade, sabe como ele já trazer no mapa com zoom e sem o painel lateral ??
Responder Citar

26/04/2013

Joel Rodrigues

Aí teria de analisar os parâmetros da URL. Posso dar uma olhada e já te retorno.
Responder Citar

26/04/2013

Joel Rodrigues

Descobri que o zoom é um parâmetro "z" na URL. Que pelo que vi aqui, vai de 1 a 20. Então, daria pra fazer o seguinte:
                string url_base = "https://maps.google.com.br/maps?q=,&z=";
                string lat = textbox1.Text;
                string lon = textbox2.Text;
                string zoom = textbox3.Text;//aqui você pode pegar de um textbox, controlando os limites (1 a 20)
                //não deixe de passar um valor padrão, caso o usuário não preencha, passe algo razoável, como 1 ou 10

                webBrowser1.Navigate(string.Format(url_base, lat, lon, zoom));
Responder Citar

26/04/2013

Joel Rodrigues

Já o painel lateral, não identifiquei como passar isso como parâmetro. Infelizmente.
Responder Citar

26/04/2013

Leonardo Carvalho

ah entendi.. Muito obrigado Joel, salvou legal !!
Responder Citar

26/04/2013

Joel Rodrigues

Show de bola, amigo. Mais alguma questão ou posso marcar este tópico como Concluído?
Abraço.
Responder Citar

26/04/2013

Leonardo Carvalho

claro, pode sim.
Responder Citar

26/04/2013

Joel Rodrigues

Valeu, amigo.
Estou marcando este tópico como Concluído.
Responder Citar