• Nenhum resultado encontrado

Concepção e Implementação de um Sistema de Controle de Arborização Urbana através da Integração de Softwares Livres e de Código Aberto

N/A
N/A
Protected

Academic year: 2017

Share "Concepção e Implementação de um Sistema de Controle de Arborização Urbana através da Integração de Softwares Livres e de Código Aberto"

Copied!
63
0
0

Texto

(1)

“J ´

ULIO DE MESQUITA FILHO”

Cˆampus de Presidente Prudente

Bruno C´

esar Vani

Concep¸

ao e Implementa¸

ao de um Sistema de

Controle de Arboriza¸

ao Urbana atrav´

es da

Integra¸

ao de Softwares Livres e de C´

odigo Aberto

(2)

Concep¸

ao e Implementa¸

ao de um

Sistema de Controle de Arboriza¸

ao

Urbana atrav´

es da Integra¸

ao de Softwares

Livres e de C´

odigo Aberto

Trabalho de conclus˜ao de curso apresentada ao Departamento de Matem´atica, Estat´ıstica e Computa¸c˜ao (DMEC), da Universidade Es-tadual Paulista “J´ulio de Mesquita Filho”, sob o t´ıtulo“Constru¸c˜ao de um Sistema de Controle de Arboriza¸c˜ao Urbana atrav´es da Integra¸c˜ao de Ferramentas Livres”.

Orientador:

Prof. Dr. Milton Hirokazu Shimabukuro

Presidente Prudente

(3)

Aluno Bruno C´

esar Vani

Concep¸

ao e Implementa¸

ao de um Sistema de

Controle de Arboriza¸

ao Urbana atrav´

es da

Integra¸

ao de Softwares Livres e de C´

odigo Aberto

Monografia sob o t´ıtulo“Concep¸c˜ao e Implementa¸c˜ao de um Sistema de Con-trole de Arboriza¸c˜ao Urbana atrav´es da Integra¸c˜ao de Softwares Livres e de C´odigo Aberto”, defendida por Bruno C´esar Vani e aprovada em 15 de Dezembro de

2011, em Presidente Prudente, Estado de S˜ao Paulo, pela banca examinadora constitu´ıda pelos doutores:

Prof. Dr. Milton Hirokazu Shimabukuro FCT Unesp

Prof. Dr. Marco Antonio Piteri FCT Unesp

Prof. Dr. Edilson Ferreira Flores FCT Unesp

(4)

Agrade¸co primeiramente a Deus pela oportunidade de concluir este curso, superando todas as dificuldades.

Agrade¸co ao Professor Dr. Milton Hirokazu Shimabukuro e Me. ´Italo Tsuchya, pelo apoio e incentivo nos projetos que me possibilitaram grande aprendizado extracurricular.

Agrade¸co tamb´em aos amigos Vinicius Akira Suyama e Dallan Augusto Toledo Reis, pela parceria nos trabalhos em equipe ao longo do curso.

(5)

Ferramentas computacionais adequadas permitem construir aplica¸c˜oes capazes de vin-cular informa¸c˜oes `a sua localiza¸c˜ao f´ısica, bem como represent´a-la em um esquema visual e interativo, atingindo eficientemente o poder de comunica¸c˜ao visual. Isso faz com que o usu´ario sintetize informa¸c˜oes de maneira simples e eficiente. A estas aplica¸c˜oes podemos atrelar a defini¸c˜ao de Sistema de Informa¸c˜ao Geogr´afica (SIG). Os SIG’s abrangem di-versos conceitos e disciplinas, com a finalidade principal de coletar, armazenar, visualizar e processar dados espaciais, obtendo assim as informa¸c˜oes necess´arias para tomada de decis˜oes.

Em meio a este contexto, apresentamos neste trabalho a Concep¸c˜ao e a Implementa¸c˜ao de um Sistema de Controle de Arboriza¸c˜ao Urbana atrav´es da Integra¸c˜ao de Softwares Livres e de C´odigo Aberto. Esta concep¸c˜ao surgiu a partir da necessidade de um Projeto Ambiental desenvolvido pela Casa da Agricultura do munic´ıpio de Regente Feij´o, que tem como objetivos principais a cataloga¸c˜ao e gerenciamento da arboriza¸c˜ao urbana do munic´ıpio.

Por abordar esta diversidade de conceitos, o desafio na constru¸c˜ao deste sistema est´a na integra¸c˜ao das plataformas que est˜ao envolvidas em todas as suas etapas: coleta e armazenamento de dados, inclus˜ao de mapas e demais informa¸c˜oes espaciais, opera¸c˜oes sobre as informa¸c˜oes armazenadas, obten¸c˜ao de resultados e visualiza¸c˜ao gr´afica dos mes-mos.

Ap´os a implementa¸c˜ao, foi poss´ıvel propiciar ao usu´ario do sistema um aumento na capacidade de percep¸c˜ao na an´alise das informa¸c˜oes, bem como facilitar o processo de tomada de decis˜oes.

(6)

Suitable computacional tools allow to build applications that can link information to its physical location, and represent them into visual and interactive schemes, effectively reaching the power of visual comunication. This leads the user to synthesize information in a simple and efficient way. These applications are linked to the definition of Geographic Information System (GIS). GIS are comprised by many concepts and tools, which have the main purpose of collecting, storing, viewing and processing spatial data, obtaining the information needed for decision making.

Within this context, this paper presents the Conception and Implementation of a Control System for Urban Forestry through Integration of Free and Open Source Soft-ware. This conception arose from the need of an Environmental Project developed by the Agriculture’s House of the city of Regente Feij´o, which has as main objectives cataloging and management of urban afforestation of the municipality.

Due to this diversity of concepts, the challenge in building this system is the integra-tion of platforms that are involved in all stages: collecting and storage of data, including maps and other spatial information, operations on the stored information, obtaining re-sults and graphical visualization of the same.

After implementation, it was possible to provide for the system users an improvement in the capacity of perception in the information analysis and facilitate the process of decision making.

(7)

1 Introdu¸c˜ao p. 12

1.1 Vis˜ao Geral . . . p. 12

1.2 Objetivos do Trabalho . . . p. 13

1.3 Organiza¸c˜ao do Trabalho . . . p. 13

2 Conceitos e Ferramentas Computacionais p. 14

2.1 Informa¸c˜oes Espaciais . . . p. 14

2.2 Dados Espaciais . . . p. 15

2.3 Geoprocessamento e Sistema de Informa¸c˜ao Geogr´afica . . . p. 16

2.4 Banco de Dados (BD) e Banco de Dados Geogr´afico . . . p. 18

2.4.1 Sistema Gerenciador de Banco de Dados (SGBD) . . . p. 18

2.4.2 PostgreSQL e PostGIS . . . p. 18

2.5 Arquitetura Cliente-Servidor . . . p. 19

2.5.1 Cliente e Servidor Web . . . p. 19

2.5.2 Servidor Web Apache . . . p. 20

2.6 Servidor de Mapas . . . p. 20

2.7 Web mapping . . . p. 21

2.8 Software Livre e de C´odigo Aberto . . . p. 21

(8)

2.9.2 MapServer MapScript . . . p. 24

2.9.3 Mapfile . . . p. 24

2.10 Shapefile . . . p. 26

2.11 p.mapper . . . p. 26

2.12 PHP . . . p. 27

2.13 Javascript e jQuery . . . p. 27

2.14 PHPlot . . . p. 27

3 Concep¸c˜ao do Projeto p. 28

3.1 Obten¸c˜ao e An´alise de Requisitos . . . p. 28

3.2 Modelagem . . . p. 32

4 Integra¸c˜ao das Ferramentas p. 33

4.1 Estrutura da Aplica¸c˜ao . . . p. 33

4.2 Banco de Dados e MapServer . . . p. 33

4.2.1 Criando um banco de dados espacial com PostgreSQL/PostGIS p. 34

4.2.2 Garantindo a Interoperabilidade com o MapServer . . . p. 35

4.2.3 Inser¸c˜ao de dados de natureza espacial . . . p. 36

4.2.4 Consulta a dados de natureza espacial . . . p. 37

4.3 Interface de Navega¸c˜ao e Edi¸c˜ao - PHP/mapscript . . . p. 37

4.3.1 Mapa dinˆamico . . . p. 37

4.3.2 Propriedade “EXTENT” de um mapa . . . p. 38

4.3.3 Zoom . . . p. 41

4.3.3.1 Zoom pontual . . . p. 42

4.3.3.2 Zoom por rolagem de mouse . . . p. 42

(9)

4.3.5 Op¸c˜ao novo ponto de referˆencia . . . p. 46

4.3.6 Op¸c˜ao de Edi¸c˜ao de Ponto de Referˆencia . . . p. 46

4.3.7 Op¸c˜ao Nova ´Arvore . . . p. 49

4.3.8 Ajuste de ´Arvore . . . p. 50

4.3.9 Listar ´Arvore . . . p. 50

4.3.10 Op¸c˜ao Atualizar/Limpar . . . p. 51

4.3.11 Op¸c˜ao Home . . . p. 51

4.3.12 Interface de sele¸c˜ao de Layers e Legendas . . . p. 51

4.3.13 Mapa de Referˆencia e Barra de Escala . . . p. 51

4.4 Interface para Dados Descritivos . . . p. 52

4.4.1 Gerenciamento de Esp´ecies e Cat´alogos de Origem . . . p. 53

4.4.2 Exibi¸c˜ao das Vistorias . . . p. 53

4.4.3 Upload de imagens . . . p. 54

4.4.4 Relat´orios e Gr´aficos . . . p. 55

4.4.4.1 Gr´afico de Distribui¸c˜ao de Esp´ecies e de Sanidade . . . p. 56

4.4.4.2 M´edias dos parˆametros espec´ıficos . . . p. 57

4.4.4.3 Estimativa de ´Area Verde . . . p. 57

4.4.4.4 Rela¸c˜ao de Substitui¸c˜oes . . . p. 57

4.5 Experimentos e Retorno dos Usu´arios . . . p. 58

5 Conclus˜ao p. 59

5.1 Considera¸c˜oes Finais . . . p. 59

5.2 Futuros Trabalhos . . . p. 60

(10)

1 Representa¸c˜ao das estruturas matricial (a) e vetorial (b) . . . p. 16

2 Arquitetura de Sistema de Informa¸c˜ao Geogr´afica. Fonte: (CAMARA et

al., 1996). . . p. 17 3 Arquitetura Cliente-Servidor. Fonte: (KUROSE; ROSS, 2006). . . p. 19 4 Arquitetura de uma aplica¸c˜ao MapServer. Fonte: (MAPSERVER, 2010). p. 23 5 Visualizador p.mapper. Fonte:(P.MAPPER, 2011). . . p. 26 6 Diagrama de classes do Sistema . . . p. 32

7 Arquitetura da aplica¸c˜ao MapServer para este contexto. Adaptada de

(MAPSERVER, 2010). . . p. 34 8 Interface de navega¸c˜ao e edi¸c˜ao implementada . . . p. 38

9 Demonstra¸c˜ao da propriedade extent . . . p. 39

10 Comportamento da funcionalidade pan numa posi¸c˜ao clicada . . . p. 44

11 Comportamento da funcionalidade pan na coordenada de destino . . . p. 45

12 Opera¸c˜oes de deslocamento para satisfazer a funcionalidade pan . . . . p. 46

13 Op¸c˜ao de novo ponto de referˆencia . . . p. 47

14 Op¸c˜ao de ajuste de ponto de referˆencia . . . p. 48

15 Op¸c˜ao de nova ´arvore com ajuste manual de coordenadas . . . p. 50

16 Interface de sele¸c˜ao de layers . . . p. 52

(11)

19 Interface de cria¸c˜ao de esp´ecies - seletor de cores . . . p. 53

20 Interface de vistorias de uma ´arvore . . . p. 54

21 Interface de sele¸c˜ao para relat´orios e gr´aficos . . . p. 55

(12)

1 Exemplo de Mapfile . . . p. 24 2 Instru¸c˜ao SQL para cria¸c˜ao de um banco de dados espacial . . . p. 34

3 Instru¸c˜ao SQL para cria¸c˜ao de uma tabela com dado espacial . . . p. 35 4 Instru¸c˜ao SQL para cria¸c˜ao de uma tabela com dado espacial . . . p. 36 5 Instru¸c˜ao SQL para cria¸c˜ao de uma tabela com dado espacial . . . p. 37 6 Execu¸c˜ao do utilit´ario para obten¸c˜ao da extens˜ao de um mapa . . . p. 39

7 Fun¸c˜ao para convers˜ao de coordenadas de imagem em coordenadas

ge-ogr´aficas . . . p. 40 8 Fun¸c˜ao atualizar extent . . . p. 40

9 Bloco de execu¸c˜ao de zoom pontual . . . p. 42 10 Javascript imgAreaSelect . . . p. 43 11 Consultas para sele¸c˜ao de ponto . . . p. 48 12 Uso da biblioteca WideImage . . . p. 54

13 Consulta para distribui¸c˜ao de esp´ecies . . . p. 56 14 Consulta para distribui¸c˜ao de sanidade . . . p. 56 15 Consulta para obten¸c˜ao de m´edias . . . p. 57 16 Consulta estimativa de ´area verde . . . p. 57

(13)

Cap´ıtulo

1

Introdu¸c˜

ao

1.1

Vis˜

ao Geral

A manipula¸c˜ao de informa¸c˜oes espaciais est´a presente em parte das aplica¸c˜oes envol-vendo banco de dados em geral. Como o volume de informa¸c˜oes desse tipo cresce a todo tempo, o oferecimento de mecanismos complementares na manipula¸c˜ao de dados auxilia nos processos de tomada de decis˜ao.

Ferramentas computacionais adequadas permitem construir aplica¸c˜oes capazes de vin-cular a informa¸c˜ao `a sua localiza¸c˜ao f´ısica, bem como represent´a-la em um esquema visual

e interativo, atingindo eficientemente o poder de comunica¸c˜ao visual. Isso faz com que o usu´ario sintetize informa¸c˜oes de maneira simples e eficiente.

A estas aplica¸c˜oes pode-se atrelar a defini¸c˜ao de Sistema de Informa¸c˜ao Geogr´afica (SIG). Os Sistemas de Informa¸c˜oes Geogr´aficas abrangem diversos conceitos e disciplinas, com a finalidade principal de coletar, armazenar, visualizar e processar dados espaciais,

obtendo assim as informa¸c˜oes necess´arias para tomada de decis˜oes. Al´em de trabalhar com estruturas capazes de armazenar as fei¸c˜oes geom´etricas (pol´ıgonos, por exemplo) e localiza¸c˜oes dos dados, um SIG deve tamb´em ser capaz de trabalhar com os atributos convencionais (alfanum´ericos) que completam a descri¸c˜ao das informa¸c˜oes, propiciando

(14)

1.2

Objetivos do Trabalho

Em meio a este contexto de informa¸c˜ao versus localiza¸c˜ao, utilizamos a id´eia de construir um sistema de controle de arboriza¸c˜ao urbana, que surgiu a partir da necessidade

de um Projeto Ambiental desenvolvido pela Casa da Agricultura do munic´ıpio de Regente Feij´o/SP. Um grande trabalho de campo foi realizado, tendo como resultado um cat´alogo com informa¸c˜oes espec´ıficas, de localiza¸c˜ao e fotos das ´arvores do per´ımetro urbano da cidade.

Com base neste cat´alogo, o foce deste trabalho ´e conceber e implementar um sistema

de controle, representando as ´arvores visualmente no mapa da cidade. As funcionalidades requeridas pelo mesmo foram elaboradas a partir da necessidade do Projeto.

Por abordar esta diversidade de conceitos, o desafio na constru¸c˜ao deste sistema est´a na integra¸c˜ao das plataformas que est˜ao envolvidas em todas as suas etapas: ar-mazenamento e manipula¸c˜ao dos dados, inclus˜ao de mapas e demais informa¸c˜oes espaci-ais, obten¸c˜ao de resultados e visualiza¸c˜ao gr´afica dos mesmos. Todas estas etapas aqui

resumidas fazem partes do problema a ser solucionado como proposta deste trabalho de conclus˜ao de curso.

1.3

Organiza¸c˜

ao do Trabalho

O Cap´ıtulo 2 cont´em a revis˜ao te´orica e pr´atica, no qual s˜ao definidos conceitos e ferramentas importantes para a implementa¸c˜ao do sistema proposto.

O Cap´ıtulo 3 destina-se `a defini¸c˜ao do projeto: obten¸c˜ao e an´alise dos requisitos e

modelagem.

O Cap´ıtulo 4 exibe as solu¸c˜oes encontradas para a resolu¸c˜ao do problema proposto.

Por fim, no Cap´ıtulo 5, uma conclus˜ao ´e apresentada, destacando-se os resultados

(15)

Cap´ıtulo

2

Conceitos e Ferramentas Computacionais

Neste Cap´ıtulo, os conceitos e ferramentas computacionais para a solu¸c˜ao do pro-blema proposto como tema deste Trabalho de Conclus˜ao de Curso s˜ao apresentados. S˜ao

explanados alguns conceitos espec´ıficos para se compreender o uso de banco de dados es-paciais. Tamb´em s˜ao definidas algumas ferramentas utilizadas na manipula¸c˜ao deste tipo de dado, bem como alguns conceitos acerca de arquiteturas de aplica¸c˜oes que os utilizam.

2.1

Informa¸c˜

oes Espaciais

Inicialmente, cabe ressaltar que os termos informa¸c˜oes geoespaciais e informa¸c˜oes

geogr´aficas tamb´em s˜ao utilizados. Conforme trechos publicados pela Comunica¸c˜ao Social do Instituto Brasileiro de Geografia e Estat´ıstica (IBGE) em seu site oficial, obtem-se uma boa defini¸c˜ao para o conceito e uso de informa¸c˜oes espaciais:

(16)

de Posicionamento Global. Informa¸c˜oes geoespaciais s˜ao necess´arias em quase toda atividade de planejamento e administra¸c˜ao. Mapas e dados associados a localiza¸c˜oes s˜ao usados no cotidiano para planejamento e gest˜ao de recursos, oferta de servi¸cos nos setores p´ublico e privado; e tamb´em na elabora¸c˜ao de pol´ıticas p´ublicas. ´E por esta raz˜ao que o uso do Geoprocessamento e da Geotecnologia torna-se essen-cial para gest˜ao, an´alise, tomada de decis˜ao em uma imensa gama de atividades. Os dados digitais s˜ao o pr´e-requisito para o manejo de grandes volumes de dados, em diversas formas, e para o uso de t´ecnicas de visualiza¸c˜ao que permitam o en-tendimento do passado e do presente, e a proje¸c˜ao do futuro. Estando em formato digital, os dados espaciais podem ser armazenados, manipulados, integrados, edita-dos, gerar novas informa¸c˜oes por processamento, e distribu´ıdos entre pesquisadores e cidad˜aos.(IBGE, 2010).

Como se percebe, a dissemina¸c˜ao das informa¸c˜oes espaciais reflete diretamente em variadas ´areas de interesse geral da popula¸c˜ao, expandindo o acesso `a informa¸c˜ao.

2.2

Dados Espaciais

Dados espaciais, tamb´em chamados de geoespaciais ou geogr´aficos, s˜ao utilizados para representa¸c˜ao de informa¸c˜oes espaciais. Este tipo de dado pode ser dividido em dois

com-ponentes, conforme definem Rigaux, Scholl e Voisard (2002): um componente descritivo (para informa¸c˜oes tais como nome e popula¸c˜ao de uma cidade, dentre outros) e um com-ponente espacial (localiza¸c˜ao em certo espa¸co geogr´afico e sua forma geom´etrica).

Pode-se citar duas classes de representa¸c˜ao para este tipo de informa¸c˜ao, conforme descrevem Camara, Davis e Monteiro (2004):

• Estrutura Matricial: tamb´em conhecida como raster, este tipo de estrutura uti-liza uma matriz de duas dimens˜oes para representa¸c˜ao de uma informa¸c˜ao espacial. Cada c´elula (ou pixel, para o caso da tela) desta matriz representa uma coordenada da informa¸c˜ao representada, logo, o elemento da c´elula mant´em um valor capaz

de identificar a informa¸c˜ao mapeada naquele ponto. Estes valores que as c´elulas armazenam podem ser, por exemplo, n´umeros inteiros limitados em um intervalo (como exemplo, valores entre 0 e 255 para representa¸c˜ao de imagens em 8 bits). Pode-se destacar como vantagens deste tipo de estrutura a sua simplicidade e

(17)

e a perda de qualidade pode ser significante. Como alternativa, pode-se aumentar a quantidade de c´elulas. Neste caso, as perdas ser˜ao menores, contudo, mais espa¸co de armazenamento ser´a utilizado, resultando-se em mais custo de processamento;

• Estrutura Vetorial: este tipo de estrutura utiliza basicamente pontos, linhas e

pol´ıgonos para representa¸c˜ao. Os pontos representam entidades por um par de coordenadas. As linhas s˜ao formadas por segmentos originados por pelo menos dois pontos. J´a os pol´ıgonos, s˜ao formados por linhas que delimitam uma ´area. Como vantagens da representa¸c˜ao vetorial, s˜ao destacadas a maior precis˜ao e a facilidade

para representa¸c˜ao de objetos de naturezas variadas e irregulares, tais como a de-limita¸c˜ao de uma cidade ou de um rio. Cabe ressaltar que a implementa¸c˜ao de opera¸c˜oes sobre este tipo de dado s˜ao complexas.

A seguir, a imagem de um mesmo pol´ıgono criado utilizando-se as estruturas matricial - Figura 1 a) - e vetorial - Figura 1 b) -, evidenciando-se as caracter´ısticas citadas:

Figura 1: Representa¸c˜ao das estruturas matricial (a) e vetorial (b)

2.3

Geoprocessamento e Sistema de Informa¸c˜

ao

Ge-ogr´

afica

Camara, Davis e Monteiro (2004) definem que “o termo Geoprocessamento denota a disciplina do conhecimento que utiliza t´ecnicas matem´aticas e computacionais para o tratamento da informa¸c˜ao geogr´afica[...]”.

(18)

ser utilizado em diversas ´areas, tais como: Geografia, Sensoriamento Remoto, Planeja-mento Urbano, Seguran¸ca P´ublica e Engenharia de Tr´afego. Esta abordagem interdis-ciplinar de um SIG possibilita o surgimento de novas tecnologias e aplica¸c˜oes, possibil-itando ao usu´ario obter maneiras mais aprofundadas de interagir com as informa¸c˜oes

armazenadas, al´em de destacar uma importante caracter´ıstica inerente ao ser humano: a comunica¸c˜ao visual.

Os componentes da estrutura b´asica de um SIG propostos por Camara et al. (1996) s˜ao mostrados na Figura 2.

Figura 2: Arquitetura de Sistema de Informa¸c˜ao Geogr´afica. Fonte: (CAMARA et al.,

1996).

Na camada base (Banco de Dados Geogr´afico), h´a o reposit´orio dos dados espaci-ais, cujas defini¸c˜oes ser˜ao detalhadas adiante. As opera¸c˜oes sobre estes dados s˜ao de responsabilidade da camada superior (Gerˆencia de Dados Espaciais), atrav´es do Sistema Gerenciador de Banco de Dados (SGBD) utilizado. Logo acima, aparecem as opera¸c˜oes

realizadas no SIG, que envolvem a entrada e edi¸c˜ao dos dados, realiza¸c˜ao de consultas e an´alises, bem como os esquemas de visualiza¸c˜ao dos mesmos. Por fim, no topo da estrutura, ´e apresentada a interface na qual as opera¸c˜oes s˜ao realizadas pelo usu´ario. Atualmente, h´a diversas plataformas livres que possibilitam a cria¸c˜ao de um SIG.

(19)

2.4

Banco de Dados (BD) e Banco de Dados

Ge-ogr´

afico

Em Date (2000), pode-se abstrair que um banco de dados ´e um conjunto de dados

persistentes que servem de base para uma aplica¸c˜ao. O termo “persistente” define que estes dados s˜ao mantidos em certo reposit´orio para estarem `a disposi¸c˜ao do usu´ario da aplica¸c˜ao a qualquer tempo. A capacidade de armazenamento e manipula¸c˜ao de dados

geogr´aficos ´e o componente adicional que caracteriza umbanco de dados geogr´afico.

2.4.1

Sistema Gerenciador de Banco de Dados (SGBD)

Date (2000) tamb´em define SGBD como um sistema que permite ao usu´ario ar-mazenar, consultar e alterar dados no Banco de Dados. A arquitetura b´asica de um SGBD envolve basicamente quatro componentes:

1. Dados: informa¸c˜oes representadas do mundo real;

2. Hardware: dispositivos de armazenamento permanente onde ficar˜ao armazenados os dados;

3. Software: elo entre os dados e o hardware, e realiza¸c˜ao das opera¸c˜oes sobre os dados que est˜ao armazenados no dispositivo de armazenamento permanente;

4. Usu´arios: desenvolvedores e demais utilizadores da aplica¸c˜ao final.

2.4.2

PostgreSQL e PostGIS

O PostgreSQL ´e um SGBD de c´odigo-fonte aberto muito utilizado no meio acadˆemico e cient´ıfico. Seu projeto foi lan¸cado h´a mais de quinze anos e novas vers˜oes vˆem sendo

incorporadas, propiciando suporte a novas tecnologias e melhorias de desempenho. Seu projeto colaborativo permite que usu´arios de todo o mundo contribuam para seu desen-volvimento e suporte.

O PostGIS ´e um projeto que “adiciona suporte a dados espaciais ao PostgreSQL, possibilitando ent˜ao utiliz´a-lo como um Banco de Dados Geogr´afico em um Sistema de

(20)

2.5

Arquitetura Cliente-Servidor

Considerando um ambiente de rede de computadores, Kurose e Ross (2006) definem que neste tipo de arquitetura h´a uma aplica¸c˜ao servidora que deve estar sempre em

funcionamento. Ela ser´a respons´avel por receber requisi¸c˜oes de aplica¸c˜oes cliente (que n˜ao necessitam se manter em funcionamento o tempo todo) e enviar as respostas a estas requisi¸c˜oes. Cabe ressaltar que cliente e servidor funcionam em sistemas finais diferentes.

No contexto da web, h´a uma aplica¸c˜ao cliente, `a qual ´e denominada cliente web, e uma aplica¸c˜ao servidora, `a qual ´e denominada servidor web. A maneira pela qual estas aplica¸c˜oes se comunicam est´a definida no Protocolo de Transferˆencia de Hipertexto (HTTP), que define a estrutura das mensagens que s˜ao trocadas pelos programas cliente e servidor. A troca de mensagens ´e a maneira com que estes programas se comunicam, num ciclo de requisi¸c˜oes e respostas. Na Figura 3, a representa¸c˜ao desta estrutura proposta por

Kurose e Ross (2006) ´e apresentada, onde um servidor recebe requisi¸c˜oes de dois clientes:

Figura 3: Arquitetura Cliente-Servidor. Fonte: (KUROSE; ROSS, 2006).

2.5.1

Cliente e Servidor Web

Kurose e Ross (2006) tamb´em definem que o cliente web ´e o respons´avel por enviar ao servidor as mensagens de requisi¸c˜ao HTTP. Um navegador de internet, tamb´em co-nhecido como browser, ´e um programa que, al´em de exibir conte´udos de uma p´agina

(21)

“Apache’ e o “Microsoft Internet Information Server”. No contexto daweb, o objeto final destas requisi¸c˜oes e respostas s˜ao arquivos (comumente, p´aginas HTML, imagens, dentre outros).

2.5.2

Servidor Web Apache

O “Apache HTTP Server Project”, conforme denomina¸c˜ao oficial, ´e um “projeto de software desenvolvido atrav´es de esfor¸co colaborativo que visa a cria¸c˜ao de um servidor

web robusto, de grau comercial, com mais recursos e de c´odigo-fonte aberto” (APACHE, 2011). Este projeto ´e gerenciado em conjunto por um grupo de volunt´arios espalhados pelo mundo, e faz parte da “Apache Software Fundation”. Os usu´arios comuns tamb´em contribuem para o desenvolvimento do projeto, atrav´es do envio de sugest˜oes, c´odigo ou

documenta¸c˜ao.

2.6

Servidor de Mapas

Conforme Peng e Tsou (2003), um servidor de mapas ´e o componente capaz de gerar mapas atrav´es da realiza¸c˜ao de consultas espaciais baseadas em requisi¸c˜oes do usu´ario. Algumas caracter´ısticas podem ser citadas, tais como:

• Gera¸c˜ao de mapas atrav´es de requisi¸c˜oes do usu´ario;

• Realiza¸c˜ao de consultas b´asicas acerca do conte´udo do mapa e de atributos de ca-racter´ısticas espaciais;

• Comunica¸c˜ao com outros programas e servi¸cos, tais como SGBD’s ou outros

servi-dores de mapa;

• Extra¸c˜ao de dados que estejam armazenados em um Banco de Dados para gera¸c˜ao de mapas;

• Interface gr´afica e simbologia que permitam aos usu´arios um resultado satisfat´orio;

• O mapa produzido, normalmente, tem uma das formas que seguem:

(22)

2. Uma composi¸c˜ao gr´afica mais complexa, envolvendo estilos, legendas, camadas, s´ımbolos, dentre outros componentes;

3. Um componente em formato vetorial ou raster, de forma que possa ser ma-nipulado pelo cliente, com funcionalidades extras, como consultas, zoom, de-marca¸c˜oes, dentre outras.

2.7

Web mapping

O conceito de web mapping est´a relacionado `a publica¸c˜ao de mapas atrav´es da Inter-net. Peng e Tsou (2003) apresentam um breve hist´orico:

1. Publica¸c˜ao de Mapas Est´aticos (arquivo de imagem em formato “jpg”, “png”, dentre

outros);

2. Web mapping est´atico — Interatividade b´asica atrav´es de formul´arios HTML (im-agem e HTML);

3. Web mapping dinˆamico — DHTML (HTML dinˆamico) — adi¸c˜ao de recursos que incrementam o dinamismo do mapa.

2.8

Software Livre e de C´

odigo Aberto

No site oficial da Free Software Foundation (Funda¸c˜ao para oSoftware Livre -http://www.fsf.org/ - Acesso em 15/05/2011) ´e definido como livre o software que pode ser compartilhado, copiado, adaptado, estudado e usado livremente e sem restri¸c˜oes.

J´a em OSI (2011), s˜ao apresentadas as caracter´ısticas de um Software de c´odigo-aberto, que n˜ao est˜ao associadas somente `a disponibiliza¸c˜ao do c´odigo-fonte:

1. Livre distribui¸c˜ao;

2. C´odigo-fonte incluso;

3. Modifica¸c˜oes e trabalhos derivados s˜ao permitidos;

4. A integridade do Autor deve ser preservada;

(23)

6. Sem restri¸c˜oes de uso a campos de trabalho;

7. Distribui¸c˜ao da licensa a todos que utilizem;

8. Sub-componentes dosoftware sob a mesma licen¸ca;

9. Licen¸ca sem restri¸c˜oes a outros softwares;

10. Licen¸ca de tecnologia neutra - sem embasamento em tecnologias ou estilos de inter-faces individuais.

Al´em das facilidades relacionadas ao uso e distribui¸c˜ao dos Softwares Livres, optou-se neste trabalho pela escolha de ferramentas que perten¸cam a este contexto para propiciar o desenvolvimento e compartilhamento de novas tecnologias e linhas de pesquisa.

2.9

MapServer

O MapServer ´e um projeto de servidor de mapas de c´odigo-fonte aberto que tem como

objetivo principal a cria¸c˜ao dinˆamica de mapas para serem visualizados atrav´es de um navegador de Internet. Abaixo, s˜ao descritas algumas de suas caracter´ısticas principais, conforme descreve MapServer (2010):

• Visualiza¸c˜ao e consultas a dados matriciais, vetoriais e descritivos;

• Interface com SGBD’s, tais como o PostgreSQL e outras fontes de dados (tais como

web services e shapefiles);

• Suporte a v´arios sistemas operacionais (Windows, Linux, Mac OS X, etc);

• Suporte a v´arias linguagens de programa¸c˜ao (PHP, Python, Perl, Ruby, Java,

.NET);

• Alta qualidade de processamento e sa´ıdas personaliz´aveis.

A Figura 4, adaptada de MapServer (2010), ilustra a arquitetura b´asica de uma

aplica¸c˜ao MapServer, com os diversos tipos de tecnologias que podem ser inclu´ıdas.

(24)

Figura 4: Arquitetura de uma aplica¸c˜ao MapServer. Fonte: (MAPSERVER, 2010).

Na camada central da arquitetura aparece a configura¸c˜ao do mapfile - arquivo texto de configura¸c˜ao que serve de base para a aplica¸c˜ao MapServer - a aplica¸c˜ao MapServer im-plementada em modo CGI ou modo MapScript, cujas defini¸c˜oes ser˜ao abordadas adiante, rodando em um servidorweb, como o “Apache” ou o “IIS (Microsoft Internet Information Service)”.

Por fim, na camada inferior, aparece a sa´ıda, que pode ser uma imagem (v´arias

extens˜oes de arquivo s˜ao suportadas), uma composi¸c˜ao de p´agina HTML e imagem ou at´e mesmo interfaces WMS, WFS e WCS (Web Map Services, Web Feature Services e Web Coverage Server, respectivamente). As defini¸c˜oes e padr˜oes para desenvolvimento destas interfaces s˜ao definidos pelo OGC (Open Geospatial Consortium), cons´orcio internacional que define padr˜oes para cria¸c˜ao de objetos espaciais e servi¸cos baseados em localiza¸c˜ao. As defini¸c˜oes podem ser encontradas no site da entidade - http://www.opengeospatial.org (Acesso em 10/09/2011).

2.9.1

MapServer CGI

Numa aplica¸c˜ao em modo CGI (Common Gateway Interface), um programa exe-cut´avel fica `a disposi¸c˜ao no servidorweb da aplica¸c˜ao, e recebe parˆametros para a gera¸c˜ao de uma sa´ıda.

(25)

mapas e dados de sa´ıda. A aplica¸c˜ao requisita a cria¸c˜ao de um mapa, para tanto, envia os parˆametros necess´arios para gera¸c˜ao do mesmo atrav´es de um endere¸co pelo URL (Uniform Resource Locator - em portuguˆes, localizador universal de recurso). Em um URL, o endere¸co de um recurso em certo servidor ´e informado pelo lado cliente de uma

aplica¸c˜ao, bem como os parˆametros para a execu¸c˜ao deste recurso. Por fim, o programa execut´avel recebe os parˆametros e gera a respectiva sa´ıda.

2.9.2

MapServer MapScript

No modo MapScript (que funciona sem interven¸c˜ao do modo CGI), o MapServer ´e utilizado em conjunto com outras linguagens de programa¸c˜ao, tais como PHP, Perl, Python, Ruby, Tcl, Java e .NET, atrav´es da inclus˜ao de m´odulos e bibliotecas. Neste

modo, ´e poss´ıvel explorar recursos adicionais da linguagem de programa¸c˜ao utilizada, sendo poss´ıvel se obter aplica¸c˜oes mais dinˆamicas e complexas.

2.9.3

Mapfile

O mapfile ´e um arquivo texto de configura¸c˜ao (deve ter a extens˜ao “.map”) que serve de base para a aplica¸c˜ao MapServer. Este arquivo descreve todos os atributos que ser˜ao

dispostos no mapa, tais como layers, cores, legendas, formato do arquivo de sa´ıda, dentre outros, bem como onde est˜ao os dados que servir˜ao de base para cria¸c˜ao deste mapa. Este arquivo define os atributos de um mapa estruturados como objetos, o que mant´em a implementa¸c˜ao organizada e facilmente personaliz´avel.

Na Listagem 1, um exemplo de mapfile ´e apresentado.

Listagem 1: Exemplo de Mapfile

1 MAP#i n´ıc i o do o b j e t o mapa

2

3 #o p ¸c ˜o e s do mapa e do a r q u i v o de s a´ıd a

4 EXTENT −73.99 −33.75 −28.83 5 . 2 7 5 SIZE 600 400

6 IMAGECOLOR 200 200 230 7 SHAPEPATH " ../ shapefiles " 8

9 LAYER

(26)

13 DATA "55 BR2500gc_SIR " 14

15 CLASS

16 NAME " Limite nacional "

17 STYLE

18 COLOR 250 250 190

19 OUTLINECOLOR 0 0 0

20 END

21 END

22 END

23

24 END #f i n a l do o b j e t o mapa

No mapfile da Listagem 1, pode-se observar os aspectos do respectivo mapa de sa´ıda. Inicialmente, a defini¸c˜ao do objeto principal “MAP”, delimitado ao final por “END”. Em seu escopo, s˜ao definidos parˆametros espec´ıficos, como a extens˜ao do mapa em

coorde-nadas, tamanho da imagem de sa´ıda, cor de fundo e caminho dos dados (“EXTENT”, “SIZE”, “IMAGECOLOR” e “SHAPEPATH”, respectivamente). Dentro do objeto prin-cipal ocorre a defini¸c˜ao de um “LAYER”. Em um mapa, pode-se ter a representa¸c˜ao de v´arias informa¸c˜oes. Por exemplo, consideremos uma cidade: pode-se ter num mapa que

a represente, al´em da delimita¸c˜ao geogr´afica, as ruas, as quadras, as casas, os pontos tur´ısticos, os hospitais, etc. Como h´a v´arias categorias de informa¸c˜oes, pode-se dividi-las em camadas, tamb´em chamadas de layers. Esta divis˜ao ´e utilizada no MapServer, e ap-resenta v´arias vantagens, dentre as quais pode-se citar a possibilidade de programa¸c˜ao

estruturada (c´odigos-fonte mais leg´ıveis), reuso de informa¸c˜oes e aplica¸c˜oes com rep-resenta¸c˜oes visuais bem definidas, onde o usu´ario pode optar por visualizar os layers individualmente ou agrupados a seu crit´erio. No layer da Listagem 1, s˜ao definidos parˆametros espec´ıficos, tais como nome, tipo de dado, visibilidade e arquivo de origem (“NAME”, “TYPE”, “STATUS” e “DATA”, respectivamente). Por fim, em um layer

deve-se definir uma ou mais classes de representa¸c˜oes tem´aticas, onde s˜ao definidos estilos de representa¸c˜ao tem´atica. No exemplo j´a citado, ´e definida uma classe de representa¸c˜ao

(27)

2.10

Shapefile

Regulamentado pela “Environmental Systems Research Institute, Inc.” (ESRI), o shapefile ´e um tipo de arquivo bastante utilizado para Sistemas de Informa¸c˜ao Geogr´afica.

Embora perten¸ca a uma corpora¸c˜ao privada, sua especifica¸c˜ao, est´a dispon´ıvel gratuita-mente, e permite que outras ferramentas o implementem. Este tipo de arquivo representa as estruturas espaciais atrav´es de um conjunto de dados em v´arios formatos, cujos prin-cipais possuem a extens˜ao “.shp”, “.dbf” e “.shx”. Estes arquivos indicam seus atributos

n˜ao-espaciais e suas geometrias, conforme definido em ESRI (1998).

2.11

p.mapper

O p.mapper ´e uma ferramenta para visualiza¸c˜ao de aplica¸c˜oes MapServer baseado em php/mapscript, com recursos javascript. Possui diversosplugins configur´aveis, dentre eles, para realiza¸c˜ao de consultas de atributos descritivos. Sua configura¸c˜ao com o MapServer

´e realizada atrav´es de um arquivo XML (Extensible Markup Language) - uma linguagem de demarca¸c˜ao destinada principalmente a compartilhamento de informa¸c˜oes. ´E poss´ıvel editar a interface de acordo com os layers utilizados na aplia¸c˜ao desejada, basta efetuar as configura¸c˜oes de acordo com o mapfile utilizado. De natureza livre, pode ser baixado

gratuitamente em seu site oficial (http://www.pmapper.net/ - Acesso em 12/11/2011). Na Figura 5, uma demonstra¸c˜ao de interface do p.mapper ´e apresentada.

(28)

2.12

PHP

PHP ´e uma linguagem de scripting de ampla utiliza¸c˜ao, interpretada, que ´e especial-mente interessante para desenvolvimento para aweb e pode ser mesclada dentro do c´odigo HTML (PHP, 2011). Sua sintaxe se assemelha `a de outras linguagens de programa¸c˜ao, tais como C e Java. Esta linguagem ´e interpretada no lado servidor da aplica¸c˜ao (server-side), e, com seus recursos, ´e poss´ıvel criar p´aginaswebatrav´es de t´ecnicas e recursos avan¸cados de programa¸c˜ao, obtendo resultados rapidamente.

2.13

Javascript e jQuery

Javascript ´e uma linguagem de scripting utilizada para incrementar aplica¸c˜oes web. Assim como em PHP, seu c´odigo pode ser embutido em p´aginas HTML. A principal diferen¸ca est´a no modo de funcionamento: enquanto PHP ´e interpretada no lado servi-dor, Javascript ´e executada no lado cliente (client-side), sendo ent˜ao interpretada por navegadores de internet. Cabe observar que Javascript e Java s˜ao duas linguagens de programa¸c˜ao distintas.

Com seu uso, ´e poss´ıvel a obten¸c˜ao de caracter´ısticas mais dinˆamicas `as p´aginas, tais como: a¸c˜oes por movimentos do mouse, navega¸c˜ao entre janelas personalizadas, efeitos visuais, dentre outras op¸c˜oes. A biblioteca jQuery ´e constru´ıda sobre a linguagem

Javascript, e adiciona ainda mais recursos de dinamismo no lado cliente de uma aplica¸c˜ao

web.

2.14

PHPlot

PHPlot ´e uma biblioteca gr´afica que permite a cria¸c˜ao de gr´aficos dinˆamicos para a linguagem PHP. Ela oferece a cria¸c˜ao dos principais tipos de gr´aficos, tais como gr´aficos de linha, barras, pontos e pizza. Seu uso, resumidamente, consiste na inclus˜ao dos pacotes

(29)

Cap´ıtulo

3

Concep¸c˜

ao do Projeto

Antes da concep¸c˜ao do projeto, foi evidenciado junto `a equipe do projeto ambiental que a constru¸c˜ao de um sistema de controle de arboriza¸c˜ao faz parte do prop´osito deste

Trabalho de Conclus˜ao de Curso, sendo um subproduto do mesmo, e que o foco principal do trabalho ´e a realiza¸c˜ao de pesquisa e integra¸c˜ao acerca de tecnologias livres existentes de modo a alcan¸car os objetivos propostos neste Cap´ıtulo.

3.1

Obten¸c˜

ao e An´

alise de Requisitos

A defini¸c˜ao de requisitos para este sistema foi definida em conjunto com os

respon-s´aveis pelo projeto ambiental. Foram realizadas duas reuni˜oes. Na primeira reuni˜ao, foi realizada uma entrevista com a Engenheira Agrˆonoma respons´avel pelo projeto, onde foram respondidas as seguintes quest˜oes:

1. Qual o objetivo do projeto?

O objetivo ´e saber a situa¸c˜ao real da arboriza¸c˜ao na cidade, quais esp´ecies est˜ao presentes, quais ´arvores e esp´ecies ser˜ao substitu´ıdas e/ou introduzidas (o objetivo ´e ter o m´ınimo 10 esp´ecies no munic´ıpio) e quais locais carecem de mais arboriza¸c˜ao.

Uma melhor arboriza¸c˜ao pode influenciar no clima (j´a que a cidade ´e muito quente) e ´e tamb´em uma quest˜ao de sa´ude p´ublica. A ideia ´e futuramente centralizar tamb´em as solicita¸c˜oes de corte e poda, no entanto, ainda n˜ao h´a estrutura para tal finalidade.

2. Como vem sendo feita a cataloga¸c˜ao das ´arvores?

Um mapa da cidade foi setorizado em quadras identificadas por n´umeros. Uma

(30)

tirando uma foto de cada uma.

3. Quais as informa¸c˜oes das ´arvores est˜ao sendo coletadas?

• Coordenadas - obtida com GPS (coordenadas em quilˆometros, proje¸c˜ao: UTM);

• Nome popular da esp´ecie da ´arvore;

• Nome cient´ıfico da esp´ecie da ´arvore;

• DAP - diˆametro na altura do peito;

• Fuste - altura do tronco da ´arvore at´e as primeiras ramifica¸c˜oes;

• Proje¸c˜ao de copa - ´area de sombra da ´arvore, tendo como parˆametro de medi¸c˜ao o hor´ario do meio dia;

• Sanidade - estado de sa´uda da ´arvore. Existem equipamentos capazes de “es-canear” a ´arvore para verificar a integridade do seu interior. No entanto, a equipe ainda n˜ao disp˜oe desta tecnologia, e a sanidade foi definida visualmente;

• Foto - uma foto para cada ´arvore, tirada em alta resolu¸c˜ao (cinco megapixels).

4. Quais ´arvores s˜ao objeto desta cataloga¸c˜ao? Cal¸cadas, canteiros centrais, pra¸cas p´ublicas, quintais?

Somente as ´arvores das cal¸cadas das quadras e das pra¸cas e ´areas p´ublicas livres.

Para as ´arvores dos canteiros centrais, houve um in´ıcio de trabalho semelhante, mas n˜ao houve conclus˜ao. A ideia ´e que futuramente, estas ´arvores tamb´em sejam objeto de cat´alogo.

5. Poss´ıveis novas ruas e/ou ´areas/quadras ser˜ao adicionadas no mapa da cidade?

Por enquanto n˜ao, pois o projeto servir´a de base para elabora¸c˜ao de um novo plano de plantio na cidade, e nesta etapa de trabalho, o mapa existente ´e suficiente para tal fim.

6. Quais as caracter´ısticas do mapa e do GPS utilizados?

Foi utilizado um mapa constru´ıdo em software de desenho assistido por computa-dor (computer aided design - CAD), em escala 1:5000 e formato “DWG”. O GPS utilizado possui baixa precis˜ao.

7. O projeto tem ciˆencia da falta de precis˜ao do mapa e do GPS utilizados?

(31)

8. O sistema ser´a acess´ıvel `a popula¸c˜ao?

Inicialmente, a ideia ´e que o sistema seja utilizado pela equipe do projeto. Futura-mente, a ideia ´e que a popula¸c˜ao possa visualizar estas ´arvores no mapa da cidade atrav´es da Internet, e tamb´em realizar os pedidos de poda e corte atrav´es do sistema.

No entanto, ainda n˜ao temos estrutura suficiente para tal (espa¸co, equipamentos e funcion´arios).

9. Ser˜ao realizadas novas “vistorias” nas ´arvores? Existir´a uma equipe para tal fun¸c˜ao? Atualmente est´a sendo feita uma ´unica vistoria em cada ´arvore, atrav´es do percurso

inicial da equipe de campo pelas quadras da cidade. Com o apoio do sistema, o objetivo ´e que novas vistorias em ´arvores j´a catalogadas sejam realizadas, princi-palmente em ´arvores mais antigas e que est˜ao em sanidade ruim, inclusive, tirando novas fotos das mesmas.

10. E quando uma ´arvore for arrancada?

Quando uma ´arvore ´e arrancada, a responsabilidade do morador ou respons´avel ´e de se plantar pelo menos uma nova esp´ecie. Na impossibilidade de se plantar no mesmo lugar, o plantio pode ser feito em outro local indicado pelo mesmo.

11. Existe a ideia de armazenar outras informa¸c˜oes al´em das ´arvores? Ex: focos de

dengue, acidentes, etc.?

Por enquanto, somente a arboriza¸c˜ao. Existe a expectativa de trabalhos futuros para mapeamento das nascentes do munic´ıpio.

12. Existe um esquema de visualiza¸c˜ao desejado? A ideia ´e que as ´arvores sejam

rep-resentadas por pontos no mapa, e as esp´ecies sejam identificadas por cores. Desta forma, ao simplesmente visualizar o mapa, a equipe poder´a identificar alguns dos aspectos desejados, por exemplo:

• Quadras ou ´areas com poucas ´arvores;

• Quadras ou ´areas com pouca diversidade de esp´ecies;

• Ausˆencia de certas esp´ecies em ´areas potenciais.

13. Quais tipos de relat´orios e/ou gr´aficos s˜ao desejados? ´

E desej´avel que seja poss´ıvel obter, a princ´ıpio:

• Distribui¸c˜ao de esp´ecies;

(32)

• Somat´orio da proje¸c˜ao de copa, para estimar a ´area verde;

• Rela¸c˜ao de substitui¸c˜oes pendentes.

A partir desta entrevista, foi poss´ıvel extrair um aspecto importante. Devido `a im-precis˜ao do mapa e tamb´em do GPS, a localiza¸c˜ao das ´arvores ser´a distorcida, logo, ser˜ao necess´arios mecanismos de corre¸c˜ao manual. Com base nesta entrevista e na imprecis˜ao do mapa e das coordenadas, foram definidos os seguintes requisitos:

1. O sistema deve manter as informa¸c˜oes coletadas sobre as ´arvores em um banco de dados;

2. O sistema deve representar as ´arvores como pontos sobre o mapa da cidade, identificando-as por pontos de referˆenciidentificando-as (como quadridentificando-as e pra¸cidentificando-as), sendo que identificando-as esp´ecies devem

ser diferenciadas por cores;

3. O sistema deve permitir a corre¸c˜ao manual de posicionamento das ´arvores, devido a poss´ıveis distor¸c˜oes causadas pela falta de precis˜ao do GPS e do mapa;

4. O sistema deve armazenar as informa¸c˜oes obtidas nas vistorias das ´arvores,

man-tendo os parˆametros espec´ıficos (DAP, Fuste, Proje¸c˜ao de Copa e Sanidade) e a foto da mesma em um banco de dados;

5. O sistema deve manter as informa¸c˜oes de uma ´arvore arrancada, bem como a defini¸c˜ao da(s) ´arvore(s) substituta(s);

6. O sistema deve identificar quais as ´arvores pertencem a um certo cat´alogo, com a

finalidade de quantificar o plantio de ´arvores realizado em certo per´ıodo de tempo ou categoria de origem, sendo poss´ıvel obter os seguintes parˆametros:

• Distribui¸c˜ao de esp´ecies;

• M´edias sobre os parˆametros espec´ıficos das ´arvores;

• Somat´orio da proje¸c˜ao de copa, para estimar a ´area verde;

• Rela¸c˜ao de substitui¸c˜oes de ´arvores pendentes.

(33)

3.2

Modelagem

Ap´os a defini¸c˜ao dos requisitos, o projeto foi definido e modelado e um diagrama de classes - mostrado na Figura 6 - foi elaborado.

Figura 6: Diagrama de classes do Sistema

O MapServer e suas funcionalidades foram resumidos na classe “php-mapscript”. Isto

se deve ao fato de que a ferramenta pode ser embutida em uma linguagem de programa¸c˜ao (no caso, PHP), desta forma, pode-se explorar os seus recursos e funcionalidades, em conjunto com os recursos da linguagem de programa¸c˜ao escolhida.

Ao centro, a classe “Arvore”, tendo como atributos sua localiza¸c˜ao real (obtida pelo GPS), sua coordenada ajustada (em caso de distor¸c˜ao) e o status, para identificar se trata-se de ´arvore viva ou arrancada/substitu´ıda, conforme rela¸c˜ao com a classe

“Substi-tui¸c˜ao”. A classe “PontoReferˆencia” representa as quadras e pra¸cas as quais as ´arvores est˜ao vinculadas. Da mesma forma, h´a v´ınculos com a esp´ecie e cat´alogo de origem da ´arvore - classes “Esp´ecie” e “Catalogo” - todas rela¸c˜oes de cardinalidade 1 para 1. Por fim, a classe “Vistoria” foi criada para representar os dados das ´arvores coletados pela

(34)

Cap´ıtulo

4

Integra¸c˜

ao das Ferramentas

Neste Cap´ıtulo, ser´a mostrada a integra¸c˜ao das ferramentas utilizadas para a solu¸c˜ao do problema proposto. Algumas peculiaridades podem ser observadas, principalmente na

se¸c˜ao referente `a integra¸c˜ao do banco de dados com o MapServer.

4.1

Estrutura da Aplica¸c˜

ao

Ap´os a defini¸c˜ao do projeto, passamos ent˜ao ao principal prop´osito deste trabalho, a integra¸c˜ao das ferramentas utilizadas. Simplificando a arquitetura de uma aplica¸c˜ao

MapServer conforme descrito na Se¸c˜ao 2.9 (p. 22) para o contexto deste trabalho, obtemos o esquema da Figura 7.

Na camada de entrada, temos o mapa da cidade em formato “shapefile”, al´em dos novos dados adicionados para representa¸c˜ao das ´arvores, atrav´es do banco de dados PostgreSQL e sua extens˜ao espacial PostGIS. Em seguida, na camada central, temos

a configura¸c˜ao e ambiente de execu¸c˜ao: configura¸c˜ao do mapfile que define a sa´ıda gr´afica do mapa, e a aplica¸c˜ao constru´ıda com o MapServer modo mapscript rodando sobre o servidor web Apache. Por fim, na sa´ıda, temos a interface DHTML (mapa e editor de dados espaciais e descritivos).

4.2

Banco de Dados e MapServer

(35)

Figura 7: Arquitetura da aplica¸c˜ao MapServer para este contexto. Adaptada de (MAPSERVER, 2010).

4.2.1

Criando um banco de dados espacial com

PostgreSQL/-PostGIS

Com o PostgreSQL e sua extens˜ao espacial PostGIS, ´e poss´ıvel armazenar e manipular tanto os componentes descritivos e espaciais da informa¸c˜ao. ´E necess´aria a cria¸c˜ao de uma instˆancia de banco de dados PostgreSQL e habilita¸c˜ao de sua extens˜ao espacial PostGIS, obtendo um banco de dados“spatially enabled”. Dentre as v´arias op¸c˜oes a seguir, pode-se, primeiramente, criar um banco de dados convencional. Em seguida, basta associ´a-lo ao PostGIS e `as suas fun¸c˜oes pr´e-definidas atrav´es do uso do “template postgis” . Este template funciona como um modelo que pode ser associado a uma instˆancia de banco de dados no ato da cria¸c˜ao do mesma, com um simples comando visto na Listagem 2.

Listagem 2: Instru¸c˜ao SQL para cria¸c˜ao de um banco de dados espacial

1 create d a t a b a s e exemplo db t e m p l a t e = t e m p l a t e p o s t g i s

Este comando cria o banco de dados “exemplo db” e j´a o habilita a trabalhar com dados espaciais (spatially enabled), associando-o ao “template postgis”. Ao habilitar o PostGIS em uma instˆancia de banco de dados, duas tabelas s˜ao criadas automaticamente: “spatial ref sys” e “geometry columns”.

(36)

re-ferˆencia espaciais definidos pela institui¸c˜ao “European Petroleon Survey Group” (EPSG), que os mant´em e os publica.

J´a a tabela “geometry columns” mant´em registros de tabelas com colunas espaciais. Estes registros s˜ao utilizados por outras aplica¸c˜oes que acessam o banco de dados (como o MapServer).

Estas tabelas s˜ao denominadas “tabelas de metadados” e s˜ao criadas de acordo com as especifica¸c˜oes definidas pelo OGC. S˜ao essenciais para a consistˆencia dos dados e

in-teroperabilidade.

4.2.2

Garantindo a Interoperabilidade com o MapServer

Para cria¸c˜ao de uma tabela espacial destinada a receber consultas de aplica¸c˜oes MapServer, ´e necess´ario que se utilize a fun¸c˜ao do PostGIS “AddGeometryColumn” para especificar colunas espaciais. A justificativa ´e que esta fun¸c˜ao adiciona automaticamente registros com parˆametros espec´ıficos na tabela de metadados “geometry columns”, que

´e utilizada por outras ferramentas que utilizam o PostGIS, dentre elas, o MapServer, e tamb´em por fun¸c˜oes do pr´oprio PostGIS. Caso o usu´ario n˜ao utilize esta fun¸c˜ao, a comu-nica¸c˜ao entre o MapServer e o banco de dados PostgreSql/PostGIS pode ser prejudicada, resultando em erros na aplica¸c˜ao final. ´E importante tamb´em que se utilize a primeira

coluna da tabela para armazenar o identificador de cada registro, pois algumas fun¸c˜oes de consulta espacial do MapServer retornam somente a primeira coluna como resultado.

Na Listagem 3, um exemplo de cria¸c˜ao de tabela.

Listagem 3: Instru¸c˜ao SQL para cria¸c˜ao de uma tabela com dado espacial

1 create table v i a s (

2 ID s e r i a l not n u l l PRIMARY KEY, 3 nome varchar( 2 5 ) ,

4 t i p o varchar( 2 5 ) 5 ) ;

6 s e l e c t AddGeometryColumn (’vias ’, ’vias_geom ’, −1, ’ LINESTRING ’, 2 ) ;

O comando acima cria a tabela vias com as colunas especificadas (ID, nome e tipo), em seguida, adiciona a esta tabela uma coluna espacial denominada ’vias geom’. Os parˆametros da fun¸c˜ao “AddGeometryColumn” s˜ao:

(37)

• TABLE NAME - nome da tabela em que ser´a inserida coluna do tipo geometry;

• COLUMN NAME - nome da coluna que receber´a os dados tipo geometry;

• SRID - identificador do SRS para a tabela;

• TYPE - tipo de dado (POLYGON, POINT, LINESTRING, etc.);

• DIMENSION - dimens˜ao da coluna (2, 3 ou 4 dimens˜oes s˜ao suportadas).

4.2.3

Inser¸c˜

ao de dados de natureza espacial

Para inser¸c˜ao de dados em grande quantidade num banco de dados espacial no

Post-greSQL/PostGIS, pode-se utilizar o utilit´ario para carga de shapefiles “shp2pgsql”. O utilit´ario converte os shapefiles em comandos SQL adequados para a inser¸c˜ao dos da-dos no banco, excluindo-se a necessidade de inser¸c˜ao manual de cada registro. Ele possui v´arias configura¸c˜oes de execu¸c˜ao, pelas quais ´e poss´ıvel optar pela cria¸c˜ao de novas tabelas

para os dados ou inser¸c˜ao dos dados em tabelas existentes. O programa ´e executado via linha de comando, e as op¸c˜oes s˜ao escolhidas atrav´es de “flags”, que s˜ao conjuntos de caracteres que identificam cada op¸c˜ao. Contudo, neste trabalho, devido `a imprecis˜ao de coordenadas j´a citada anteriormente, a inser¸c˜ao dos dados atrav´es do utilit´ario de carga

n˜ao foi pertinente. Desta forma, houve a necessidade de se proceder `a inser¸c˜ao manual de cada registro.

Para a inser¸c˜ao de dados em tabela espacial, deve-se utilizar comandos SQL INSERT (assim como nas tabelas de atributos n˜ao espaciais), e, o ´unico diferencial est´a na utiliza¸c˜ao da fun¸c˜ao do PostGIS “St GeomFromText”. Esta fun¸c˜ao ´e utilizada para se criar objetos

de tipos espaciais aceitos pelo PostGIS `a partir da representa¸c˜ao OGC WKT (WKT vem do inglˆes “well-known-text” - descri¸c˜ao textual). Um exemplo ´e mostrado na Listagem 4.

Listagem 4: Instru¸c˜ao SQL para cria¸c˜ao de uma tabela com dado espacial

1 i n s e r t into p o n t o o n i b u s ( ID , b a i r r o , the geom ) values ( 1 0 , ’Centro ’,

St GeomFromText (’POINT (7543533 467721) ’,−1) ) ;

(38)

4.2.4

Consulta a dados de natureza espacial

Se, para adicionar um dado de natureza espacial no banco de dados `a partir de uma representa¸c˜ao textual ´e necess´ario convertˆe-lo em um objeto espacial, para consult´a-lo,

deve-se fazer o inverso, ou seja, converter o objeto espacial em representa¸c˜ao textual. Para esta a¸c˜ao utiliza-se a fun¸c˜ao “St asText”. Na Listagem 5, um exemplo ´e mostrado.

Listagem 5: Instru¸c˜ao SQL para cria¸c˜ao de uma tabela com dado espacial

1 s e l e c t ID , b a i r r o , S t a s T e x t ( the geom ) from p o n t o o n i b u s

A defini¸c˜ao dos parˆametros destas fun¸c˜oes pode ser consultada na documenta¸c˜ao do PostGIS.

4.3

Interface de Navega¸c˜

ao e Edi¸c˜

ao -

PHP/map-script

O p.mapper, conforme descrito na Se¸c˜ao 2.11 (p. 26), ´e um poderoso visualizador que permite, inclusive, a realiza¸c˜ao de consultas aos dados descritivos das informa¸c˜oes espaci-ais. No entanto, para manipula¸c˜ao destes dados (inser¸c˜ao, exclus˜ao ou atualiza¸c˜ao), n˜ao

h´a suporte nativo nesta ferramenta (de fato, sua natureza sugere apenas a visualiza¸c˜ao). Logo, no contexto de nosso trabalho, considerando-se tamb´em a necessidade de se realizar opera¸c˜oes de ajustes de coordenadas, optou-se ent˜ao pelo desenvolvimento de uma nova interface que abrangesse navega¸c˜ao e edi¸c˜ao. Desta forma, foi necess´ario integrar

fun-cionalidades de navega¸c˜ao pelo mapa, tais como zoom e pan, e tamb´em de manipula¸c˜ao de dados descritivos e espaciais.

4.3.1

Mapa dinˆ

amico

Conforme citado na Se¸c˜ao 2.7 (p. 21), o web mapping dinˆamico est´a relacionado `a interatividade atrav´es de recursos DHTML. E conforme pode-se observar na Se¸c˜ao 2.5 (p.

19), a estrutura de uma aplica¸c˜ao baseia-se no formato de requisi¸c˜oes e respostas.

Desta forma, para propiciar um mapa dinˆamico, seguindo estes preceitos, a solu¸c˜ao

(39)

formul´ario por algum bot˜ao definido. Quando uma destas a¸c˜oes ocorre, os parˆametros s˜ao enviados ao MapServer (requisi¸c˜ao) para que seja retornado um novo mapa (resposta), obtendo o aspecto de dinamismo esperado.

A Figura 8 exibe a interface constru´ıda: `a esquerda, a barra de ferramentas cujas op¸c˜oes ser˜ao definidas neste Cap´ıtulo. Ao centro, o mapa naveg´avel com suporte `a adi¸c˜ao de dados espaciais (pontos de referˆencia e ´arvores). `A direita, a interface de sele¸c˜ao de

layers e o mapa em miniatura para referˆencia de visualiza¸c˜ao. Abaixo, a interface de exibi¸c˜ao e edi¸c˜ao de atributos descritivos.

Figura 8: Interface de navega¸c˜ao e edi¸c˜ao implementada

4.3.2

Propriedade “EXTENT” de um mapa

Em um mapfile, deve-se definir a propriedade “EXTENT” (extens˜ao), conforme pode ser visto na Listagem 1 (p. 24). Esta propriedade indica ao MapServer qual a extens˜ao geogr´afica do mapa que ser´a projetado, tomando como base a unidade de medida em que

o mapa se encontra (por exemplo, kilˆometros ou graus decimais) e tamb´em o sistema de referˆencia espacial utilizado. A extens˜ao ´e definida por um retˆangulo que envolve toda a ´area do mapa, e ´e delimitado pelos pontos [min x, min y] e [max x, max y]. Pode-se verificar na Figura 9 como seria a delimita¸c˜ao para o pol´ıgono em azul:

Concluindo, o valor para o parˆametro “EXTENT” que seja suficiente para exibir todo

(40)

Figura 9: Demonstra¸c˜ao da propriedade extent

medidas de “EXTENT”, a imagem pode ser cortada ou aproximada (retˆangulo menor que

a imagem) ou receber um aspecto de distanciamento (retˆangulo maior que a imagem). Cabe notar que, em um mapa com muitas camadas, esta propriedade deve ser definida de acordo com a extens˜ao da maior delas, para n˜ao causar preju´ızo de informa¸c˜ao.

Pode-se obter a extens˜ao de um mapa armazenado no banco de dados PostGIS aplicando a fun¸c˜ao “ST Extent”, que retornar´a o menor retˆangulo delimitador de um

pol´ıgono. Tamb´em ´e poss´ıvel obter a propriedade a partir de shapefiles com o utilit´ario “ogrinfo”, sem a necessidade de carreg´a-los no banco de dados para obten¸c˜ao de tal parˆametro. Este utilit´ario ´e provido pela biblioteca GDAL, e mais detalhes podem ser consultados em seu site http://www.gdal.org/ - Acesso em 12/11/2011. Na Listagem 6,

o resultado da execu¸c˜ao do utilit´ario “ogrinfo” para obten¸c˜ao da extens˜ao do mapa da cidade utilizado.

Listagem 6: Execu¸c˜ao do utilit´ario para obten¸c˜ao da extens˜ao de um mapa

1 C:\ms4w\t o o l s\gdal−ogr>o g r i n f o −s o c : / ms4w/ apps / r e g e n t e / m a p f i l e s / shape /mapa

. shp mapa

2 INFO : Open o f ‘ c : / ms4w/ apps / r e g e n t e / m a p f i l e s / shape /mapa . shp’ 3 using driver ‘ESRI Shapefile ’ s u c c e s s f u l .

4

5 Layer name : mapa 6 Geometry : Li ne S t r i n g 7 F e a t u r e Count : 262

8 Extent : ( 4 6 6 8 5 2 . 7 5 5 5 1 6 , 7 5 4 0 6 3 1 . 9 1 3 1 3 2 ) − ( 4 6 9 6 8 6 . 6 4 9 2 9 9 , 7 5 4 4 8 4 1 . 6 7 1 8 2 2 ) 9 Layer SRS WKT:

10 ( unknown )

(41)

14 i d : I n t e g e r ( 4 . 0 )

Concluindo, o parˆametro “EXTENT” ´e essencial para opera¸c˜oes de navega¸c˜ao em

um mapa. Estas opera¸c˜oes foram criadas atrav´es de a¸c˜oes do mouse sobre o mesmo. Ao clicar numa posi¸c˜ao do mapa, as coordenadas da posi¸c˜ao (em pixels) s˜ao enviadas atrav´es do formul´ario HTML. Muitas das funcionalidades do MapServer requerem que estas co-ordenadas (em pixels) sejam convertidas na mesma unidade de medida do mapa. Esta

convers˜ao ´e feita com base numa regra de trˆes simples, tomando-se como base o tamanho da imagem (em pixels) e o valor “EXTENT” do mapa atual. A fun¸c˜ao “click2map” -mostrada na Listagem 7 - adaptada `a partir da sugest˜ao dispon´ıvel na documenta¸c˜ao do MapServer, efetua esta convers˜ao.

Listagem 7: Fun¸c˜ao para convers˜ao de coordenadas de imagem em coordenadas ge-ogr´aficas

1 f u n c t i o n c l i c k 2 m a p ( $map , $ c l i c k f i g ) { 2 $ex = ms newRectObj ( ) ;

3 $ex = $map−>e x t e n t ; 4

5 $ x p c t = ( $ c l i c k f i g−>x / $map−>width ) ; 6 $ y p c t = 1 − ( $ c l i c k f i g−>y / $map−>h e i g h t ) ; 7

8 $x map = $ex−>minx + ( ( $ex−>maxx − $ex−>minx ) ∗ $ x p c t ) ; 9 $y map = $ex−>miny + ( ( $ex−>maxy − $ex−>miny ) ∗ $ y p c t ) ; 10

11 $ p o i n t g e o = ms newPointObj ( ) ;

12 $ p o i n t g e o−>setXY ( ( i n t ) $x map , ( i n t ) $y map ) ; 13

14 r e t u r n $ p o i n t g e o ; 15 }

Na ocorrˆencia de aplica¸c˜oes de zoom ou pan sobre o mapa, um novo valor “EX-TENT” ´e calculado com base no mesmo parˆametro do mapa em tela. Desta forma, para cada atualiza¸c˜ao do formul´ario, o referido parˆametro deve ser armazendo para garantir a integridade destes c´alculos. Para tanto, foi utilizado um campo de formul´ario oculto

(“hidden”) para armazenar tal valor, e, na ocorrˆencia de opera¸c˜oes de deslocamento sobre o mapa, uma fun¸c˜ao foi utilizada para obter o parˆametro do formul´ario e atualizar no novo mapa. Esta fun¸c˜ao ´e definida na Listagem 8.

Listagem 8: Fun¸c˜ao atualizar extent

(42)

2

3 #s e p a r a v a l o r num v e t o r

4 $aux = explode(" ", $ n o v o e x t e n t ) ; 5

6 #a t u a l i z a o e x t e n t do mapa a t u a l

7 $mapa−>s e t e x t e n t ( $aux [ 0 ] , $aux [ 1 ] , $aux [ 2 ] , $aux [ 3 ] ) ; 8

9 r e t u r n $mapa ; 10

11 }

4.3.3

Zoom

A implementa¸c˜ao das funcionalidades zoom in e zoom out foi baseada na fun¸c˜ao do MapServer “zoomPoint”. Esta fun¸c˜ao realiza uma opera¸c˜ao que calcula uma nova ex-tens˜ao para o mapa, resultando em um aspecto de aproxima¸c˜ao (zoom in), distanciamento (zoom out), ou ainda, a recentraliza¸c˜ao. S˜ao parˆametros desta fun¸c˜ao:

• Fator de zoom: valor 1 resulta em centraliza¸c˜ao (utilizado em opera¸c˜oes de fun-cionalidade pan), valores positivos e maiores que um resultar˜ao em opera¸c˜ao zoom in, e negativos resultar˜ao em zoom out;

• Posi¸c˜ao do clique: coordenadas da imagem (em pixels) que receberam o clique;

• Largura e Altura: medidas da imagem do mapa em pixels;

• Extens˜ao: parˆametro “extent” do mapa atual.

´

E conveniente em aplica¸c˜oes com mapas fixar limites para aproxima¸c˜ao ou

distancia-mento, para evitar visualiza¸c˜oes exageradas e processamento desnecess´ario. Para efetuar esta limita¸c˜ao, foram fixados valores m´ınimos e m´aximos de escala, desta forma, ao aplicar uma opera¸c˜ao de zoom, deve-se verificar se os limites fixados foram ultrapassados. Caso isso ocorra, a opera¸c˜ao n˜ao deve ser realizada. A escala atual de um mapa pode ser obtida

pelo parˆametro “SCALEDENOM”.

(43)

4.3.3.1 Zoom pontual

Ozoom pontual foi implementado na forma original da fun¸c˜ao “zoomPoint”. Ao clicar sobre o mapa, ´e aplicado zoom sobre aquela posi¸c˜ao. A Listagem 9 mostra o trecho de c´odigo referente `a aplica¸c˜ao dozoom pontual.

Listagem 9: Bloco de execu¸c˜ao de zoom pontual

1 case ’zoom_in ’:{ // a p l i c a zoom f a t o r 2

2 $map−>zoompoint ( 2 , $ c l i c k f i g u r a , $map−>width , $map−>h e i g h t

, $map−>e x t e n t ) ; // a p l i c a zoom

3 i f( $map−>scaledenom < MAX SCALE){ // c a s o u l t r a p a s s e a

e s c a l a l i m i t e

4 $map=a t u a l i z a r E x t e n t ( $map , $ REQUEST [’extent ’] ) ; //

d e s f a z operacao , r e t o r n a n d o ao u l t i m o v a l o r e x t e n t

5 $ w a r n i n g s [ ] =" Limite de zoom m´aximo atingido .";

6 }

7 i n c l u d e o n c e ’ redesenha_selecao ’; // mantem e v e n t u a i s

componentes s e l e c i o n a d o s

8 }break; 9

10 case ’zoom_out ’:{ // a p l i c a zoom f a t o r −2

11 $map−>zoompoint (−2 , $ c l i c k f i g u r a , $map−>width , $map−>h e i g h t

, $map−>e x t e n t ) ;

12 i f( $map−>scaledenom > MIN SCALE){

13 $map=a t u a l i z a r E x t e n t ( $map , $ REQUEST [’extent ’] ) ; 14 $ w a r n i n g s [ ] =" Limite de zoom m´ınimo atingido .";

15 }

16 i n c l u d e o n c e ’ reposiciona_mapa . php ’; 17 }break;

Ap´os a execu¸c˜ao de opera¸c˜oes de zoom, ´e desej´avel que eventuais sele¸c˜oes (de ´arvores ou pontos) feitas pelo usu´ario sejam mantidas. Esta propriedade foi implementada de maneira simples, obedecendo-se a seguinte l´ogica: caso houvesse uma sele¸c˜ao ativa na

interface anterior, desenha-se a mesma sele¸c˜ao no novo mapa.

4.3.3.2 Zoom por rolagem de mouse

(44)

• Obter a dire¸c˜ao da rolagem do mouse para determinar se a opera¸c˜ao ser´a de zoom in ouzoom out;

• Obter as coordenadas da imagem no ato da rolagem do mouse, para executar a opera¸c˜ao de zoom naquela posi¸c˜ao.

Para implementa¸c˜ao desta funcionalidade, foi necess´ario utilizar recursos Javascript - definidos na Se¸c˜ao 2.13. Foi utilizada a biblioteca jQuery “Mousewheel”, que atribui

um valor delta `a rolagem do mouse, onde a dire¸c˜ao da rolagem ´e diferenciada por delta positivo ou delta negativo. Em seguida, basta se seguir o procedimento do zoom pontual de acordo com o resultado do valor delta.

4.3.3.3 Zoom por retˆangulo

Foi verificada tamb´em a necessidade de se implementar uma opera¸c˜ao de zoom por sele¸c˜ao de ´area, atrav´es do recurso de clicar, arrastar e soltar do mouse, delimitando um retˆangulo. De fato, esta opera¸c˜ao agiliza a navega¸c˜ao pelo mapa.

O MapServer possui uma fun¸c˜ao para realiza¸c˜ao de zoom por retˆangulo -

“zoomRect-angle”. A fun¸c˜ao ´e similar `a “zoomPoint”, e a ´unica diferen¸ca deve se ao fato de que, ao inv´es de se passar como parˆametro a posi¸c˜ao clicada, deve-se passar como parˆametro a delimita¸c˜ao do retˆangulo. Este retˆangulo deve ser definido pelas coordenadas limites [min x, min y] e [max x, max y], empixels.

Logo, para implementa¸c˜ao desta funcionalidade, tamb´em foi necess´ario utilizar Javascript para habilitar os recursos de arrastar e soltar do mouse, que n˜ao s˜ao nativos aos

naveg-adores web atuais. Foi utilizada a bibliteca jQuery “imgAreaSelect”, que, dentre outras funcionalidades, permite a sele¸c˜ao de uma ´area em um componente de imagem definido em uma p´aginaweb. A Listagem 10 demonstra o uso da biblioteca.

Listagem 10: Javascript imgAreaSelect

1 $ (’input # mapa ’) . i m g A r e a S e l e c t ({ 2 autoHide : true,

3 f a d e S p e e d : 3 0 0 , 4

5 o n S e l e c t S t a r t : f u n c t i o n ( input , s e l e c t i o n ){ 6 i n i x=s e l e c t i o n . x1 ;

7 i n i y=s e l e c t i o n . y1 ;

8 },

(45)

10 i f ( s e l e c t i o n . x1 == i n i x ) f i n a l x = s e l e c t i o n . x2 ; 11 e l s e f i n a l x=s e l e c t i o n . x1 ;

12

13 i f( s e l e c t i o n . y1 == i n i y ) f i n a l y = s e l e c t i o n . y2 ; 14 e l s e f i n a l y = s e l e c t i o n . y1 ;

15

16 g e t (" rect_zoom ") . v a l u e=i n i x+’ ’+ i n i y+ ’ ’+f i n a l x + ’ ’ +

f i n a l y ;

17 // g e t (” w a r n i n g s ”) . innerHTML=i n i x +’ ’+ i n i y+ ’ ’+ f i n a l x + ’ ’ +

f i n a l y ;

18 submit ( ) ;

19 } // on s e l e c t end

20 }) ;

4.3.4

Pan

Esta opera¸c˜ao foi a mais complexa de ser implementada, j´a que n˜ao h´a fun¸c˜ao “na-tiva” ao MapServer para realiza¸c˜ao desta funcionalidade (tamb´em chamada de ferramenta

“m˜ao”). Em solu¸c˜ao proposta em MapServer (2010), a funcionalidade de recentraliza¸c˜ao ´e proposta, baseada na fun¸c˜ao “zoomPoint” com fator 1, conforme descrito na Se¸c˜ao 4.3.3.

Primeiramente, observemos na Figura 10 a funcionalidade aplicada a um ponto clicado P1.

Figura 10: Comportamento da funcionalidade pan numa posi¸c˜ao clicada

Pode-se observar o aspecto de recentraliza¸c˜ao: ao clicar numa posi¸c˜ao P1 - Figura 10 a), a mesma ´e deslocada para o centro da imagem - Figura 10 b). Neste cen´ario, todo o restante de um mapa tamb´em seria deslocado.

(46)

semelhantes, a funcionalidade ´e ativada atrav´es dos recursos de arrastar e soltar do mouse sobre a imagem (assim como na funcionalidade de zoom por retˆangulo), no qual espera-se que o usu´ario clique numa posi¸c˜ao de origem e arraste at´e uma posi¸c˜ao de destino.

Logo, a biblioteca jQuery “imgAreaSelect” tamb´em pode ser utilizada para capturar as posi¸c˜oes de origem e de destino. Aplicando-se a fun¸c˜ao “zoomPoint” com fator 1 na coordenada de destino, a solu¸c˜ao desejada para a funcionalidade pan n˜ao ´e satisfeita, conforme pode-se observar na Figura 11, onde P1 ´e origem e P2 ´e destino.

Figura 11: Comportamento da funcionalidade pan na coordenada de destino

Conclui-se que para o sucesso da opera¸c˜ao, pelo menos duas opera¸c˜oes de

desloca-mento atrav´es da fun¸c˜ao “zoomPoint” com fator 1 s˜ao necess´arios. A solu¸c˜ao foi en-contrada, e ´e exibida na Figura 12, onde a sequˆencia de imagens ilustra as seguintes opera¸c˜oes:

• Obter o ponto inicial P1 (onde o mouse foi clicado) e o ponto final P2 (onde o mouse foi soltado) - Figura 12 a);

• Aplicar a funcionalidade pan no ponto inicial - Figura 12 b);

• Obter o ponto P2A com coordenadas reversas de P2 - Figura 12 c);

• Aplicar a funcionalidade pan neste ponto - Figura 12 d).

(47)

Figura 12: Opera¸c˜oes de deslocamento para satisfazer a funcionalidade pan

4.3.5

Op¸c˜

ao novo ponto de referˆ

encia

Para inser¸c˜ao de um novo ponto de referˆencia (como quadras ou pra¸cas), a seguinte l´ogica foi idealizada:

1. Clicar na posi¸c˜ao desejada, suas coordenadas num´ericas ser˜ao exibidas em campos de texto e um novo ponto virtual com a legenda “new” aparecer´a no mapa;

2. Definir um r´otulo identificador para o ponto (por exemplo, n´umero da quadra ou nome da pra¸ca), atrav´es de um campo de texto;

3. Salvar o ponto no banco de dados atrav´es de um bot˜ao “salvar”.

Para exibir o ponto clicado como um novo elemento no mapa, deve-se instanciar este

ponto como um novo objeto do MapServer tipo “point” e aplicar a fun¸c˜ao “draw”, que recebe como parˆametros:

• Mapa: o objeto mapa de destino;

• Layer: o objeto layer em que o ponto ser´a renderizado;

• Classe: o objeto classe de estilo para representa¸c˜ao do ponto;

• Texto: representa¸c˜ao textual para anotar o ponto.

Na Figura 13, o detalhe da interface para cria¸c˜ao de um novo ponto de referˆencia.

4.3.6

Op¸c˜

ao de Edi¸c˜

ao de Ponto de Referˆ

encia

(48)

Figura 13: Op¸c˜ao de novo ponto de referˆencia

1. Clicar sobre o ponto desejado para selecion´a-lo, um c´ırculo de sele¸c˜ao deve aparecer;

2. Clicar em uma nova posi¸c˜ao, caso se trate de ajuste de coordenadas, e/ou editar componentes descritivos no campo de texto;

3. Atualizar os dados, atrav´es de um bot˜ao “atualizar”.

Para selecionar um ponto de referˆencia existente para posteriormente edit´a-lo ou ex-clu´ı-lo, foi utilizada como forma de sele¸c˜ao o clique do mouse sobre o mesmo. Para tanto, foi utilizada a fun¸c˜ao do MapServer “queryByPoint”.

Esta fun¸c˜ao recebe como parˆametros:

• Objeto do tipo ponto: o ponto clicado em coordenadas de mapa;

• Modo: resultado singular ou resultado m´ultiplo - em nosso caso, o modo singular foi utilizado, pois espera-se apenas um ponto por posi¸c˜ao;

• Tolerˆancia: especifica¸c˜ao em certa unidade de medida (por exemplo, pixels ou met-ros) para retorno de resultados adjacentes.

Por exemplo, utilizando-se o modo de resultados m´ultiplos e uma tolerˆancia de dez metros, o MapServer retornar´a todos os resultados sobre o layer consultado que estejam a uma distˆancia de at´e dez metros do ponto clicado.

Referências

Documentos relacionados

Os maiores coeficientes da razão área/perímetro são das edificações Kanimbambo (12,75) e Barão do Rio Branco (10,22) ou seja possuem uma maior área por unidade de

Afinal de contas, tanto uma quanto a outra são ferramentas essenciais para a compreensão da realidade, além de ser o principal motivo da re- pulsa pela matemática, uma vez que é

• Os municípios provavelmente não utilizam a análise dos dados para orientar o planejamento de suas ações;. • Há grande potencialidade na análise dos micro dados do Sisvan

As relações hídricas das cultivares de amendoim foram significativamente influenciadas pela a deficiência hídrica, reduzindo o potencial hídrico foliar e o conteúdo relativo de

A partir deste momento é dada indicação para a seleção da população em estudo e é ativado o envio da medicação pelo promotor, ficando o FH da Unidade de

A presente investigação teve como objetivo geral o estudo dos fatores de risco e de proteção internos e externos utilizados perante a violência social, nomeadamente o bullying

Atualmente os currículos em ensino de ciências sinalizam que os conteúdos difundidos em sala de aula devem proporcionar ao educando o desenvolvimento de competências e habilidades

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição