Então vamos lá....
Como eu tinha postado
aqui, eu queria fazer uma pequena aplicação que servisse como exemplo do
Google Maps API. A idéia era fazer um mapa meteorológico, sendo que a maior dificuldade seria conseguir os dados atualizados.
Pois bem, pesquisa vai, pesquisa vem...
Primeiro, descobri que o meu exemplo não é novo: o próprio
Google, nas
páginas de referências do
API, apresenta a idéia de um mapa meteorológico para ilustrar a utilização do
Zoom Level (
aqui), sendo que os dados eram gerados de forma aleatória. E não é só isso. O que o
Google apresentou como um exemplo, o
The Weather Channel apresentou como aplicativo, como pode ser visto aqui, exatamente do jeito que eu pensei (será que eles leram o meu blog?). Como não gosto de apresentar algo que já foi apresentado, então vamos para outro exemplo.
Com a mudança para
Gravataí, e com o meu
Jeep (!!!) ainda em
Soledade (veja o que postei
aqui), tive que aprender a utilizar as linhas de ônibus municipais. E que melhor lugar que o
Google Map para isto?. Primeiro, acessei o sitio da empresa de ônibus da cidade, a
Sogil. Vi que lá não tem nenhum mapinha, nem no sitio da prefeitura municipal (então a idéia é nova). Peguei a relação das ruas onde passa as principais linhas do meu bairro e fui para o mapa.
A primeira dificuldade era plotar estes dados no mapa. Comecei tentando "forçar" o
Geocoding, passando o nome da rua/avenida de toda a linha para o
Maps localizar, só que na medida que as ruas eram adicionadas o sistema acabava ficando instável (obviamente não foi projetado para isto). A outra idéia foi fazer uma função que passasse os cruzamentos para a API localizar, através do
Geocoding via http, e depois plotar os pontos recebidos no mapa. Claro que haveriam erros, principalmente os logradouros que não são retos, que teriam que ser resolvidos manualmente. Só que, infelizmente, localizar cruzamentos não funcionam nos mapas do Brasil, diferente se você tentasse localizar, por exemplo,
montgomery dr & pine needle ln, miami, FL, ou
montgomery dr corner pine needle ln, miami.
A solução seria colocar os ponto manualmente mesmo. Ao invés de usar uma série de coordenadas geográficas em modo "texto" para criar os
overlays das linhas, resolvi criar, como recomenda o
Google, utilizando o
Encoded Polylines, que compacta os dados, acarretando em menor utilização de memória (os vetores criados a partir do
polylines são gerados utilizando
recursos locais, via de regra). Para tanto utilizei o
Interactive Polyline Encoder Utility, disponibilizado pelo
Google.
Continua no próximo post....
F.M.
P.S.: Um post completo sem falar na Claro 3G. Que milagre... (vide aqui, aqui, aqui, e aqui)