Notei que no desenvolvimento de sistemas, mesmo que de pequeno porte, em Java puro na raca, envolvem tamanho esforco e bem grande, necessitando de um largo espaco de tempo para sua conclusao, com ajuda de Framework's como o Spring, Hibernate, Quartz entre outros conseguimos reduzir esse tempo em boas proporcoes, pois e possivel focar no que realmente importa em desenvolver as regras envolvidas deixando as preocupacoes de disparidades entre ambientes de lado, claro que ha coisas ainda para se preocupar como por ex. ter uma aplicacao escalavel.. multi thread.. varios aspectos que contam no desempenho da sua aplicacao.Se voce optar em comecar a aprender java prepare seu psicologico pois a curva de aprendizagem e bem grande.. hoje em dia ter solidos conhecimentos em frameworks ja citados sao essencias para ter uma boa colocacao no mercado de trabalho. Para quem ja desenvolve em C# || Delphi vai ficar bem familiarizado com a sintaxe do Java ou vise versa.Comunidade Java que um dia pode te ajudar GUJ. Depois de um bom tempo sumido desse blog, decidi retornar com minhas anotacoes e compartilhar algumas descobertas e experiencias.. dessa vez compartilhando algumas dicas interessantes para quem vai iniciar o desenvolvimento com API de mapa tipo, Google Maps Api ou Leaftlet (OSM).. desafios que provavelmente ira enfrentar..Em aplicacoes que permitem realizar rastreamento de ativos, ou exibicao de muitos marcadores (Markers), dependendo da quantidade exigira que tenha algumas estrategias para minimizar tanto a carga de dados quanto, a manipulacao dos mesmos..No meu caso tive uma quantidade absurda de ativos para tratar acima de 50k.. Logo tive que aplicar medidas para melhorar o desempenho e de forma e tornar fluida a navegacao na aplicacao..Utilizei o angular-google-maps como lib para construcao da minha app, bem documentado e com a comunidade bastante ativa, nao vou entrar em detalhes de implementacao apenas apresentar algumas licoes aprendidas. Estrategias utilizadas:Divisao em LayersUtilizar zoom para exibir/ocultar Layers Criacao de Cluster Filtrar ao selecionar o ClusterCache da primeira LayerRegras de limpeza da LayerEventos em Lazy-load (mouseover, mouseout, click, blclick..) Vamos aos Problema/EstrategiaProblema 1# - Plotagem dos diversos ativos no mapa, ou seja somente exibir os marcadores.Estrategia 1# - Criacao de diferentes camadas (Layers), criando hierarquia entre os ativos de formar que a exibir inicialmente 1 Camada do mais externo, e medida que o usuario for interagindo com essa camada ir exibindo as demais, sem a necessidade de plotar todos de uma so vez. Na API utilizada para cada layer foi criado uma nova tag <ui-gmap-markers>.Problema 2# - Apos a plotagem dos ativos, como haviam muitos foi possivel verificar que conforme o zoom iria diminuindo, ou seja se afastando da cidade.. para niveis de estados, havia muita informacao misturada poluindo a tela.Estrategia 2# - Conforme os niveis de zoom iriam aumentando seriando exibidas novas Layers, e o movimento oposto foi adicionado o comportamento para ocultar as layers. Na API mencionada acima evento utilizado foi o idle do mapa, nesse evento e ideal pois so dispara quando o usuario termina a acao por completo..Problema 3# - Ainda muita informacao com o Zoom em nivel de pais.. =/Estrategia 3#