Google Maps - Tira dúvidas artigo ClubeDelphi 104
Após a publicação do artigo sobre Google Maps na ClubeDelphi 104, houve uma mudança no sistema do Google que acabou causando dúvida em todos. Vejam as explicações nesse artigo on-line.
Estatísticas:









votos: 2
Serviços:

Google Maps com Win32
Integre seus sistemas com o Google Maps
Após a publicação do meu artigo sobre Google Maps na ClubeDelphi 104, recebi muitos e-mails de leitores informando que o código não funcionava, então resolvi investigar o problema para ver onde que ocorreu o erro. Descobri que problema não está no código publicado na revista e sim por um motivo bem simples: a rua é nova e não consta no banco de dados do Google ou simplesmente há algo de errado em um dos endereços digitados. É o que diz a mensagem exibida pelo endereço original de exemplo utilizado na revista como podemos ver na Figura 1.

Figura 1. Erro na página original do Google
Ao traduzirmos a mensagem teremos o texto
"A localização geográfica de um dos endereços não pode ser encontrada. Isso pode ser devido ao fato do endereço ser relativamente novo ou incorreto."
Muitos leitores conseguiram visualizar as respectivas rotas apenas modificando e testando outros endereços no exemplo criado. Em estudo descobri que podem ocorrer outros erros que na verdade são avisos, por exemplo. Quando joguei a rota:
Origem: Rua Dança do Fogo, 91, Sao Paulo, SP
Destino: Rua Direita 100, Centro, Sao Paulo, SP
A mensagem "Essa rota possui muitos vértices" aparece, como na Figura 2. Esse aviso aparece porque o caminho é bastante longo e um alerta é exibido. De qualquer forma a rota é carregada normalmente (Figura 3).

Figura 2. Mensagem de alerta

Figura 3. Mapa carregado
Uma alternativa para esse "erro" é omitir a mensagem apenas retirando-a do código JavaScript como vemos a seguir em um trecho de código:
...
Add(' function onGDirectionsLoad(){');
Add(' var poly = gdir.getPolyline();');
// Add(' if (poly.getVertexCount() > 100) {');
// Add(' alert("Esta rota possui muitos vértices.");');
// Add(' return;');
// Add(' }');
...
Estudando mais ainda a API do Google percebi que houve uma pequena alteração nela. Quando jogamos um endereço que ele possivelmente não reconhece, o Google Maps mostra uma lista de possíveis ruas a esquerda do mapa.
Experimente digitar o endereço: Rua 15 de Novembro, 466, Sao Paulo, SP no link maps.google.com e veja o que acontece (Figura 4). Uma lista é carregada a esquerda e o mais impressionante, nenhuma das ruas corresponde ao endereço digitado. A rua citada, uma das mais conhecidas de São Paulo, não foi encontrada de forma alguma no Google para frustração do autor. Testei pessoalmente diversas ruas que contém números como Av 23 de Maio, Largo 13 de Maio, Rua 18 de Setembro, e, aparentemente, o Google possui alguma dificuldade em encontrar as ruas ou a mesma está cadastrada de forma diferente, com algarismos romanos, por exemplo.

Figura 4.Sugestão de ruas
Então na realidade, o grande lance do Google Maps é estudar bem seus exemplos e tentar reproduzí-los na aplicação. O segredo do artigo foi transformar todo o conteúdo dos exemplos em uma grande String. As áreas variáveis foram concatenadas a essa grande string, exemplo:

Perceba que concatenamos a string que monta a tag em HTML ao texto que recebemos por parâmetro na função, veja:
procedure TForm1.CriarMapa(AOrigem, ADestino, ALocalidade: string);
Add('' + '''' + AOrigem + '''' + ',' + '''' + ADestino + '''' + ',' + '''' + ALocalidade + '''' + '); return false">');
Vermelho: As variáveis que recebemos por parâmetro;
Verde: Código Delphi;
No final de tudo inserimos o conteúdo da super-string em uma variável do tipo TStringList e a salvamos no disco rígido como um arquivo HTML:
SaveToFile(ExtractFilePath(Application.ExeName)+'mapa2.html');
E então carregamos o arquivo no TWebBrowser para ser exibido para o usuário final. Realmente não há nenhum segredo.
WebBrowser1.Navigate(ExtractFilePath(Application.ExeName)+'mapa2.html');
Até mais e um forte abraço.




Editorial - Clube Delphi 108

Artigo Clube Delphi 105 - Conhecendo o Delphi Prism

Artigo Clube Delphi 105 - Delphi for PHP x Ajax

Artigo Clube Delphi 105 - Editorial

Artigo WebMobile 26 - Mobilidade e Web Services

Artigo Clube Delphi 106 - PHP com WebServices

Artigo Clube Delphi 106 - Conhecendo o RapidSQL

Artigo Clube Delphi 106 - DataBase Gear

Artigo Clube Delphi 106 - Editorial

Artigo Clube Delphi 107 - Editorial



Curso Online - Delphi Fundamental (Win32)

Curso Online-Aplicação Financeira com Delphi 2009 e MySQL

Curso on-line Rave Reports

Curso Online - Criando uma Aplicação multi-camadas Completa com Delphi

Rad Studio 2007-DBX4 e Firebird 2.0-Aplicação comercial de vendas do Inicio ao Fim

Introdução ao ASP

Curso Completo MySQL

jQuery – A Biblioteca JavaScript para Webdesigners




[vídeo] Consumindo os dados via ajax – Consumindo dados com getJson do jQuery utilizando POCO EF 4.0 – Parte 3

[vídeo] Classe POCO – Consumindo dados com getJson do jQuery utilizando POCO EF 4.0 – Parte 1

Imprimindo Relatório : VCL Crystal Reports XI - Delphi

VCL Crystal Reports XI - Delphi

[vídeo] Gerenciamento das Comunicações - Curso Gerência de Projetos – Parte 8

[vídeo] Plano de Comunicação - Curso Gerência de Projetos – Parte 9

[vídeo] Seleção e Priorização de Projetos - Curso Gerência de Projetos – Parte 6

[vídeo] Escopo, metas, premissas, restrições - Curso Gerência de Projetos – Parte 7

[vídeo] Documento Conceitual do Projeto - Curso Gerência de Projetos – Parte 5


Você está em:




Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

