Home Reference Source

Aqui vai estar o código para a API Gisplay v2. Esta versão conterá alguns melhoramentos da API anterior e será adicionada a componente temporal à mesma.


Instalação

  1. Instalar node.js
  2. Após esta instalação fazer clone deste projeto com o git: git clone https://rr_alves@bitbucket.org/Gisplay_Team/gisplayv2.git
  3. Navegar para a pasta do projeto (cd gisplayv2)
  4. Executar os seguintes comandos por esta ordem:
    • npm i
    • npm start
  5. Abrir o ficheiro index.html da pasta dist num browser atualizado(Opera, Chrome, Firefox).

OU

  1. Instalar node.js
  2. Executar o seguinte comando

    Windows: git clone https://rr_alves@bitbucket.org/Gisplay_Team/gisplayv2.git; cd ./gisplayv2/ES6; npm i; npm start

    OSX?/Linux: git clone https://rr_alves@bitbucket.org/Gisplay_Team/gisplayv2.git && cd ./gisplayv2/ES6 && npm i && npm start

  3. Abrir o ficheiro index.html da pasta dist num browser atualizado(Opera, Chrome, Firefox).

Demos

Demos podem ser vistos em: Rui Alves GitHub Online page.

Estes serão atualizados automaticamente quando for corrido o comando

> node shell.js

Fases

  1. Modificar API corrente de modo a resolver problemas pertinentes. 06/03 - 03/04 (Ver abaixo)
  2. Reformulação da API tendo em conta a componente temporal
  3. Implementação.
  4. Avaliação comparativa.
  5. Escrita do documento final.

O que tiver sido feito em cada fase aparecerá a riscado

Fase 1 (Corrente) 06/03 - 03/04

  1. Acabar estudo WebGL.
  2. Documentar métodos e classes da API anterior com JSDoc.
  3. Testes à versão atual.
  4. Seleção de áreas e popup associado.
  5. Seleção de ponto ou conjunto de pontos e popup associado.
  6. Mudança do uso da cor.
  7. Adicionar formato de dados CSV.
  8. Adicionar outros fornecedores de Mapas de fundo.
  9. Possibilidade de adicionar múltiplas projeções.
  10. Heat Map
Tarefa Planeamento Feito (❌ ou ✅ )
1 14/03 - 15/05
2 16/03
3 17/03
4 18/03
5 19/03 - 20/03
6 21/03
7 22/03 - 23/03
8 24/03 - 25/03
9 26/03 - 29/03
10 30/03 - 03/04

Fase 2(Futura)



Tools Used

Nome Uso URLs
1.webpack2 Bundle de todo o código. webpack.js + github
2.shelljs Executar comandos nativos c/ JS shelljs.org + github
3.VSCode IDE utilizado vscode + extensions
4.Mocha Ou Karma Test JS code mochajs + Karma ?
5.Chrome Profiler for GPU and CPU Profiling code GPU Memory Tracing Chromium
6.ESDoc Document Code ESDoc + GitHub

1.webpack2

Fazer bundling do codigo e passar de ES2015 para o browser(criando um único ficheiro gisplayv2.bundle.js)

2. shelljs

Automaticamente correr comandos para fazer commit para o repositório github dos Demos

Basicamente permite executar comandos nativos (e.g., ls, dir, rm) em qualquer SO(Windows, Linux, OSX) através de javascript.

No caso deste repositório, no ficheiro shell.js é possível ver que este faz a cópia do ficheiro index.html e do ficheiro gisplayv2.bundle.js para a pasta do repositório github pages que criei. Depois faz commit e push para esse mesmo repositorio online.

Usando o github pages permite aceder online aos demos que forem sendo criados (O link está na pagina mãe deste repositorio).

3. VSCode IDE

Bom IDE para JS, TS. Particularmente linguagens web funciona muito bem.

5. Profiling

  1. Chrome DevTools: JavaScript CPU Profiling in Chrome 58 2.MemoryInfra - Tool integrated in Chromium/Chrome/Opera
  2. GPU

6. Documentation

Usar ESDoc. Permite ainda usar Mocha para testes.

Ver Integration Test Codes.

Ver resultado final ESDoc Test


Known Issues

  1. RTree not working due to call issue.


TRASH ZONE(IGNORE)

Esta zona não interessa de momento.
  1. First, the API will be ported to ES6 or Typescript and an workflow will be added, something like webpack to automatically reload on changes, saving time later on.
  2. After that some things will be changed like the use of color, allow the use of multiple projections, CSV data format and implementation of Heat Map.
  3. Reformulation of the API to deal with the temporal component.
  4. Implementation of 3.
  5. Benchmarking between Temporal Gisplay and other APIs (Leaflet, MapMap).

If Typescript is used then the output can be either ES5 or ES6 allowing any future improvement upon this API to be done in Typescript or in any of those previously mentioned (ES5 or ES6).

Possible problems:

  1. To use Typescript one must install:

    • nodejs
    • typescript
  2. Some browsers may not fully support ES6 but the convertion is easy to do with babel.