Google Maps com Windows Form (Busca Por Lat, Long)
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".
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
Curtidas 0
Respostas
Joel Rodrigues
26/04/2013
Tenta o seguinte:
Aqui deu certo.
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.
GOSTEI 0
Leonardo Carvalho
26/04/2013
Opa, vou tentar aqui e já já falo se deu certo.. obrigado
GOSTEI 0
Joel Rodrigues
26/04/2013
Só otimizando, não precisa atribuir o String.Empty às variáveis.
string url_base = "https://maps.google.com.br/maps?q=,"; string lat = "50"; string lon = "30"; webBrowser1.Navigate(string.Format(url_base, lat, lon));
GOSTEI 0
Joel Rodrigues
26/04/2013
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));
GOSTEI 0
Leonardo Carvalho
26/04/2013
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 ??
GOSTEI 0
Joel Rodrigues
26/04/2013
Aí teria de analisar os parâmetros da URL. Posso dar uma olhada e já te retorno.
GOSTEI 0
Joel Rodrigues
26/04/2013
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 = string.Empty; string lon = string.Empty; string zoom = "10";//aqui você pode pegar de um controle da tela, 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 lat = "50"; lon = "30"; webBrowser1.Navigate(string.Format(url_base, lat, lon, zoom));
GOSTEI 0
Joel Rodrigues
26/04/2013
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));
GOSTEI 0
Joel Rodrigues
26/04/2013
Já o painel lateral, não identifiquei como passar isso como parâmetro. Infelizmente.
GOSTEI 0
Leonardo Carvalho
26/04/2013
ah entendi.. Muito obrigado Joel, salvou legal !!
GOSTEI 0
Joel Rodrigues
26/04/2013
Show de bola, amigo. Mais alguma questão ou posso marcar este tópico como Concluído?
Abraço.
Abraço.
GOSTEI 0
Leonardo Carvalho
26/04/2013
claro, pode sim.
GOSTEI 0
Joel Rodrigues
26/04/2013
Valeu, amigo.
Estou marcando este tópico como Concluído.
Estou marcando este tópico como Concluído.
GOSTEI 0