Planeta Tutorial
Planeta Tutorial

Ola Visitante, Seja bem vindo(a) ao Planeta Tutorial, esta-mos em construção em breve estaremos prontos para lhe atender e fornecer-lhe tutoriais e dicas diversas para você aprimorar os seus conhecimentos e passar para outros. esperamos que você goste de nosso conteudo e se torne um Membro para poder participar ainda mais de nossas atividades. Vale também ressaltar que, Para você ter acesso aos links por ai , é necessário ser registrado, então se registre .
Se já tem uma conta no forúm,
Logue-se .


Participe do fórum, é rápido e fácil

Planeta Tutorial
Planeta Tutorial

Ola Visitante, Seja bem vindo(a) ao Planeta Tutorial, esta-mos em construção em breve estaremos prontos para lhe atender e fornecer-lhe tutoriais e dicas diversas para você aprimorar os seus conhecimentos e passar para outros. esperamos que você goste de nosso conteudo e se torne um Membro para poder participar ainda mais de nossas atividades. Vale também ressaltar que, Para você ter acesso aos links por ai , é necessário ser registrado, então se registre .
Se já tem uma conta no forúm,
Logue-se .
Planeta Tutorial
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Painel de Usuario

Mensagens: 0


Alterar
Ver
Tópicos e mensagens
Menu
Redes Sociais
Procurar
 
 

Resultados por:
 


Rechercher Pesquisa avançada

Translate
Últimos assuntos
» Regras da Área de pedidos
Traçando Mapas ponto a ponto utilização API do Google Maps EmptyTer 28 Jun 2011 - 17:31 por Admin

» Efeito Glow
Traçando Mapas ponto a ponto utilização API do Google Maps EmptySeg 27 Jun 2011 - 17:39 por Admin

» Efeito Brilho Suave nas fotos
Traçando Mapas ponto a ponto utilização API do Google Maps EmptySeg 27 Jun 2011 - 17:33 por Admin

» Arte geométrica com Photoshop
Traçando Mapas ponto a ponto utilização API do Google Maps EmptySeg 27 Jun 2011 - 17:31 por Admin

» Efeito Varinha Mágica no Photoshop
Traçando Mapas ponto a ponto utilização API do Google Maps EmptySáb 25 Jun 2011 - 15:20 por konan

» Montagem multicolorida com tintas e efeitos diversos
Traçando Mapas ponto a ponto utilização API do Google Maps EmptySáb 25 Jun 2011 - 15:18 por konan

» Linhas luminescentes no Photoshop
Traçando Mapas ponto a ponto utilização API do Google Maps EmptySáb 25 Jun 2011 - 15:17 por konan

» Segredos sobre design de site
Traçando Mapas ponto a ponto utilização API do Google Maps EmptySex 24 Jun 2011 - 23:00 por konan

» Hardware para iniciantes, parte 5
Traçando Mapas ponto a ponto utilização API do Google Maps EmptySex 24 Jun 2011 - 22:41 por konan

Estatísticas
Temos 26 usuários registrados
O último membro registrado é kaironborges

Os nossos membros postaram um total de 144 mensagens em 142 assuntos
Radio Jovem Pan
Relogio
maio 2024
SegTerQuaQuiSexSábDom
  12345
6789101112
13141516171819
20212223242526
2728293031  

Calendário Calendário

Visitou

Traçando Mapas ponto a ponto utilização API do Google Maps

Ir para baixo

Traçando Mapas ponto a ponto utilização API do Google Maps Empty Traçando Mapas ponto a ponto utilização API do Google Maps

Mensagem por Admin Dom 12 Jun 2011 - 21:03

Como esse é meu primeiro artigo, primeiramente gostaria de saudar todos os programadores Delphi.

Nesse Artigo vamos ver como se utiliza a API do Google para traçar mapas ponto a ponto dentro da nossa aplicação Delphi, esse exemplo já possui uma chave de acesso, mais se você for colocar em um webserver, terá que gerar uma chave pública do Google[Tens de ter uma conta e sessão iniciada para poderes visualizar este link] , ai basta trocar a chave do exemplo por essa nova.

Criamos uma nova aplicação no Delphi
File->New->Application.
Traçando Mapas ponto a ponto utilização API do Google Maps Image001
Você vai precisar colocar no formulário, 1 panel alinhado ao Top, 2 Edit’s aonde serão informados os endereços de Origem e Destino, 1 Botão para executar o evento, e um TWebBrowser.
Traçando Mapas ponto a ponto utilização API do Google Maps Image002
Após ter criado o formulário e inserido os itens necessários, vamos criar o procedimento responsável por gerar os Mapas.

Para conseguirmos gerar esse mapa e visualizá-lo, vamos criar um arquivo do tipo html em Run Time, para isso vamos utilizar uma StringList que vai receber as informações.

procedure TFormMapa.MontarMapa(AOrigem, ADestino: String);
var
slXSL: TStringList;
key : String;
begin
{verifica se existe o arquivo mapa.html no diretorio, caso exista deleta o mesmo}
if FileExists(ExtractFilePath(Application.ExeName) + 'Mapa.html') then
DeleteFile(ExtractFilePath(Application.ExeName) + 'Mapa.html');

{key é a chave que você vai gerar no site do google maps [Tens de ter uma conta e sessão iniciada para poderes visualizar este link] }
key := 'ABQIAAAALi1YYAioizP-JR6n3o7OMRQiyMoscvuT0eTAWvcsKO5wYPZiExQMPxbJlvsjqSvYBXk1Ep2PSR-xQg';

{cria a StringList, e atribui a mesma as informações para gerar o arquivo Mapa.Html}
try
slXSL := TStringList.Create;
slXSL.Add('');
slXSL.Add('');
slXSL.Add('');
slXSL.Add('');
slXSL.Add('Marcos Ganz - Traçar rota');
slXSL.Add('');
slXSL.Add('');
slXSL.Add('');
slXSL.Add(' //cria variáveis globais a serem usadas');
slXSL.Add(' var map;');
slXSL.Add(' var directionsPanel;');
slXSL.Add(' var directions;');
slXSL.Add(' var origem;');
slXSL.Add(' var destino;');
slXSL.Add(' //cria mapa quando página carregar');
slXSL.Add(' window.onload = function() {');
slXSL.Add(' //define que o mapa será desenhado dentro do elemento ''mapa''');
slXSL.Add(' map = new GMap2(document.getElementById("map"), { size: new GSize(710,480) })');
slXSL.Add(' //insere o controle que possibilita usuário aumentar/diminuir zoom');
slXSL.Add(' map.addControl(new GLargeMapControl());');
slXSL.Add(' //usando as coordenadas de latitude e longitude para São Paulo/SP');
slXSL.Add(' map.setCenter(new GLatLng(-23.547779, -46.639366), 12);');
slXSL.Add(' directionsPanel = document.getElementById("route");');
slXSL.Add(' origem = ' + QuotedStr(AOrigem)+ '; ');
slXSL.Add(' destino = ' + QuotedStr(ADestino)+ '; ');
slXSL.Add(' directions = new GDirections(map, directionsPanel);');
slXSL.Add(' //efetua a busca, quando usuário clicar no botão');
slXSL.Add(' var fromAddress = origem;');
slXSL.Add(' var toAddress = destino;');
slXSL.Add(' directions.load(fromAddress + " to " + toAddress, {"locale":"pt_BR"});');
slXSL.Add(' }');
slXSL.Add('
');
slXSL.Add('');
slXSL.Add('');
slXSL.Add('');
slXSL.Add('
');
slXSL.Add('
');
slXSL.Add('
');
slXSL.Add('
');
slXSL.Add('');
slXSL.Add('');

{salva o arquivo Mapa.html no diretorio da Aplicação.}
slXSL.SaveToFile(ExtractFilePath(Application.ExeName) + 'Mapa.html');
finally
FreeAndNil(slXSL);
end;

end;


Note que logo no inicio do procedimento existe uma variável chamada Key, ela vai receber a chave que você gerou no site [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

Após o procedimento estar criado, no evento OnClick() do Botão Traçar Roteiro faça a chamado do procedimento da seguinte forma.


procedure TFormMapa.Button1Click(Sender: TObject);
begin
MontarMapa(edtOrigem.Text, edtDestino.Text);
WebBrowser1.Navigate('file://' + ExtractFilePath(Application.ExeName) + 'Mapa.html');
end;


Nesse evento você está chamando o procedimento MontarMapa passando o endereço de origem e destino, logo após isso o webBrowser receber no seu navigate o endereço do aplicativo na maquina + ‘Mapa.html’ exemplo C:\Documents and Settings\Marcos Ganz\Desktop\Mapa\Mapa.html, fazendo com que a página seja carregada no WebBrowser dentro da sua aplicação.
Traçando Mapas ponto a ponto utilização API do Google Maps Image003

Feito isso o Gerador está concluído.

Você pode alterar alguns parâmetros no arquivo html gerado e hospedar o mesmo no IIS, acesso o link [url=http://marcosganz.no-ip.biz:8080/mapa/ e veja o exemplo dessa hospedagem.][/url]

[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
Admin
Admin
Fundador
Fundador

Respeito às regras : Respeito as regras 100%

Mensagens : 65
Reputação : 0
Data de inscrição : 31/05/2011

https://planetatutorial.forumeiros.com

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos