App Mapa de Imagem
Especificação (Pedro Markun)
App1 - Mapa de Participação dos Comicios
Sistema que permite taggear pedaços de uma imagem.
A idéia é uma interface de tela inteira, com uma grande imagem (ou precisariam ser varias pequenas imagens - tipo tiles?) dos comicios das diretas. O usuário pode selecionar (ou clicar e isso geraria um ponto a partir do centro com um raio pŕe-definido) em um pedaço da imagem e se marcar lá. Isso abre um popup para o cara inserir dados adicionais.
O sistema precisa mostrar todos os objetos taggeados simultaneamente - com algum tipo de solução pra não ficar um em cima do outro. E deve também ter suporte a mouseover e onclick nesses elementos. (Ai a idéia é que abra um popup para o cara ver as informações).
Por fim, a idéia é que os pontos marcados fiquem destacados de alguma forma. A idéia que isso possa ser configurado posteriormente, mas só para exemplificar:
- Um canvas preto por cima da imagem. Quando o cara for passando o mouse, ele consegue ver a imagem por baixo do mouse. Quando ele clica, o sistema 'marca' aquele pedaço como transparente.
- Uma imagem preto-e-branco. Quando o cara for passando o mouse, a imagem fica colorida. Quando ele clica, o sistema 'marca' aquele pedaço e fica colorido.
- Uma imagem pixelada. Quando o cara for passando o mouse, a imagem fica com boa resolução. Quando ele clica, o sistema 'marca' aquele pedaço com boa resolução.
Queria que o sistema fosse independente de banco de dados. Somente lendo e cuspindo um formato padrão de JSON. Ai a plataforma cuidaria de armazenar e expor esses dados pro sistema.
Deu pra sacar? Tem alguns detalhes não-resolvidos nesse sistema. Mas na minha cabeça a idéia é fazer (ou modificar algo já existente) um sistema que seja só o meio de campo mesmo. Então coisas como 'o que vai nesse popup?' seriam resolvidos fora desse plugin javascript.
Ideias
Usar <canvas> para pegar cada pixel da imagem e tratar neles eventos onclick/onmouseover. Podemos dividir a imagem em vários <canvas> para não sobrecarregar. Os efeitos podem ser implementados diretamente no <canvas> (muito gasto computacional) ou usando CSS3 ou SVG por cima da imagem.
Versões/Tarefas
0.1
- Implementar uma versão de teste com uma imagem de tela inteira em canvas e tratar cada pixel com onclick/onmouseover
- Disparar popup com esses eventos ou algo configurado por JSON
- Apresentar ao Pedro
0.2
- Implementar efeitos (direto em <canvas> ou CSS3 ou SVG?)
- Dividir imagem em vários <canvas>
- Apresentar ao Pedro