posts recentes

arquivos

tags

participar

links

Quarta-feira, 29 de Junho de 2011
Leitura de EXIF implementado e alguns afinamentos

Novos progressos foram feitos no nosso site. Para começar, uma das funcionalidades "core" a que nos comprometemos está concluída: a leitura de metadados EXIF. Isto permite que as fotografias que contenham estes dados sejam automaticamente georreferenciadas, despreocupando o utilizador. Este automatismo acontece aquando do processo de upload, depois da descrição das fotografias, isto é, quando se passa para o passo de georreferenciação. Aqui as coordenadas são automaticamente guardadas na base de dados e consequentemente essas imagens não aparecem para o utilizador georreferenciar manualmente. Para o utilizador não ser apanhado de surpresa, terá algum feedback do acontecimento.

Neste processo tudo corre bem, excepto quando o dispositivo (telemóvel ou máquina fotográfica) tem o GPS desligado, ou seja, as coordenadas ficam como 0,0. Então tivemos que fazer a verificação das coordenadas, fazendo assim a georreferenciação automática apenas quando a latitude e longitude são diferentes de 0.

E como isto foi feito?

A leitura dos dados exif é feita em php, com a função exif_read_data(“caminho_da_foto”,'GPS'). No entanto, esta informação das coordenadas vem em graus, minutos e segundos, que é incompatível com a API do Google Maps. Sendo assim, para o Google Maps reconhecer a latitude e longitude era necessário converter estes valores para decimal. Para isto usamos a seguinte fórmula: Graus + (Minutos * 1/60 ) + (Segundos * 1/60 *1/60).

E esta foi uma funcionalidade importante no nosso projecto, e sinceramente pensávamos que iria demorar imenso tempo, mas numa questão de poucas horas ficou resolvido.

 

Entretanto fomos limando outras arestas e descobrindo alguns bugs.

Na página de registo, ao escolher o avatar, na thickbox (a janela que aparece em pop-up), depois da imagem estar carregada e pronta para escolher a área que queremos para avatar, o 'formulário' inicial para fazer o upload de imagem continuava lá, o que suscitava dúvida ao utilizador. Como tal, apenas recorremos ao já conhecido jQuery, onde utilizamos a função hide() para esconder a div que continha o tal 'formulário', quando a respectiva página é carregada [ou seja, quando $(document).ready].

Tínhamos também um problema com a lightbox, que funcionava impecavelmente em localhost, mas não no servidor. Isto porque faltavam dois ficheiros .js, que, por razão que até agora não percebemos, não foram copiados.

No index também optimizamos o slider, mais precisamente o mapa. O mapa era criado 4 vezes (o mesmo número que as imagens), para obter as coordenadas das 4 fotos, mas agora tal não acontece. Diminuímos o código correspondente à criação do mapa para um quarto, ou seja, o código de criação do mapa apenas existe uma vez, e o que é actualizado apenas são as variáveis latitude e longitude (variáveis que definem a posição do marker), que vão variar o valor conforme a imagem que estiver visível. Economia de tempo e recursos é o que esta diminuição de código permite.




mais sobre mim

 

Junho 2011
Dom
Seg
Ter
Qua
Qui
Sex
Sab

1
2
3
4

5
6
7
8
9
11

12
13
14
15
16
18

19
20
21
22
23
24
25

26
27
30