Array
(
)

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

Leonardo Carvalho
   - 26 abr 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".

Joel Rodrigues
   - 26 abr 2013

Tenta o seguinte:
#Código

string url_base = "https://maps.google.com.br/maps?q={0},{1}";
                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.

0
|
0

Leonardo Carvalho
   - 26 abr 2013

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

0
|
0

Joel Rodrigues
   - 26 abr 2013

Só otimizando, não precisa atribuir o String.Empty às variáveis.
#Código

string url_base = "https://maps.google.com.br/maps?q={0},{1}";
string lat = textbox1.Text;
string lon = textbox2.Text;

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

0
|
0

Leonardo Carvalho
   - 26 abr 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 ??

0
|
0

Joel Rodrigues
   - 26 abr 2013

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

0
|
0

Joel Rodrigues
   - 26 abr 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:
#Código

                string url_base = "https://maps.google.com.br/maps?q={0},{1}&z={2}";
                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));

0
|
0

Joel Rodrigues
   - 26 abr 2013

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

0
|
0

Leonardo Carvalho
   - 26 abr 2013

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

0
|
0

Joel Rodrigues
   - 26 abr 2013

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

0
|
0

Leonardo Carvalho
   - 26 abr 2013

claro, pode sim.

0
|
0

Joel Rodrigues
   - 26 abr 2013

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

0
|
0