Estou pesquisando no Google por algumas semanas, mas tenho algumas dificuldades para descobrir por onde começar meu projeto e que parte das pilhas geográficas disponíveis são obrigatórias para minhas necessidades.
Tenho uma sólida experiência em Java, algum interesse pelo Python e totalmente aberto para aprender algumas novas tecnologias.
Como hobby, e por estar intimamente relacionado ao meu trabalho, pretendo desenvolver um jogo de guerra estratégico para MMO na Web, fortemente baseado em mapas interativos (basicamente para exibir a situação tática e dar ordens às unidades).
Aqui está o que eu estava pensando:
- Geoserver para servir mapas e camadas.
- PostGIS para armazenar geodatas.
- GeoExt para exibir em um navegador
- Apache Clique como servidor de aplicativos Java (resolução de combate, gerenciamento de unidades)
Consegui implantar um GeoServer (guerra no tomcat, mais fácil é difícil) Consegui instalar o PostGreSQL Executo alguns tutoriais sobre o GeoExt. Preciso experimentar um pouco de Javascript. Eu brinquei com o Apache Click para servir páginas e formulários.
Aqui está o fluxo que eu estava pensando:
- O GeoServer serve os planos de fundo e as camadas do mapa construídos a partir de dados PostGIS para objetos estáticos (cidades, pontos de vitória, territórios, ...)
- O Apache Click gera páginas HTML + GeoExt no navegador do cliente.
- O Apache Click envia comandos CRUD para o PostGIS em resposta à ação do usuário.
- [algo] atualiza regularmente o PostGIS (movimentos, resolução de combate, gerenciamento de características da unidade ...)
- O Apache Click gera dinamicamente arquivos KML para atualizar ao vivo o navegador (KML NetworkLink?) Para unidades exibidas com ícones, zonas (alcance, detecção ...) ...
E agora, o tijolo que faltava na minha pequena parede:
- Como posso implementar uma camada "mar / terra". Por exemplo, para invalidar um movimento de navio que passa em terra? Camada GeoServer? Zonas definidas no PostGIS?
- O fluxo a seguir é reativo o suficiente para atualizar o mapa após uma ação do usuário: Evento HTML / GeoExt -> Apache Clique em processo -> Atualização PostGIS -> Atualização da camada GeoServer -> exibição HTML / GeoExt
O ponto principal é: onde estão os dados se eu quiser usá-los para cálculo e atualização? Camada estática do GeoServer ou tabelas PostGIS?