Após publicar as matérias anteriores sobre como mostrar os mapas do Google e como traçar rotas do Google a partir de aplicativos Delphi, conversando com o Paulo Geloramo da Assis Informática de Assis – SP, ele me mostrou uma versão mais simplificada que ele fez da rotina.
Durante a nossa conversa, acabamos indo pesquisar o que seriam alguns dos parâmetros que existem no final da URL de pesquisa que carrega o mapa e traça a rota.
Fazendo algumas experimentações, chegamos à conclusão e constatamos que a rotina funciona mesmo sem aqueles parâmetros, o que a torna mais simplificada ainda.
Bom, aqui abaixo mais uma função para mostrar o mapa e traçar a rota, agora bem mais simplificada:
procedure Rota(Logradouro1, Numero1, Cidade1, UF1, CEP1, Logradouro2, Numero2, Cidade2, UF2, CEP2: string);
var
strUrl: String;
begin
strURL := 'http://maps.google.com.br/maps?f=q&source=s_q&hl=pt-BR&geocode=&q=' +
' from: ' + AnsiToUtf8(Logradouro1) + ', ' + Numero1 + ', ' +
AnsiToUtf8(Cidade1) + ', ' + UF1 + ', ';
if Length(CEP1) > 1 Then
strURL := strURL + FormatMaskText('99999-999;0; ', CEP1);
strURL := strURL + ' to: ' + AnsiToUtf8(Logradouro2) + ', ' +
Numero2 + ', ' + AnsiToUtf8(Cidade2) + ', ' + UF2 + ', ';
if Length(CEP2) > 1 Then
strURL := strURL + FormatMaskText('99999-999;0; ', CEP2)' + ‘&ie=UTF8’;
ShellExecute(0, nil, PChar(strURL), nil, nil, 0);
end;
Veja que os parâmetros de CEP podem não ser informados (passar uma string vazia como parâmetro), mas se o endereço existir em duplicidade na cidade (como é o caso de São Paulo), você terá problemas ao traçar a rota.
Para definir corretamente o endereço, passe o parâmetro de CEP para a API processar a URL sem ambiguidades.
Você pode acrescentar o parâmetro de zoom ao final da URL, utilizando o parâmetro ‘&z=’, se optar por não utilizar este parâmetro será retornado o mapa com o zoom abrangendo toda a rota, e o usuário poderá posicionar e escolher o nível de zoom manualmente.
Veja também que foi usada a função AnsiToUtf8 do Delphi, isto é para os casos em que você possui acentuação no nome do endereço, se não usar esta conversão, a função não irá funcionar como o esperado.
2 comentários:
FidiDeus, parabéns, muuuuuuiiiiito bom isso.
Giba
Hurrah, that's what I was exploring for, what a material! present here at this web site, thanks admin of this website.
Also visit my web blog: Bench Craft Company advertising agencies in atlanta jobs
Postar um comentário