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 http://code.google.com/apis/maps/signup.html. Basta trocar a chave do exemplo por essa nova.
Criamos uma nova aplicação no Delphi
File->New->Application, como mostra a Figura 1.
Você vai precisar colocar no formulário:
- 1 panel alinhado ao Top,
- 2 Edit’s onde serão informados os endereços de Origem e Destino,
- 1 Botão para executar o evento, e
- 1 TWebBrowser.
Podemos ver o resultado na Figura 2.
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 gerá-lo 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
http://code.google.com/apis/maps/signup.html }
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('');
slXSL.Add(' ');
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 http://code.google.com/apis/maps/signup.html. 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 máquina + ‘Mapa.html’, por 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, como mostra a Figura 3.
Feito isso o Gerador está concluído. Você pode alterar alguns parâmetros no arquivo HTML gerado e hospedar o mesmo no IIS.