====== Mini-Curso TerraLib/TerraView ======
* **Parte 1 (4 hs):** Conhecendo o TerraView 5.0\\ Nesse parte do curso será apresentada a versão 5.0 do TerraView, um SIG de propósito geral. Serão abordadas as principais diferenças, vantagens e limitações em relação as versões anteriores. O aluno poderá usar seus próprios dados durante o exercício.
* **Parte 2 (12 hs):** Introdução a programação em TerraLib 5.0\\ Nessa parte do curso será exercitada a construção de aplicativos usando a biblioteca TerraLib na linguagem C++.
* [[:wiki:documentation:devguide#downloading_the_source_code_and_building_instructions|Ambiente de compilação e building, incluindo acesso ao código fonte]] (1 h)
* [[:wiki:documentation:devguide:dependencies|Dependências e bibliotecas de terceiros]] (1 h)
* [[:wiki:documentation:devguide#modules|Visão geral dos módulos]] (1 h)
* Exercitando o módulo data access (2 h)
* Exercitando o módulo vector processing (2 h)
* Exercitando o módulo image processing (2 h)
* Framework de aplicação e sistema de plug-ins (2 h)
* Reuso das interfaces gráficas Qt fornecidas pela biblioteca (1 h)
===== Máquina Virtual =====
Os participantes do curso que tiverem interesse em realizar atividades práticas poderão utilizar o seguinte ambiente de máquina virtual:
* Oracle VirtualBox
* Linux Ubuntu 14.04 LTS (Trusty)
* Usuário: terralib5
* Senha: terra500$lib
* PostgreSQL 9.4.5
* Usuário: postgres
* Senha: secreto
* PostGIS 2.1.8
* TerraLib 5.1.0-alpha: ''/home/terralib5/mylibs/terralib5''
* TerraView 5.1.0-alpha: ''/home/terralib5/mylibs/terralib5''
* Bibliotecas de terceiros: ''/home/terralib5/mylibs''
* Código fonte: ''/home/terralib5/curso/terralib5/codebase''
* Dados de teste: ''/home/terralib5/curso/data''
* Pacote dos fontes de bibliotecas de terceiro: ''/home/terralib5/curso/third-party''
==== Roteiro de Preparacão da Máquina Virtual ====
Todos os detalhes do roteiro abaixo podem ser consultados no [[wiki:documentation:devguide#downloading_the_source_code_and_building_instructions|Guia do Desenvolvedor]].
**1.** Atualizar seu gerenciador de pacotes:
$ sudo apt-get update
**2.** Instalar o git:
$ sudo apt-get install git
**3.** Criar uma pasta para armazenar o repositório da TerraLib e cloná-lo:
$ cd && mkdir -p curso/terralib5/codebase && cd curso/terralib5/codebase
$ GIT_SSL_NO_VERIFY=true git clone https://tester:terralibdpi@git.dpi.inpe.br/terralib5 .
Obs.: Você pode setar a configuração global para não utilizar certificados SSL da seguinte forma:
$ git config --global http.sslVerify false
**4.** Alterar para o branch release-5.1:
$ git checkout -b release-5.1 origin/release-5.1
**5.** Fazer o download o pacote de bibliotecas de terceiro:
$ cd && mkdir -p curso/third-party && cd curso/third-party
$ wget http://terralib5:newterralib5@www.dpi.inpe.br/terralib5-devel/3rdparty/terralib-3rdparty-linux-ubuntu-14.04.tar.gz
**6.** Instalar as bibliotecas de terceiro:
$ TERRALIB_DEPENDENCIES_DIR="/home/terralib5/mylibs" ~/curso/terralib5/codebase/install/install-3rdparty-linux-ubuntu-14.04.sh
**7.** Criar diretório de build:
$ cd ~/curso/terralib5 && mkdir build-release && cd build-release
**8.** Executar CMake para gerar instrucões de build:
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_INSTALL_PREFIX:PATH="/home/terralib5/mylibs/terralib5" -DCMAKE_PREFIX_PATH:PATH="/home/terralib5/mylibs;/home/terralib5/mylibs/pgsql;/home/terralib5/mylibs/gdal2;/usr;/usr/local;" -DTERRALIB_BUILD_UNITTEST_ENABLED:BOOL=OFF -DTERRALIB_DOXYGEN_ENABLED:BOOL=OFF -DGNUGETTEXT_INCLUDE_DIR:PATH='/usr/include' -DGNUGETTEXT_LIBRARY:FILEPATH='/usr/lib/x86_64-linux-gnu/libgettextpo.so' -DGNUICONV_LIBRARY:FILEPATH='/usr/lib/x86_64-linux-gnu/libc.so' ../codebase/build/cmake
**9.** Fazer o build e instalacão:
$ make -j 4
$ make install
==== Conectando-se ao Servidor PostgreSQL ====
$ sudo -u postgres psql
==== Criando um Atalho no Desktop do Ubuntu ====
**1.** Criar um aqruivo chamado TerraView.desktop e salvá-lo na pasta ''~/Desktop'':
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=TerraView 5.1.0 Beta
Comment=TerraView 5.1.0-Beta
Exec=env LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:/usr/local/lib:/home/terralib5/mylibs/terralib5/lib:/home/terralib5/mylibs/lib:/home/terralib5/mylibs/gdal2/lib:/home/terralib5/mylibs/pgsql/lib /home/terralib5/mylibs/terralib5/bin/terraview
Icon=/home/terralib5/mylibs/terralib5/share/terralib/images/png/terralib-globe.png
StartupNotify=false
**2.** Dar privilégio de execução para o atalho criado:
$ chmod 555 ~/Desktop/*.desktop
==== QtCreator ====
CMake Arguments:
-DCMAKE_PREFIX_PATH:PATH="/home/terralib5/mylibs;/home/terralib5/mylibs/pgsql;/home/terralib5/mylibs/gdal2;/usr;/usr/local" -DTERRALIB_BUILD_UNITTEST_ENABLED:BOOL=OFF -DTERRALIB_MOD_QT_PLUGINS_EDIT_ENABLED:BOOL=OFF -DTERRALIB_MOD_QT_PLUGINS_MNT_ENABLED:BOOL=OFF -DTERRALIB_MOD_BINDING_LUA_ENABLED:BOOL=OFF -DTERRALIB_MOD_BINDING_PYTHON_ENABLED:BOOL=OFF -DTERRALIB_DOXYGEN_ENABLED:BOOL=OFF -DGNUGETTEXT_INCLUDE_DIR:PATH='/usr/include' -DGNUGETTEXT_LIBRARY:FILEPATH='/usr/lib/x86_64-linux-gnu/libgettextpo.so' -DGNUICONV_LIBRARY:FILEPATH='/usr/lib/x86_64-linux-gnu/libc.so' -DCMAKE_INSTALL_PREFIX:PATH="/home/terralib5/myinstall/terralib5" -DCMAKE_BUILD_TYPE:STRING="Debug"
===== Guia do Desenvolvedor TerraLib =====
O mini-curso será baseado no seguinte documento: [[:wiki:documentation:devguide|TerraLib 5 Developer's Guide]].
===== Instruções =====
Preparamos um conjunto de scripts CMake para realização das atividades de programação.
Para cada etapa do curso iremos utilizar um dos conjuntos de scripts abaixo:
* [[:wiki:documentation:mini_curso:srs|SRS]]
* [[:wiki:documentation:mini_curso:geom|Geometry]]
* [[:wiki:documentation:mini_curso:dataaccess|Data Access]]
* Framework de Aplicação