César Daniel da Silva Cabrita
Nº37296
Resumo
O projecto apresentado consiste no desenvolvimento de um website que permite realizar
consultas espaciais em tempo útil com aplicação na área do imobiliário. Os objectivos
passam por permitir ao utilizador realizar pesquisas com base nas características espaciais
do imóvel considerando pontos de interesse públicos ou pessoais na hora de realizar a
avaliação do imóvel a adquirir. O projecto foi elaborado desenvolvendo ferramentas de
sistemas de informação geográfica capazes de ser integradas numa aplicação de forma a
satisfazer os objectivos propostos. Foram utilizadas ferramentas de desenvolvimento,
como MySQL, PHP ou Javascript e também serviços como o Google API para
disponibilizar a informação geograficamente. Os resultados obtidos permitem pesquisar
imóveis a determinadas distâncias pré-seleccionadas com sucesso, determinar o trajecto
mais próximo desde o imóvel até determinado ponto de interesse e realizar o planeamento
do percurso diário calculando o percurso óptimo e o respectivo custo da viagem e
duração.
I
César Daniel da Silva Cabrita
Nº37296
Abstract
The proposed project consists in the development of a website to perform spatial queries
on acceptable time with application in the area of real estate. The objectives are to enable
the user to perform searches based on the spatial characteristics of the property
considering points of public interest at the time to appraise the property to acquire. The
project consists in the development of geographic information systems tools capable of
being integrated into an application in order to meet these objectives. It was used
development tools such as MySQL, PHP and Javascript and also services like Google
API to provide information geographically. The results obtained allow us, real estate
search to particular preselected distances, determine the nearest route from the property
up to a certain point of interest and perform daily route planning calculating the optimal
path, the cost and duration of the trip.
II
César Daniel da Silva Cabrita
Nº37296
Agradecimentos
Aqui apresento os mais sinceros agradecimentos a todas as pessoas que me apoiaram e
ajudaram a concluir este ambicioso projecto com sucesso.
À minha família pela compreensão e apoio incondicionais durante todo o percurso do
projecto.
À minha namorada Mariana Ramalho pelo amor, carinho, devoção e dedicação tanto a
nível de apoio emocional como de ajuda em reflexão e opinião em aspectos relevantes do
projecto.
Ao meu amigo João Tavares, pelo grande apoio e longas horas de ensino na área da
informática ao qual tenho muito a agradecer pela concretização do projecto.
À empresa Conceito Digital e, respectivamente, Paulo Rodrigues, pela amabilidade,
disponibilidade e apoio ao nível de desenvolvimento Web, disponibilização de
informação e também pela oportunidade de trabalhar na empresa.
À orientadora do projecto Cristina Catita pela disponibilidade, apoio e orientação à qual
agradeço imenso e estarei sempre grato.
Deixo também um sincero agradecimento a todos os anónimos que na longa jornada de
auto-aprendizagem pelo ramo da informática me auxiliaram a resolver problemas e
complicações através da disponibilização de dúvidas e respectivas soluções nos forums na
Internet.
III
César Daniel da Silva Cabrita
Nº37296
Prefácio
As motivações para este projecto prende-se com a área de especialização das ciências de
engenharia geográfica, onde o ramo de Sistemas de Informação Geográfica foi aquele
suscitou maior interesse e perspectivas para o futuro. A motivação passa exactamente por
essa questão das perspectivas, onde os mapas geográficos e suas funcionalidades estão
em franca expansão no mundo informático e da Internet onde são vastamente utilizados
no dia-a-dia para responder às exigências de utilizadores de informação geográfica na
Internet. Tal suscita o interesse de obter mais experiência e conhecimento neste domínio
tornando necessário adquirir maiores competências nesta área com vista a responder com
rapidez e eficiência a problemas e projectos ambiciosos que possam surgir num mundo
novo e fascinante. Como perspectiva de desenvolvimento futuro, e dai também a
motivação, pretende-se extrapolar este tipo de funcionalidades para aplicações móveis,
onde neste momento se perspectivam grandes desenvolvimentos na área.
No entanto a harmonização de toda esta nova área é indissociável do ramo da
informática, onde os conhecimentos informáticos são indispensáveis para realizar o
projecto em tempo real criando e disponibilizando informação geográfica em tempo útil.
Para tal, é nuclear o conhecimento obtido através de projectos e disciplinas efetuadas ao
longo do mestrado onde foi realizado um esforço pelo contacto próximo com a área da
informática, a fim de adquirir as competências necessárias para a elaboração deste
projecto.
IV
César Daniel da Silva Cabrita
Nº37296
Índice
Resumo ........................................................................................................................................... I
Abstract ......................................................................................................................................... II
Agradecimentos............................................................................................................................ III
Prefácio ......................................................................................................................................... IV
Lista de Figuras ........................................................................................................................... VIII
Lista de Tabelas ............................................................................................................................ IX
1.
Introdução ............................................................................................................................. 1
1.1. Estrutura da tese ................................................................................................................. 1
1.2. Motivações .......................................................................................................................... 2
1.3. Enquadramento .................................................................................................................. 3
1.4. Objectivos............................................................................................................................ 4
2.
Fundamentos de WebSIG ...................................................................................................... 5
2.1. Conceitos Teóricos .............................................................................................................. 5
2.1.1.
Sistemas de Informação Geográfica (SIG) ................................................................5
2.1.2.
O que é uma aplicação Web-SIG?.............................................................................7
2.2. Pré-processamento de informação espacial ....................................................................... 8
2.2.1.
Transformação de Coordenadas ..............................................................................8
2.2.2.
Ponto mais próximo .................................................................................................8
2.2.3.
Zonamento ...............................................................................................................9
2.2.4.
Caminho mais próximo .............................................................................................9
2.2.5.
Cálculo de Percursos.................................................................................................9
2.3. Arquitectura do Sistema e Descrição Genérica de um processo ...................................... 10
3.
Metodologia e Implementação ........................................................................................... 12
3.1. Requisitos Metodológicos ................................................................................................. 13
3.2. Planeamento e Estrutura da Aplicação ............................................................................. 14
V
César Daniel da Silva Cabrita
Nº37296
3.2.1.
Recursos Utilizados ................................................................................................ 15
3.2.2.
Estrutura do projecto ............................................................................................ 16
3.2.3.
Soluções dos objectivos definidos ......................................................................... 20
3.2.4.
Estrutura da Aplicação ........................................................................................... 24
3.3. Back-end ............................................................................................................................ 29
3.3.1.
Base de Dados ....................................................................................................... 29
3.3.2.
Pré-processamento de Dados ............................................................................... 33
3.3.3.
Processamento de pedidos do utilizador .............................................................. 36
3.4. Front-end........................................................................................................................... 38
3.4.1.
Primeira Página...................................................................................................... 38
3.4.2.
Segunda Página ..................................................................................................... 41
3.4.3.
Terceira Página ...................................................................................................... 45
3.5. Optimização ...................................................................................................................... 49
3.5.1.
Estrutura das tabelas da base de dados ................................................................ 49
3.5.2.
Full-Text Search ..................................................................................................... 50
3.5.3.
Boolean Mode ....................................................................................................... 50
3.5.4.
Minimização dos pedidos à Base de Dados ........................................................... 51
3.5.5.
Utilização de Cache e Cookies ............................................................................... 51
3.6. Funcionamento do interface ............................................................................................. 51
4.
3.6.1.
Pesquisa ................................................................................................................. 52
3.6.2.
Resultados ............................................................................................................. 55
3.6.3.
Simulação .............................................................................................................. 59
Considerações Finais ........................................................................................................... 61
4.1. Discussão dos Resultados da Aplicação ............................................................................ 61
4.1.1
Eficácia ................................................................................................................... 62
4.1.2
Usabilidade ............................................................................................................ 62
4.1.3
Desenho e Aspecto Visual ..................................................................................... 64
4.1.4
Funcionalidade ...................................................................................................... 64
4.2. Cumprimento dos Objectivos Propostos .......................................................................... 66
4.3. Perspectivas Futuras ......................................................................................................... 68
5.
Referências .......................................................................................................................... 68
VI
César Daniel da Silva Cabrita
6.
Nº37296
Anexos ................................................................................................................................. 73
6.1. Conceitos informáticos ..................................................................................................... 73
Back-End ................................................................................................................................ 73
Web-Service........................................................................................................................... 73
Front-End ............................................................................................................................... 74
FwTools.................................................................................................................................. 75
Aplicação PHP ........................................................................................................................ 75
Servidor Apache .................................................................................................................... 75
Linguagem de marcação Xml................................................................................................. 76
HTML ..................................................................................................................................... 76
Google API ............................................................................................................................. 76
Javascript ............................................................................................................................... 77
Cascading Style Sheets .......................................................................................................... 77
Jquery .................................................................................................................................... 78
Cookies .................................................................................................................................. 78
Full-text Search ...................................................................................................................... 78
VII
César Daniel da Silva Cabrita
Nº37296
Lista de Figuras
Ilustração 1: Descrição genérica de um processo. ........................................................................ 10
Ilustração 2: Metodologia Teórica................................................................................................. 13
Ilustração 3: Back-end. .................................................................................................................. 17
Ilustração 4: Primeira página (Pesquisa). ...................................................................................... 18
Ilustração 5: Segunda página (Resultados).................................................................................... 19
Ilustração 6: Terceira página (Simulação). .................................................................................... 19
Ilustração 7: Informação espacial do imóvel acerca da distância a cada ponto de interesse mais
próximo. ........................................................................................................................................ 21
Ilustração 8: Processos da primeira página. .................................................................................. 25
Ilustração 9: Processos da segunda página. .................................................................................. 26
Ilustração 10: Processos da terceira página. ................................................................................. 28
Ilustração 11: Processamento do ponto mais próximo entre tabelas da base de dados e aplicação
PHP. ............................................................................................................................................... 35
Ilustração 12: Código gerado a partir da selecção de parâmetros no site. ................................... 37
Ilustração 13: Selecção de critério espacial................................................................................... 40
Ilustração 14: Seleção manual de critério espacial. ...................................................................... 40
Ilustração 15: Exemplo de Imóvel e respectivos pontos de interesse mais próximos. ................. 42
Ilustração 16: Funcionalidade do raio para cafés. ......................................................................... 42
Ilustração 17: Menu de abas. ........................................................................................................ 43
Ilustração 18: Trajecto mais curto a percorrer. ............................................................................. 44
Ilustração 19: Página de Simulações. ............................................................................................ 45
Ilustração 20: Cabeçalho da aplicação. ......................................................................................... 52
Ilustração 21: Activar aba de selecção de critérios não espaciais. ................................................ 53
Ilustração 22: Activação de aba de critérios espaciais. ................................................................. 53
Ilustração 24: Procura manual de pontos de interesse. ................................................................ 54
Ilustração 25: Selecção do ponto de interesse. ............................................................................. 54
Ilustração 26: Slider de definição de distância a considerar. ........................................................ 55
Ilustração 27: Página de resultados............................................................................................... 56
Ilustração 28: Mapa da área de interesse com informação espacial incluida. ............................. 57
Ilustração 29: Menu de abas para disponibilização de informação não espacial. ........................ 58
Ilustração 30: Funcionalidade do raio. .......................................................................................... 59
Ilustração 31: Exemplo de trajecto da página de simulações. ...................................................... 60
VIII
César Daniel da Silva Cabrita
Nº37296
Lista de Tabelas
Tabela 1: Colunas da tabela Imóveis. ............................................................................................ 29
Tabela 2: Colunas das tabelas dos pontos de interesse considerados.......................................... 30
Tabela 3: Colunas das unidades territoriais de Portugal. .............................................................. 31
Tabela 4: Tabela a consultar por parte do utilizador. ................................................................... 32
Tabela 5: Opções de seleção para as caracteristicas descritas. .................................................... 39
IX
César Daniel da Silva Cabrita
Nº37296
1. Introdução
A informação geográfica teve sempre um papel preponderante na vida do ser humano.
Desde os mapas astronómicos às cartas marítimas estes sempre nos guiaram com sucesso
aos objectivos definidos e traçados pelo homem. Os dias de hoje não são excepção, e com
os mais recentes desenvolvimentos da tecnologia, a necessidade da informação
geográfica ser disponibilizada de forma diferente emerge com todas as vantagens que o
digital e a informática podem fornecer, tornando assim os mapas informáticos um
instrumento não só informativo como também de gerador de nova informação. É possível
assim criar valor acrescentado a informação espacial já de si tão rica.
O projecto apresentado procura responder a limitações existentes de uma área específica
do mercado, nomeadamente a área do imobiliário, onde a falta de informação espacial
acerca do imóvel e da sua vizinhança é latente, e restringe a informação disponibilizada
ao utilizador.
Neste capítulo pretende-se introduzir ao leitor a ideia do projecto, as motivações que o
levaram a este trajecto e os objectivos definidos a partir destes por forma a concretizar as
ambições formadas e os resultados desejáveis.
1.1.Estrutura da tese
A estrutura da tese é inicialmente caracterizada pela introdução, onde se dá a conhecer o
problema emergente, a ideia criada, o enquadramento da mesma integrada no problema
de uma forma concreta e devidamente justificada e por fim a elaboração dos objectivos
definidos.
De seguida, o documento introduz ao leitor todos os conceitos tanto teóricos como
práticos, dando a conhecer toda a base de informação necessária para um correcto
entendimento de todo o conhecimento teórico implementado para a elaboração do
projecto.
No terceiro capítulo é explicitada a metodologia e implementação do projecto, explicando
os métodos, problemas e soluções encontrados para ultrapassar os desafios e ir de
encontro aos objectivos propostos de uma forma pragmática e detalhada.
1
César Daniel da Silva Cabrita
Nº37296
Caminhando para fase final do projecto é necessário avaliar objectivamente os resultados
obtidos e as implicações finais do projecto tanto ao nível de mais-valia para a área dos
Sistemas de Informação Geográfica como de produto obtido e respectiva relevância para
o utilizador final, discutindo exaustivamente cada um dos objectivos propostos e
avaliando de uma forma geral o projecto desenvolvido.
Por fim, é realizada uma avaliação dos pontos fortes e dos pontos menos positivos acerca
das características presentes no projecto e as perspectivas futuras em relação a
melhoramentos e trabalho a efectuar.
1.2.Motivações
O ramo do imobiliário sempre foi um grande segmento da área económica de Portugal.
Como tal, é expectável que se procurem novas formas de fazer chegar a informação ao
público de uma maneira mais eficiente, apelativa e realmente útil para o dia-a-dia do
cidadão comum. As funcionalidades SIG servirão como incentivo para uma nova forma
de disponibilizar informação ao utilizador.
A ideia para este projecto surge inicialmente da observação de sites de imobiliário
disponíveis ao utilizador na Internet. Aqui, identificou-se que a informação espacial
disponibilizada ao utilizador sobre o imóvel e no seu espaço envolvente, poderia ser
pouco relevante e insuficiente para que este pudesse tomar uma decisão informada acerca
de aspectos relevantes para o morador ou empresário, numa dada área de interesse.
Por exemplo alguns sites de pesquisa de imóveis disponibilizados na Web, apresentam
algumas limitações na pesquisa de pontos de interesse a partir de imóveis identificados
como preferenciais onde estes, apenas se limitam a disponibilizar a localização do
imóvel. Também não foi possível identificar sites que permitissem realizar qualquer tipo
de análise ao local, verificando acessos, distâncias, custos e tempos de viagem para os
possíveis pontos de interesse que o utilizador pretenda frequentar no seu dia-a-dia.
A motivação geral do projecto é elaborar um site que proporcione não só uma noção real
do espaço como também que integre funcionalidades de sistemas de informação
geográfica, fornecendo ao utilizador informação válida e ferramentas de apoio à decisão
capazes de complementar a informação que poderá ser disponibilizada ao utilizador.
2
César Daniel da Silva Cabrita
Nº37296
1.3.Enquadramento
Neste subcapítulo pretende-se apresentar ao leitor uma noção resumida do tipo de sistema
e aplicação a apresentar, tentando enquadrar o projecto na conjectura actual e justificando
assim o propósito do mesmo.
O problema que se apresenta ao utilizador diz respeito à falta de informação que este
possui em relação ao espaço envolvente do imóvel de potencial interesse. Presentemente,
este tipo de informação só pode ser adquirida deslocando-se ao terreno, onde muitas
vezes nem sabemos a sua localização, ou então sobra a opção de entrar em contacto com
o mediador do imóvel, que nos fornece uma ideia, muitas vezes sobrevalorizada, do
espaço onde se insere o imóvel.
A aplicação tem como meta disponibilizar soluções que permitam ter uma perspectiva
real do espaço para que o utilizador possa formular a sua opinião pessoal do mesmo. Para
tal, o projecto pretende disponibilizar visualização espacial, fotográfica e também
disponibilizar ferramentas que permitam realizar uma avaliação mais exaustiva das
características do espaço, adaptada às exigências de cada utilizador.
Permite-se assim ao utilizador consultar, comparar e até adicionar informação espacial
presente no local, utilizando critérios espaciais adequados e em tempo útil acerca das
características espaciais e não espaciais do imóvel, viabilizando assim tomadas de
decisão devidamente fundamentadas.
Para o efeito, são utilizadas funcionalidades de Sistemas de Informação Geográfica (SIG)
incorporadas num Website, uma vez que o software do tipo desktop tradicional não
consegue responder às exigências do utilizador em tempo útil. É necessário portanto
abordar o problema de uma outra perspectiva, nomeadamente adaptando e
disponibilizando funcionalidades SIG capazes de ser implementadas de forma a fornecer
ao utilizador uma resposta em tempo útil e com resultados precisos e consistentes.
A área de estudo a utilizar corresponde à área da grande Lisboa.
Como parte do esforço necessário para a implementação do projecto, entrou-se em
contacto com uma empresa denominada Conceito Digital (Conceito Digital, 2013). Esta
lançou recentemente uma rede social que, entre outros objectivos, pretende fornecer
funcionalidades espaciais aos seus utilizadores. Estes objectivos em comum,
proporcionaram uma aliança natural entre projectos, onde, unindo os diferentes tipos de
conhecimento é possível optimizar os dois sistemas de forma a fortalecer ambos os
projectos.
3
César Daniel da Silva Cabrita
Nº37296
A parceria assim criada tem em vista acrescentar uma mais-valia ao produto que a
empresa actualmente possui onde as aplicações SIG proporcionam uma maior riqueza e
funcionalidade criando ou disponibilizando informação espacial útil ao utilizador. Da
parte do projecto a empresa comprometeu-se a fornecer apoio ao nível de
desenvolvimento Web e à disponibilização de dados de pontos de interesse reais que
possibilitem a consulta de resultados válidos e fidedignos.
1.4.Objectivos
Tendo em vista a complementaridade deste tipo de aplicação pensou-se nas vantagens
que as aplicações SIG poderiam oferecer ao utilizador. A partir de cuidada reflexão foram
delineados os objectivos mencionados seguidamente. Estes objectivos têm como
finalidade melhorar este tipo de serviços permitindo ao utilizador saber não só as
características do imóvel, como também saber as características do seu espaço
envolvente, analisar informação espacial e até criar a sua própria informação espacial,
permitindo assim ao utilizador ajustar a busca às suas necessidades de deslocação diárias
e determinar todos os custos inerentes a essa deslocação.
Os objectivos definidos para cumprir a proposta apresentada são os seguintes:

Integração de critérios de busca de imóvel com base em factores espaciais como a
localização e proximidade de determinado ponto de interesse, refinando assim a
procura de imóveis não só com base em atributos do próprio imóvel como
também utilizando informação acerca de outros pontos de potencial interesse,
tomando como exemplo, escolas, unidades de saúde ou supermercados (oito
critérios pré-definidos no total);

Desenvolvimento de uma funcionalidade que permita ao utilizador a colocação de
pontos no espaço (mapa), com vista a condicionar a sua busca a determinada área
de interesse. Por exemplo, o imóvel a seleccionar não poderá estar mais de 10km
afastado da casa de familiares ou do local de trabalho.
Com base na localização do imóvel, pretende-se também encontrar os pontos de
interesse mais próximos, relativos aos oito critérios pré-definidos, para
visualização por parte do utilizador.
Por fim também é possível a disponibilização de todos os pontos de interesse até
uma determinada distância da localização do imóvel (a distância definida é de
quinhentos metros e faz menção aos oito critérios pré-definidos).
4
César Daniel da Silva Cabrita
Nº37296

Criação de funcionalidade que permite delinear trajectos com vista a planear
percursos diários, ou trajectos que permitam ao utilizador saber que caminho
deverá tomar para minimizar os custos com deslocações e apresentar as devidas
indicações do trajecto.
Com base nesses percursos delineados pretende-se também disponibilizar uma
funcionalidade que permita fazer uma estimativa de custos com deslocações entre
os mais diversos pontos de interesse ou de um percurso a realizar (por exemplo o
percurso diário para o local de trabalho).

Criação de uma aplicação capaz de integrar um Web-SIG disponibilizando ao
utilizador a realização de pesquisas espaciais e de todas as ferramentas espaciais
acima mencionadas em tempo útil de pesquisa.
2. Fundamentos de WebSIG
Neste capítulo apresentam-se todos os conceitos teóricos necessários para um
entendimento abrangente de todas áreas envolvidas no projecto. Aqui o leitor poderá ter
uma melhor noção dos fundamentos teóricos das funcionalidades SIG e dos conceitos
informáticos apresentados. Também se irá dar uma descrição genérica do processamento
e funcionamento de uma aplicação Web-SIG para que o leitor possa ter uma ideia geral de
como um sistema deste tipo funciona.
2.1. Conceitos Teóricos
Aqui o leitor poderá ter uma noção geral do que é um sistema e uma aplicação Web-SIG
de forma a ter uma ideia mais concreta das vantagens que um sistema deste tipo pode
proporcionar.
2.1.1. Sistemas de Informação Geográfica (SIG)
5
César Daniel da Silva Cabrita
Nº37296
Um sistema de informação geográfica (SIG) é uma ferramenta de software que permite a
gestão e representação no espaço de elementos físicos ou não físicos, contendo
informação acerca de uma determinada área geográfica ou fenómenos que nela ocorrem.
As aplicações SIG possuem a mesma funcionalidade básica dos mapas convencionais. No
entanto, possuem a vantagem de permitir a disponibilização de informação de uma forma
mais dinâmica e de conter funcionalidades adicionais que permitem criar valor
acrescentado aos mapas com base na informação que se tiver disponível. A integração de
dados é a funcionalidade mais valiosa de SIG (Bernhardsen 2002).
Um SIG pode ser definido como um sistema especializado de gestão de bases de dados
através do qual é possível analisar, relacionar e disponibilizar informação com base na
sua localização bem como outros tipos de informação adicional associados à mesma
(West 2000).
De acordo com Vonderohe (1993), SIG é um sistema que integra hardware, software,
dados, organizações e acordos institucionais com o objectivo de criar, armazenar e
analisar informação acerca de áreas específicas da Terra. Analisando as definições dos
dois autores podemos definir um SIG como uma poderosa ferramenta para integrar,
visualizar, armazenar, manipular e analisar informação espacial (Dragicevic 2004).
Os benefícios dos SIG em relação aos mapas tradicionais, é a sua capacidade para
organizar e explorar a informação digital fornecida pelas base de dados e beneficiar de
funcionalidades como o zoom, selecção de áreas e integração de informação de diferentes
tipos e fontes de dados que são combinados em camadas distintas de informações
baseadas em mapas (Bernhardsen 2002).
Falando um pouco das suas origens, o termo "Sistema de Informação Geográfica (SIG)"
foi criado pelos investigadores do Man Machine Interaction no MIT tendo sido
visualizado com sucesso pela primeira em monitores no início dos anos 90.
Com o passar do tempo, o interesse dos utilizadores por esta área foi aumentando de tal
forma que suscitou um desenvolvimento crescente deste tipo de aplicações (Haklay
2010). Num curto espaço de tempo, com a integração da internet e da tecnologia SIG, a
investigação na área dos SIG mudou abruptamente para áreas como Web-based GIS,
Internet GIS, Internet Distributed GIServices e Online GIS.
Na última década houve um aumento crescente no uso de aplicações Web-GIS nas áreas
da educação, transporte, criminologia, marketing, sociologia, negócio e recuperação de
desastres. Hoje em dia quase todos os negócios e agências governamentais utilizam
6
César Daniel da Silva Cabrita
Nº37296
aplicações GIS como ferramentas de decisão e resolução de problemas (Goldin & Rudahl
1997).
De acordo com estimativas realizadas em 2002, cinquenta porcento da administração
pública necessita de informação geográfica (Bernhardsen 2002). Desde essa data a
necessidade deste tipo de aplicações deverá ter aumentado e com o passar do tempo, cada
vez mais pessoas utilizam regularmente aplicações SIG (Goldin & Rudahl 1997).
2.1.2. O que é uma aplicação Web-SIG?
Uma aplicação Web-SIG é uma aplicação que é acessível através de um browser
viabilizando ao utilizador o acesso às funcionalidades SIG, tais como procura de
localização, obtenção de direcções, zoom, pan e impressão de mapas via Web-browsers.
Por outras palavras, significa a publicação, pesquisa, análise, processamento e
disponibilização de informação geo-espacial na Internet, facilitando assim a vida do
utilizador (Shen et al. 2008).
Com o passar do tempo, a utilização deste tipo de aplicações está a tornar-se mais comum
devido à sua facilidade de utilização, conveniência e rentabilidade para retornar
informação geográfica (You 2007).
No entanto, a utilização de mapas digitais baseados na Web nem sempre é simples, uma
vez que estes mapas são utilizados por pessoas com formação nas mais diversas áreas e,
como tal, estes sites poderão não funcionar de acordo com as espectativas criadas (Nivala
et al. 2008).
Torna-se assim importante a usabilidade das aplicações SIG onde, em termos de
exigência do consumidor final, estas aplicações necessitam de avaliações de usabilidade
consistentes tanto no desenvolvimento e processamento da aplicação como
posteriormente quando a aplicação é lançada (Koua & Kraak 2004).
Aplicações Web-SIG melhoram a capacidade dos utilizadores em três segmentos
distintos. O primeiro consiste no acesso a informação espacial tornando o ambiente Web
mais interactivo, dinâmico e acessível a grande grupos de utilizadores como uma
ferramenta de comunicação visual.
O segundo segmento consiste na exploração de dados e geovisualização que fornecem
uma boa ferramenta de tomada de decisão a pessoas orientadas para o negócio.
7
César Daniel da Silva Cabrita
Nº37296
O último segmento consiste no processamento, análise e modelação de análise espacial
(Dragicevic 2004).
Contextualizando, o primeiro e o segundo segmento foram os mais abordados e
orientados para o projecto tentando harmonizar e disponibilizar ao utilizador um espaço
interactivo, dinâmico e que lhe forneça uma boa ferramenta de decisão. Isto viabilizará
uma tomada de decisão mais informada e consciente acerca do local para onde o
utilizador poderá vir a viver quando pesquisar pelo imóvel que mais lhe convier.
2.2.Pré-processamento de informação espacial
As funcionalidades SIG são o aspecto central deste projecto visto que são elas que
apresentam inovação juntamente com a sua integração no Website em tempo útil e no
ramo do imobiliário. Seguidamente falar-se-á um pouco mais dos seus aspectos teóricos.
2.2.1. Transformação de Coordenadas
Antes da aplicação das funcionalidades SIG pode ser necessário proceder-se muitas vezes
a um pré-processamento de informação, nomeadamente a uma transformação do sistema
de coordenadas de modo a que estas sejam facilmente compreendidas pelos seus
utilizadores finais. Por exemplo, os dados geoespaciais fornecidos através dos serviços do
Google ® apresentam-se em coordenadas geográficas no sistema WGS84. Para
determinar as distâncias métricas entre locais distintos, as suas coordenadas geográficas
sofreram uma transformação para um sistema de coordenadas cartesiano, usando para o
efeito uma projecção de Gauss (R. E. Deakin et al. 2010).
2.2.2. Ponto mais próximo
Uma das funcionalidades SIG a implementar na aplicação web, é a determinação do
ponto mais próximo. Para o efeito é necessário, considerar duas localizações pontuais no
espaço onde é seleccionada a localização que possuir a menor distância entre esta e o
imóvel desejado.
8
César Daniel da Silva Cabrita
Nº37296
Para o cálculo e comparação de distâncias é utilizada a distância euclidiana.
2.2.3. Zonamento
A determinação de todos os pontos dentro de uma determinada zona, é realizada
aplicando um zonamento definido pelos limites máximos e mínimos de latitudes e
longitudes dentro das quais as coordenadas desses pontos de interesse terão de estar
inseridas. O zonamento é feito com unidades métricas e todos os pontos de interesse são
convertidos para essa unidade antes da sua aplicação. Após análise estes são de novo
convertidos para a unidade geográfica.
2.2.4. Caminho mais próximo
A determinação do caminho mais próximo é realizada pela aplicação Google Directions
API (Google Maps 2013), da qual não se conseguiu obter qualquer informação oficial
acerca de como é calculado este caminho. No entanto, a utilização de um algoritmo
denominado “Dijkstra” (Moshe Sniedovich 2006) ou “A*”(Delling et al. 2009) são os
principais suspeitos para a resolução deste problema uma vez que estes são algoritmos
optimizados e mais comummente utilizados para resolver os problemas de redes.
Resumindo, Google Directions API (Google Maps 2013), é tal forma eficiente que
consegue retornar resultados de trajectos válidos num espaço temporal de meio segundo.
O algoritmo procura o caminho numa rede desde um vértice inicial até um vértice final.
Para as funcionalidades de trajecto mais curto e cálculo de percurso óptimo, optou-se por
utilizar as funcionalidades do serviço Google.
2.2.5. Cálculo de Percursos
O cálculo de percursos é calculado de modo similar ao caminho mais próximo,
diferenciando-se apenas no facto de este ser um conjunto de caminhos mais próximos
entre diversos pontos, e não entre apenas dois pontos. No entanto é possível fazer uma
optimização desse cálculo abordando um problema denominado, caixeiro-viajante (D. L.
9
César Daniel da Silva Cabrita
Nº37296
Applegate et al. 2006), que minimiza a distância do trajecto, alternando a ordem do
percurso.
2.3.Arquitectura do Sistema e Descrição Genérica de um processo
Aqui será descrito, de um modo genérico, o funcionamento de um pedido efectuado pelo
utilizador à aplicação.
A estrutura do sistema informático para a realização de um site é normalmente
constituída por três componentes. O back-end, o web service e o front-end (Ilustração 1) .
Ilustração 1: Descrição genérica de um processo.
Tipicamente neste tipo de projecto o utilizador acede ao site e, através das
funcionalidades disponíveis, poderá escolher ou procurar as informações que deseja.
Uma vez seleccionada a opção desejada, o site, através de ligações, inicializa o processo,
executando as aplicações programadas para aquela opção (1). Este processamento é
10
César Daniel da Silva Cabrita
Nº37296
realizado por uma linguagem de programação do tipo browser scripting (por exemplo
javascript).
De seguida, é necessário aceder à informação que o utilizador deseja consultar. Para tal,
é necessário comunicar com o local onde a informação está guardada. Ora, a linguagem
de browser scripting possui um método denominado XmlHttpRequest (2), que permite
enviar a informação que desejamos transmitir através do web service, para uma
determinada aplicação de server scripting (PHP). Esta comunicação é realizada
embutindo no XmlHttpRequest, o link e o requerimento da informação para a aplicação
que irá processar esse pedido. O pedido AJAX (Asynchronous Javascript And XML)
ficará então à espera de uma resposta em linguagem Xml proveniente do back-end.
Depois de recebido o pedido XmlHttpRequest, a aplicação PHP deverá ser capaz de
interpretar a informação transmitida e realizar um pedido à base de dados (MySQL Query
(3)).
Nesta fase, a base de dados interpreta a query e irá retornar à aplicação PHP o resultado
da mesma (4).
Assim que a aplicação PHP recebe a resposta esta terá de ser processada. O seu
processamento, passa por guardar cada resposta da base de dados, e proceder à
elaboração, de uma outra resposta, em formato Xml, para o front-end.
Ou seja, a aplicação PHP cria assim um ficheiro Xml, onde cada informação irá ser
guardada numa estrutura de tags própria das linguagens de marcação. De seguida o
ficheiro Xml é enviado (5), em resposta ao XmlHttpRequest, para o front-end, onde será
processado pelo browser script javascript.
Uma vez recebido o ficheiro, a informação terá que ser interpretada. Isto é realizado, a
partir do tag associado a cada elemento que está guardado no ficheiro Xml, onde, fazendo
referência a cada tag, acede-se à informação contida que se pretende extrair
(ex:<latitude>39,876º</latitude>).
Ora, existem dois tipos de informação embutida no ficheiro. Em primeiro lugar a
informação sobre os dados que se pretendem disponibilizar ao utilizador, ou seja, os
metadados. E em segundo lugar, a informação necessária para materializar espacialmente
a informação, ou seja, elementos como as coordenadas, que são necessários para
implementar os pontos e polígonos em determinado local do mapa.
Este segundo tipo de informação tem um tratamento diferenciado da primeira. Para gerar
a informação visual com a arquitectura de sistema adoptada, é necessário recorrer ao uso
11
César Daniel da Silva Cabrita
Nº37296
de funções disponibilizadas por um serviço externo, neste caso a Google API (Google
Maps API, 2013).
Quando se inicializa o site é realizada uma ligação ao site do Google que irá descarregar
o mapa para o nosso. Este ficará disponível para receber outros pedidos, de forma a
implementar qualquer tipo de informação que se pretenda exibir no mapa.
Quando tal pedido é realizado (6), o site do Google API (Google Maps API, 2013) é
novamente contactado e procede-se à execução do mesmo, fazendo uso das funções prédefinidas pelo serviço. É através desses pedidos ao Google API (Google Maps API,
2013) que a informação espacial é implementada no mapa do site (7).
O último passo do processo consiste na disponibilização da informação no site. Para tal,
são usados dois métodos: o primeiro através do já mencionado site do Google API (7) (
Google Maps API, 2013) que, utilizando as suas funções pré-definidas, implementa todos
os pontos, linhas e polígonos que se queiram exibir; o segundo método consiste em
utilizar a aplicação javascript para disponibilizar a informação ao utilizador (7).
O site é elaborado utilizando uma linguagem de marcação denominada HTML. Esta
linguagem utiliza o, já mencionado, sistema de tags mas de forma diferente. Em cada tag,
é possível reservar pixels, que só estarão disponíveis para o mesmo. A essas tags dá-se o
nome de div.
A quantidade de espaço reservado é determinada pelo estilo da div e, a cada uma, dá-se
um nome único. Uma vez definida a div, a informação poderá então ser carregada para
esse espaço reservado, fazendo referência ao seu nome.
Será desta forma que a aplicação javascript disponibilizará informação ao utilizador. No
caso do primeiro método, todo o mapa é uma div, pelo que o serviço do Google API
saberá, em antemão, o local onde colocará a informação.
3. Metodologia e Implementação
Neste capítulo, apresenta-se todo o trabalho efectuado para a implementação do site de
apoio à pesquisa de imobiliário, a estrutura das componentes integradas, problemas
emergentes e soluções correspondentes. Por fim, é disponibilizada uma apresentação
acerca das optimizações efectuadas. É neste capítulo que todos os pormenores e técnicas
12
César Daniel da Silva Cabrita
Nº37296
utilizadas são explicados e todas as opções de implementação são justificadas e
apresentadas.
3.1.Requisitos Metodológicos
Com base nos objectivos estabelecidos, elaborou-se uma metodologia capaz de dar
resposta às exigências tanto a nível das tecnologias de programação como ao nível das
funcionalidades SIG a incorporar.
Observando o esquema apresentado na Ilustração 2, é possível descrever o projecto em
três fases distintas: a primeira, consiste no planeamento, englobando toda a parte do
levantamento de requisitos, tecnologias necessárias para a viabilização do projecto, o
desenho da arquitectura e por fim a optimização dessa arquitectura e dos próprios
processos e métodos dentro do projecto; a segunda fase consiste na execução do
planeamento em si, com a implementação do projecto propriamente dito; e por fim, toda
a fase de discussão e análise acerca do produto final.
Ilustração 2: Metodologia Teórica.
13
César Daniel da Silva Cabrita
Nº37296
A fase do planeamento inicia-se quando a idealização de um conceito e dos seus
objectivos concretos termina. Uma vez realizado esse processo, o passo natural seguinte é
como fazê-lo. Ora esta fase, equivale ao início da fase de levantamento de requisitos e de
tecnologias necessárias, onde verificamos que tipos de conhecimentos são necessários e
que tecnologias é que são ideais para dar resposta à questão emergente.
Para tal, foram contactados especialistas nas áreas de conhecimento necessários à
realização do projecto, nomeadamente o CEO Paulo Rodrigues da empresa Conceito
Digital (Conceito Digital, 2013)., com vastos conhecimentos na área de aplicações Web, e
a Professora Cristina Catita da Faculdade de Ciências, Universidade de Lisboa,
especializada em Sistemas de Informação Geográfica.
Após cuidada análise, delineou-se a arquitectura do projecto que permite realizar todos os
objectivos propostos. De seguida, cria-se a estrutura do site que engloba toda a
informação e funcionalidades criadas para disponibilizar a informação espacial e não
espacial através de um interface de utilização. Por fim planeia-se a optimização do
sistema informático para que o mesmo possa disponibilizar todas as funcionalidades
desejadas em tempo útil ao utilizador final, garantindo assim, a usabilidade da aplicação
criada.
A fase de execução corresponde à fase de implementação do projecto onde se opta por
segmentar o projecto em fases distintas. A estratégia passa por numa primeira fase,
realizar à parte todas as funcionalidades SIG propostas para o projecto. De seguida, uma
vez que as funcionalidades são genéricas, é necessário integrar as funcionalidades no
conceito do projecto, criando elementos de pesquisa válidos para uma pessoa que procura
um imóvel. Este processo irá ser especificado posteriormente. Por fim, cria-se o site que
engloba toda a informação e funcionalidades criadas para disponibilizar a informação
espacial e não espacial em tempo útil.
A última fase consiste na disponibilização dos objectivos concretizados, discussão entre
os resultados esperados e os resultados obtidos e análise ao projecto no seu todo ao nível
de usabilidade e utilidade para o utilizador final.
3.2.Planeamento e Estrutura da Aplicação
O capítulo de Planeamento e Estrutura apresenta ao leitor as ideias geradas para
responder aos desafios propostos pelos objectivos definidos. Aqui são explicitadas todas
as ideias e reflexões acerca dos recursos a utilizar, da estrutura definida para o projecto,
14
César Daniel da Silva Cabrita
Nº37296
as soluções encontradas para responder aos objectivos e finalmente a estrutura final da
aplicação.
3.2.1. Recursos Utilizados
Os recursos utilizados neste projecto foram:





Dados da empresa Conceito Digital (Conceito Digital, 2013);
EasyPHP;
Fwtools;
Arcgis;
Google API.
O EasyPHP (EasyPHP, 2013) é um pacote WAMP, termo usado para denominar um
determinado grupo de software (Windows, Apache, MySQL e PHP). Este inclui a
linguagem script do lado do servidor PHP, o servidor web Apache, o servidor SQL
MySQL e a ferramenta de gestão de base de dados PhpMyAdmin. Este recurso serve
como base para toda a programação e desenvolvimento da aplicação criada estando todo
o núcleo do projecto criado com base nesta tecnologia.
A linguagem de programação PHP de fácil e intuitiva utilização. Esta é usada do lado do
servidor e permite implementar a parte lógica do sistema. Esta tecnologia também possui
uma boa sinergia com a base de dados MySQL possuindo suporte integrado para
operarem em conjunto. Outro grande motivador para a utilização desta tecnologia deve-se
à grande base de utilizadores da linguagem, que viabiliza um grande suporte a nível de
resolução de problemas e de bibliotecas disponibilizadas. Por fim é de fácil instalação e
não envolve qualquer custo na sua utilização. O Apache é o servidor que disponibiliza o
MySQL e o PHP.
Mencionando as opções relativas a Base de Dados, considerou-se a utilização de SQL
Server ou Oracle. No entanto estas opções foram descartadas uma vez que são pagas. Já
ao nível de linguagens do lado do servidor analisou-se o C# ou o Ruby on Rails onde a
primeira foi posta de lado devido ao seu custo de utilização e a segunda pela menor
informação de apoio presente na internet ao nível de soluções de implementação.
O Arcgis (ESRI, 2013) é o nome de um grupo de programas informáticos e que constitui
um Sistema de informação geográfica criado por uma entidade denominada ESRI. As
suas funcionalidades consistem em trabalhar com mapas e informação geográfica. Este
15
César Daniel da Silva Cabrita
Nº37296
software é utilizado para usar e criar mapas, compilar informação geográfica, descobrir,
analisar e partilhar informação mapeada, criar informação a partir de informação
geográfica existente e realizar a gestão da informação geográfica através de uma base de
dados.
Enquadrando o Arcgis (ESRI, 2013) no projecto, o software é responsável por criar ou
associar informação através de operações espaciais tais como atribuição de informação a
determinado elemento com base na sua localização espacial. A título de exemplo,
utilizando os dados geográficos dos distritos e concelhos, o software pode atribuir a cada
imóvel o respectivo distrito e concelho com base na sua localização geográfica. Este tipo
de funcionalidades torna-o um elemento essencial no projecto.
O FwTools é um conjunto integrado de programas de utilização livre para sistemas de
informação geográfica. Esta tecnologia é responsável por, entre outros, realizar
projecções cartográficas e transformação de ficheiros com formato geográfico para
formato textual, como por exemplo, ficheiros do tipo shapefile para ficheiros do tipo
Xml.
Neste projecto esta tecnologia é responsável por transformar a informação entre formatos
do tipo geográfico, capazes de ser interpretados por software SIG como o Arcgis (ESRI,
2013), e formatos do tipo texto como csv, capazes de ser interpretados por linguagens de
servidor como o PHP. Este software possibilita assim a interoperabilidade entre software
que possuem objectivos distintos como o PHP e o Arcgis (ESRI, 2013).
O serviço Google API (Google Maps API, 2013) é incorporado neste projecto com o
objectivo de disponibilizar ao utilizador toda a informação geográfica envolvida. Foi o
serviço seleccionado pois apresenta funcionalidades que permitem de um modo fácil
disponibilizar informação espacial possuindo ele próprio funcionalidades que também
permitem adicionar informação pertinente ao projecto. Um exemplo válido é o Google
Directions (Google Directions, 2013) e o Google StreetView (Google Maps API, 2013).
3.2.2. Estrutura do projecto
A estrutura do projecto está dividida em dois grandes grupos. O back-end e o front-end.
Verificando a componente do back-end, optou-se pela diferenciação em dois momentos,
onde os mesmos estão ligados à base de dados, mas em tempos diferentes.
16
César Daniel da Silva Cabrita
Nº37296
Ilustração 3: Back-end.
O primeiro consiste no pré-processamento da informação. O pré-processamento é
realizado antes de qualquer busca e sempre depois da introdução de novos imóveis na
base dados. Esta funcionalidade não está disponível para o utilizador.
A operação é responsável por calcular os parâmetros desejados através das
funcionalidades SIG (item 2.2), carregar a informação para a base de dados e modular a
informação para que seja possível efectuar pesquisas sobre a mesma. Isto viabiliza a
pesquisa por imóvel em tempo real uma vez que o processamento pesado é efectuado
neste primeiro momento, anteriormente a qualquer pesquisa que o utilizador efectue.
O segundo momento consiste na pesquisa disponível para o utilizador, onde, após pedido
por parte deste, os critérios são processados e é realizada a query à base de dados, de
onde são retornados os imóveis que corresponderem aos critérios apresentados.
Com esta opção de estrutura pretende-se diferenciar a pesquisa, da introdução de novos
imóveis na base de dados, com vista a torná-los independentes um do outro, partindo do
princípio que a consulta terá uma maior afluência do que a introdução de novos imóveis
no sistema, tornando-o assim mais ágil.
Verificando a componente do front-end, existe a necessidade de analisar algumas das
opções tomadas. O interface com o utilizador é constituído por três páginas HTML, onde
cada uma, possui um propósito específico.
17
César Daniel da Silva Cabrita
Nº37296
A primeira página (Ilustração 4) consiste nos termos de pesquisa. Esta secção foi criada
com o objectivo de focar a atenção do utilizador para a grande diferenciação dos critérios
passiveis de ser investigados. Aqui, devido ao grande número de critérios válidos, foi
tomada a opção de criar uma página só para esse efeito, para que o utilizador tenha uma
noção clara da capacidade que o sistema pode oferecer.
Ilustração 4: Primeira página (Pesquisa).
Aqui, poderão ser seleccionados tanto os critérios associados ao imóvel como os critérios
espaciais para efeitos de pesquisa.
A segunda página (Ilustração 5) consiste nos resultados que advêm da pesquisa. É aqui
que o utilizador terá a informação de todos os imóveis resultantes onde, após selecção de
cada um, será possível verificar a informação detalhada do mesmo, a sua localização
espacial e algumas das funcionalidades SIG criadas para o efeito.
18
César Daniel da Silva Cabrita
Nº37296
Ilustração 5: Segunda página (Resultados).
Por último, apresenta-se a página da simulação (Ilustração 6), onde o utilizador poderá
utilizar tanto os critérios de pesquisa seleccionados por si, como informação espacial que
ele possa criar, de forma a acrescentar informação útil, servindo-se da página como uma
ferramenta de auxílio de tomada de decisão.
Ilustração 6: Terceira página (Simulação).
Olhando para a estrutura do front-end é perceptível a preocupação em distinguir aquilo
que são funcionalidades com aquilo que é o desenho do site, através da utilização de
diferentes páginas. Pretende-se assim tornar evidente os propósitos de cada página
discriminando as suas funções específicas. Como parte desse esforço recorreu-se também
à implementação de alguns módulos que auxiliam a usabilidade do site por forma a
aumentar a sua apelabilidade e dinâmica e manter um desenho claro e simplificado.
19
César Daniel da Silva Cabrita
Nº37296
3.2.3. Soluções dos objectivos definidos
Este subcapítulo apresenta as soluções propostas e criadas para dar resposta a cada um
dos objectivos delineados. Tendo em vista este facto procede-se, à descrição das soluções
pela ordem dos objectivos.
O primeiro objectivo consiste em criar uma solução que pretenda elaborar uma pesquisa
não só baseada nas características do imóvel como também em factores espaciais
associados a este. As soluções propostas para responder a este desafio foram:




Definição de critérios genericamente relevantes de procura espacial;
Distância de influência dos critérios espaciais;
Enquadramento dos critérios espaciais no site para consideração de pesquisa;
Elaboração da pesquisa com base nos parâmetros espaciais.
Em relação ao primeiro ponto os critérios a considerar nas pesquisas espaciais a
implementar pela aplicação Web-SIG dizem respeito à proximidade a pontos de interesse
frequentemente procurados por potenciais clientes no sector imobiliário. Como tal estes
terão que ser de um modo geral relevantes para qualquer utilizador que procure um
imóvel. Os critérios considerados mais relevantes para tal pesquisa foram de proximidade
a:
1.
2.
3.
4.
5.
6.
7.
8.
Cafés;
Restaurantes;
Supermercados;
Transportes Públicos;
Escolas;
Pontos Turísticos;
Locais Nocturnos;
Unidades de Saúde.
Considera-se assim, que estes são critérios que possuem algum peso na escolha do
imóvel. Por exemplo, um imóvel próximo de uma escola para os filhos ou um idoso à
procura de uma casa não muito longe do seu centro de saúde.
De seguida torna-se necessário definir qual será a distância espacialmente relevante para
os critérios definidos, tentando encontrar um valor suficientemente abrangente de modo a
que este seja válido para todos os critérios de pesquisa. O valor de distância definido
20
César Daniel da Silva Cabrita
Nº37296
posiciona-se entre os 100 metros e os 2 quilómetros. Ou seja, esta é a distância de
pesquisa válida para qualquer um dos critérios espaciais que se queira pesquisar.
Com base na estrutura do projecto delineado torna-se importante definir um espaço de
destaque para estes critérios. Naturalmente, este será um espaço na primeira página
permitindo ao utilizador não só seleccionar o critério pretendido como também definir a
distância a considerar. Este espaço é utilizado somente para integrar critérios espaciais na
pesquisa a realizar tendo um foco importante na página por ser precisamente foco do
projecto a realizar.
Por último, foi necessário definir todo o processamento do pedido de modo a realmente
se realizar uma pesquisa com base nos critérios espaciais.
Para tal, a base de dados tem armazenado, para cada imóvel, o valor da distância do ponto
de interesse mais próximo desse imóvel (Ilustração 7). Comparando esse valor com o
valor do critério de pesquisa, verifica-se a condição. Caso o valor de distância para esse
critério espacial seja inferior ao critério definido no critério de pesquisa, esse imóvel é
considerado válido na análise. Serão considerados todos os imóveis que respeitem essa
condição.
Ilustração 7: Informação espacial do imóvel acerca da distância a cada ponto de interesse mais próximo.
No final serão seleccionados todos os imóveis que respeitem essa e todas as outras
condições que o utilizador possa impor quando este define os critérios de pesquisa.
O segundo objectivo consiste essencialmente em permitir ao utilizador a introdução de
pontos de interesse pessoais para consideração de pesquisa. Também se pretende a
disponibilização dos resultados com base no ponto de interesse mais próximo do imóvel e
também de todos os pontos de interesse num zonamento de 500 metros à volta do
utilizador.
De referir que se considerou a hipótese dos pontos pessoais do utilizador ficarem de
alguma forma armazenados na aplicação, mas opção não avançou porque o projecto não
prevê um sistema de utilizador com conta dentro do site para que os seus pontos pessoais
possam ficar associados à mesma e não faria sentido guardar pontos pessoais para
utilização geral.
A utilização do mapa é uma mais-valia para o projecto uma vez que o utilizador terá
assim uma ideia visual acerca do local onde pretende introduzir o seu próprio ponto de
21
César Daniel da Silva Cabrita
Nº37296
interesse, bem como uma percepção visual dos pontos de interesse considerados e mesmo
do próprio imóvel.
Torna-se assim necessário decidir o tipo de mapa mais indicado para introduzir e
disponibilizar a informação espacial na aplicação. A Google API (Google Maps API,
2013) surgiu como a opção mais forte uma vez que:




A rede do Google é densa e tem uma topologia bem definida;
Torna a base de dados mais leve por não possuir tanta informação associada e
armazenada. A base de dados apenas guarda coordenadas dos pontos de interesse
e imóveis;
Facilidade de utilização das funções do Google API (Google Maps API, 2013) na
criação e disponibilização de informação geográfica;
Disponibilização de ferramentas como o Google StreetView (Google Maps API,
2013) que fornecem valor acrescentado ao projecto.
Uma vez definido o mapa a utilizar é necessário criar as funcionalidades que vão de
encontro aos objectivos estabelecidos.
A primeira consiste na disponibilização de um mapa que permita ao cliente introduzir o
ponto de interesse que quer considerar para análise através da indicação no mapa. A
funcionalidade tratará de extrair as coordenadas dos pontos. De seguida o utilizador
define a distância máxima à qual o imóvel poderá distanciar. A informação é guardada e
o utilizador poderá introduzir um novo ponto de interesse caso deseje.
Quando o processamento do pedido for efectuado será então realizado um zonamento à
volta do ponto escolhido, com base na distância definida anteriormente, irá proceder à
verificação dos imóveis que estejam contidos nesse zonamento.
Em relação ao ponto mais próximo e ao zonamento de 500 metros em redor do imóvel
seleccionado, o processamento é realizado anteriormente à pesquisa onde esta informação
já se encontra associada ao imóvel e, caso este seja seleccionado, esta já está contida na
informação para dar resposta ao pedido do utilizador. Este processamento é realizado
antes da pesquisa e utiliza funcionalidades SIG que calculam os parâmetros desejados e
importam a informação para a respectiva coluna da tabela a consultar na base de dados
(Ilustração 2).
Esta solução foi desenhada com vista a permitir a consulta de informação em tempo útil
onde se o processamento das funcionalidades SIG fosse feito em tempo real, não seria
possível obter resultados em tempo útil de pesquisa. É então pré-definido e associado a
22
César Daniel da Silva Cabrita
Nº37296
cada imóvel, o ponto de interesse mais perto deste, para cada critério (escola, café,
restaurante, etc), e todos os pontos de interesse num raio de 500 metros.
Os resultados são apresentados na segunda página do projecto.
O terceiro objectivo consiste em criar uma funcionalidade que permita delinear, criar e
disponibilizar trajectos, fornecendo ao utilizador uma estimativa dos custos diários e
mensais de viver ou deslocar-se para determinado imóvel bem como do trajecto a
efectuar.
Para ir de encontro aos objectivos pretendidos, é necessária a existência de uma rede
viária para que seja possível percorrer um trajecto e disponibilizar a informação do
mesmo. Para tal, existiam duas opções viáveis: utilizar a rede viária do Google ou utilizar
a rede viária disponibilizada pela Osgeo (OSGeo, 2013) e adaptá-la.
Houve uma tentativa de utilização de uma rede viária disponibilizada pela Osgeo
(OSGeo, 2013). A Osgeo é uma entidade que promove o desenvolvimento colaborativo
de aplicações espaciais Open Source. Entre outras aplicações, esta também disponibiliza
informação e dados criados para uso livre dos utilizadores. A informação pode ser
extraída do site (OpenStreetMap, 2013).
No entanto os seguintes problemas surgiram:




Rede possui erros de geometria e topologia não está criada;
Necessidade de guardar a rede na Base de Dados;
O tamanho da rede limita o tratamento de dados sobre a mesma uma vez que a
capacidade de processamento da informação era limitada tornando a criação de
topologia um processo demasiado pesado apesar das tentativas de segmentar a
rede por zonas;
Falta de conhecimento na resolução de problemas de fronteira na aplicação dos
algoritmos de cálculo de redes elaborados (Dijkstra. e A*).
Optou-se por utilizar as funcionalidades do serviço do Google. Razões que justificam este
facto:



A rede viária do Google é densa e tem uma topologia bem definida;
Os algoritmos que correm sobre esta, Dijkstra. e A*, retornam resultados
satisfatórios de cálculo de trajecto mais curto, de percurso óptimo e em tempo
útil;
Não existe a necessidade de guardar a rede viária na base de dados;
23
César Daniel da Silva Cabrita


Nº37296
Evita a elaboração de pedidos à base de dados cada vez que se deseje obter um
trajecto ou determinar um percurso óptimo, optimizando assim a usabilidade do
site;
Disponibilização de elementos adicionais como indicações do trajecto a seguir,
duração e distância a percorrer.
No entanto, a utilização do Google API (Google Maps API, 2013) possui a restrição de
utilização de pedidos onde só poderão ser requisitados 10000 pedidos diários,
constituindo, assim, o principal inconveniente do serviço.
Com a rede viária seleccionada, é necessário agora, disponibilizar ao utilizador
ferramentas que lhe permitam realizar simulação de custos.
Com base nos critérios espaciais seleccionados, é calculado o trajecto a efectuar através
de um pedido ao Google API (Google Maps API, 2013) que, por sua vez, retorna a
informação do trajecto a efectuar sobre a rede viária. É então retornada a informação das
indicações do trajecto, a distância a percorrer e tempo estimado, ficando em falta a
estimativa do preço do trajecto.
Para a realização dessa estimativa é pedido ao utilizador que introduza o tipo de gasolina
e consumo do seu veículo de transporte, onde, com base na distância a percorrer e no
custo da gasolina por litro, é realizada uma estimativa diária e mensal dos custos, de
acordo com a deslocação diária do utilizador.
Todos os resultados são disponibilizados na terceira página do projecto.
O último objectivo consiste em criar uma aplicação Web-SIG que sustenha todas as
funcionalidades anteriores. Para tal, elaborou-se a estrutura do projecto mencionada no
capítulo anterior (item 3.2.3) e toda a arquitectura que no próximo capítulo se irá
apresentar.
3.2.4. Estrutura da Aplicação
Seguindo a descrição genérica do projecto apresentada no item 2.3, descreve-se, aqui, a
estrutura idealizada para este projecto, subdividindo-o por páginas.
A fim de obtermos uma maior flexibilização da linguagem na descrição do projecto
considera-se neste subcapítulo, por página, não só a página HTML, mas toda a estrutura
24
César Daniel da Silva Cabrita
Nº37296
front-end ligada à mesma, uma vez que, na prática, as funcionalidades não estão na
página HTML mas sim associadas a esta nos ficheiros javascript, CSS e nos serviços do
Google API (Google Maps API, 2013). De seguida apresenta-se a estrutura da página de
pesquisa (Ilustração 8).
Ilustração 8: Processos da primeira página.
Na primeira parte da descrição da estrutura é possível observar o funcionamento da
página da pesquisa. Esta, caso o cliente deseje especificar, inicia-se com a escolha da
localidade.
Quando a página é carregada, é realizado um pedido à base de dados (1) através de um
requerimento, XmlHTTPRequest (2). Por sua vez, o pedido é recebido por um ficheiro do
tipo PHP que é responsável por receber a informação, criar uma query e proceder ao
pedido da informação à base de dados (3).
A partir desse pedido, a base de dados retorna uma resposta que, neste caso, consiste no
identificador e no nome de todos os distritos presentes na base de dados. Essa resposta (4)
é recebida pela aplicação PHP que, realizando o parsing da mesma, irá criar um ficheiro
25
César Daniel da Silva Cabrita
Nº37296
com estrutura Xml, que consistirá na resposta ao XmlHTTPRequest. Essa resposta é
esperada pela aplicação javascript, que realiza o parsing da mesma e procede à
disponibilização da informação (6), neste caso, de todos os distritos de Portugal.
De modo a simplificar o processo, decidiu-se realizar apenas a pesquisa por imóvel na
segunda página. Esta opção justifica- se com o facto de não haver necessidade de realizar
o pedido na primeira, onde já existem três pedidos, tentando assim, agilizar e optimizar o
funcionamento do site. O facto de se utilizarem cookies para a troca de informação entre
páginas HTML, também pesa nesta opção uma vez que assim não é necessário passar
toda a informação resultante da pesquisa como cookie, mas sim apenas os parâmetros de
pesquisa.
Considerando estes aspectos, o último processo da primeira página é o de agregar toda a
informação introduzida pelo utilizador numa variável, criar uma cookie (7) para onde se
carrega essa informação e disponibilizá-la para que a segunda página HTML possa
aceder à mesma e proceder ao pedido à base de dados.
A segunda página HTML (Ilustração 9), possui a seguinte estrutura:
Ilustração 9: Processos da segunda página.
26
César Daniel da Silva Cabrita
Nº37296
A funcionalidade da segunda página, começa pela importação dos critérios de pesquisa a
partir da cookie criada na página anterior (1). Aí a informação contida é carregada para
uma variável que é incluída no XmlHTTPRequest (2) com vista a passar os parâmetros
de pesquisa para o back-end.
Após a aquisição da informação é criada uma query (3) de acordo com os critérios
seleccionados pelo utilizador e é retornada a resposta (4) correspondente. Essa resposta
terá um limite de trinta resultados. Mais informação só será disponibilizada caso o
utilizador requisite. Uma vez recebida a resposta, esta é processada e é criado um ficheiro
com estrutura Xml (5) com vista a receber essa informação e enviá-la para o front-end.
No front-end, a informação é armazenada numa variável que será tratada em linha com a
componente espacial e a componente não espacial.
A componente espacial é processada de forma a apresentar uma estrutura passível de ser
utilizada para efectuar um pedido à API do Google (6 e 7), de forma a apresentar a
informação espacial no mapa do site. O caso (6) contém uma nuance: a resposta do
Google API (Google Maps API, 2013) terá de ser processada antes de ser enviada para
disponibilização no mapa.
A informação textual é processada de forma a ser disponibilizada ao utilizador no site
para consulta (7).
O último processo desta página consiste na criação (8) de uma nova cookie que conterá a
informação de todos os imóveis resultantes da consulta.
Por fim, apresenta-se a estrutura da terceira página (Ilustração 10):
27
César Daniel da Silva Cabrita
Nº37296
Ilustração 10: Processos da terceira página.
Esta página HTML permite ao utilizador modular e utilizar os dados consultados da
forma que mais lhe convier permitindo criar valor acrescentado através das suas
funcionalidades.
O primeiro passo consiste precisamente na importação desses dados (1). De seguida, a
página irá proceder à disponibilização da informação já consultada na segunda.
Para tal, a informação tem de processada de forma similar à da página dois (2) onde a
informação tem de ser retornada do Google para a aplicação javascript (3). Daí a
informação terá que ser novamente processada para se efectuar um pedido de
disponibilização de informação espacial (5) juntamente com a informação textual (4).
28
César Daniel da Silva Cabrita
Nº37296
3.3.Back-end
Neste subcapítulo é definida toda a estrutura da base de dados bem como o
processamento da informação desde a sua criação até à sua importação para a mesma.
Posteriormente também é explicitado todo o processo associado à disponibilização da
informação espacial associada aos imóveis envolvidos no projecto. Por fim, descreve-se o
modo como a informação é recebida do front-end e devolvida para o mesmo,
descrevendo em detalhe todas as fases de processamento.
3.3.1. Base de Dados
O primeiro passo na criação do back-end consiste na elaboração da base de dados. Esta
está organizada em quatro tipos de informação.
A primeira é a informação acerca dos imóveis disponíveis para consultar. Esta tabela
possui informação acerca das suas características, localidade em que se encontra e
coordenadas.
Tabela 1: Colunas da tabela Imóveis.
Imoveis
Colunas
IdCasa
Finalidade
TipoDeImovel
Tipologia
Preco
Arrendar
Caracteristicas
Area
CacheLocal
CacheCaract
CacheEspacial
Tipo
int(11)
Texto
Texto
double(10,2)
double(10,2)
Texto
Texto
double(10,2)
Texto
Texto
Texto
Nesta tabela está contida a informação associada a cada imóvel onde as colunas
finalidade, tipo de imóvel, tipologia e características contêm informação textual e as
29
César Daniel da Silva Cabrita
Nº37296
colunas preço, arrendar e área a informação numérica do imóvel. As tabelas cache local,
caract e espacial, contêm correspondentemente, a localização do imóvel por distrito,
concelho e freguesia, a informação textual do imóvel e a localização espacial do imóvel
com separação por vírgulas.
O segundo tipo de informação presente na base de dados consiste na informação acerca
dos pontos de interesse, constituída por oito tabelas correspondentes a cada tipo. A sua
estrutura é similar entre si e consiste em informação acerca do nome do ponto de
interesse, características e coordenadas de cada ponto.
Tabela 2: Colunas das tabelas dos pontos de interesse considerados.
Tabelas
Colunas
Tipo
Cafe_Pastelaria
Id
codPostal
nome
email
latLng
telefone
outraInfo
morada
latitude
longitude
Int(11)
Texto
Texto
Texto
Texto
Int(11)
Texto
Texto
Double
Double
Restaurante
Supermercado
Transportes_Publicos
Escolas
Ponto_Turistico
Espaco_Nocturno
Unidade_de_Saude
Estas tabelas possuem informação espacial acerca de todos os pontos de interesse para,
juntamente com a tabela das casas, criar informação espacial válida para todos os
imóveis. O objectivo final é assim associar a cada imóvel, o ponto de interesse mais
próximo deste e todos os pontos de interesse num raio de 500 metros de cada uma das
tabelas.
O terceiro tipo corresponde à informação acerca dos distritos, concelhos e freguesias do
país onde o utilizador, quando inicia a sua procura, pode pesquisar a localidade onde
pretende que o seu imóvel esteja inserido, restringindo, deste modo, a sua busca.
30
César Daniel da Silva Cabrita
Nº37296
Tabela 3: Colunas das unidades territoriais de Portugal.
Distrito
Colunas
Tipo
IdDistrito Int(11)
Nome
Texto
Concelho
Colunas
Tipo
IdConcelho Int(11)
IdDistrito
Int(11)
Nome
Texto
NomeDistrito Texto
Freguesia
Colunas
IdFreguesia
IdConcelho
IdDistrito
Nome
NomeConcelho
NomeDistrito
Tipo
Int(11)
Int(11)
Int(11)
Texto
Texto
Texto
A informação acerca de distritos, concelhos e freguesias possui características peculiares,
uma vez que este é um tipo de informação que segue uma certa hierarquia onde,
freguesias estão inseridas em concelhos e concelhos estão inseridos em distritos. Com
base neste conceito é possível associar inequivocamente identificadores de uma
hierarquia superior a qualquer um dos elementos inferiores desde que estes pertençam a
esta. Desta forma restringe-se a procura de elementos não pertencentes à classe superior,
optimizando a procura da localidade pretendida.
Por exemplo, sabendo que o concelho de Oeiras faz parte do distrito de Lisboa, o
utilizador não terá de pesquisar todos os concelhos existentes, porque seleccionando o
distrito de Lisboa só serão disponibilizados os concelhos deste. Este processo é realizado
através de identificadores associados entre distritos, concelhos e freguesias.
Por último, encontra-se a tabela de informação. Esta tabela, recebe a informação textual
da tabela casas, utilizando a informação espacial da mesma, das tabelas dos pontos de
interesse e, por fim, os resultados dos processos de análise espacial. Esta possui
características distintas das outras, uma vez que o seu propósito específico não é só o de
armazenar informação mas também permitir que o utilizador aceda a esta. O objectivo
deste tipo de estrutura de tabela é um acesso e procura rápido da informação e retorno de
informação de modo a garantir um funcionamento agilizado de toda a aplicação.
31
César Daniel da Silva Cabrita
Nº37296
Tabela 4: Tabela a consultar por parte do utilizador.
Para efeitos de esclarecimento segmentou-se a tabela por classes, de modo a clarificar o
propósito de cada coluna inserida na tabela. A primeira classe de informação apresentada
são os identificadores e a informação textual associada a cada imóvel. Especificando, as
colunas IdCasa, Localização, Características, Area, Pvenda, Parrenda, Informação e
Contactos, estas, são carregadas com informação proveniente da tabela casas.
A coluna IdInfo é o identificador único de cada elemento desta tabela.
De seguida, temos a informação da classe Mais próximo. Esta informação é recebida do
processamento da informação espacial proveniente da tabela casa e das tabelas dos
pontos de interesse.
As distâncias dos pontos de interesse mais próximos de cada imóvel são carregados em
cada tabela correspondente e as respectivas coordenadas espaciais são carregadas por
ordem na coluna InfoPtos e separadas entre si por ponto e vírgula para posterior
disponibilização no mapa do site.
Posteriormente, temos a informação da classe Raio onde, neste caso, as colunas são
constituídas por todas as coordenadas espaciais de cada tipo que se encontrem inseridas
dentro dos limites do zonamento de 500 metros definido.
Por fim, encontra-se a informação da classe Coordenadas onde, tal como o nome indica,
consiste nas coordenadas do próprio ponto. As primeiras e segundas colunas servem para
comparar as coordenadas que o utilizador requisita quando este utiliza a funcionalidade
de consulta usando pontos pessoais. A terceira coluna serve para extracção directa de
coordenadas quando os resultados obtidos com pesquisas não contemplem o critério
anterior.
32
César Daniel da Silva Cabrita
Nº37296
3.3.2. Pré-processamento de Dados
O pré-processamento dos dados inicia-se com a obtenção dos dados a partir das mais
diversas fontes. Inicialmente esperava-se obter informação validada a partir de contactos
efectuados com a empresa Conceito Digital (Conceito Digital, 2013) mas infelizmente
não foi possível obter esse tipo de informação devido à escassez de dados fornecidos pela
empresa.
Sem recurso àquilo que seria uma mais-valia para este projecto, recorreu-se a um plano
B, que consiste na criação de imóveis e pontos de interesse fictícios utilizando a aplicação
PHP.
No primeiro processo cria-se um conjunto de características correspondentes às tabelas
dos imóveis e dos pontos de interesse indicados na base de dados.
Dentro de cada característica, com excepção das coordenadas e da área de cada imóvel ou
ponto de interesse, criou-se um conjunto de elementos que serão aleatoriamente
atribuídos à característica correspondente. Por exemplo, para o tipo de imóvel, o conjunto
de elementos criados foi quarto, apartamento, moradia, entre outros.
Para a característica área criou-se um valor aleatório entre 40 e 140 metros quadrados.
Por fim, para a característica coordenadas, foi definido um limite máximo e mínimo de
latitude e longitude na área da grande Lisboa. Os imóveis estarão incluídos dentro desses
limites definidos e são dispersos de modo aleatório. Os conjuntos aleatórios criados são
coerentes com as colunas definidas no capítulo anterior.
Com todos os conjuntos definidos cria-se 10000 imóveis e 30000 pontos de interesse
contendo um valor aleatório proveniente de cada tipo de característica definido. Por
exemplo, para o imóvel definiu-se aleatoriamente um valor de arrendamento ou de venda,
uma característica de tipologia, tipo de imóvel e finalidade, entre outros.
Com todo este processo efectuado os dados passam para a fase de exportação de
informação para determinação de localidade associada a cada imóvel e ponto de interesse
a partir da coordenada espacial atribuída aleatoriamente.
Nesta fase, a informação é carregada para o software Arcgis (ESRI, 2013) onde,
utilizando a informação espacial da CAOP (DGOT, 2012), realiza-se a operação de
intersecção espacial. Esta operação associa a cada imóvel a informação da localidade
(Distrito, Concelho e Freguesia) onde este se insere.
33
César Daniel da Silva Cabrita
Nº37296
Posteriormente essa informação é exportada para uma folha de cálculo e gravada num
ficheiro do tipo csv. Por fim, a informação acerca dos imóveis é importada para a tabela
de imóveis e os pontos de interesse para as respectivas tabelas de acordo com o seu tipo.
De referir que este processo é feito primeiramente para os imóveis e só depois para os
pontos de interesse uma vez que as características de cada um são distintas.
Esta operação é efectuada deste modo devido à necessidade de utilizar informação
fictícia. Caso contrário, o responsável pela introdução da informação teria de preencher
os campos de informação para cada imóvel que quisesse introduzir no sistema.
O pré-processamento de dados continua com a criação da informação espacial para
consulta posterior por parte do utilizador. É nesta fase que as características do imóvel e
da sua zona de influência espacial são determinadas e importadas para a tabela que o
utilizador irá consultar. Em relação à informação não espacial e coordenadas do imóvel, a
informação é simplesmente transferida de uma tabela para a outra.
Pretende-se então utilizar as coordenadas do imóvel e dos pontos de interesse de modo a
determinar, para cada imóvel, o ponto de interesse mais próximo (Ilustração 11) e todos
os pontos de interesse num raio de 500 metros para cada tipo destes.
34
César Daniel da Silva Cabrita
Nº37296
Ilustração 11: Processamento do ponto mais próximo entre tabelas da base de dados e aplicação PHP.
O primeiro passo a efectuar é um pequeno pré-processamento de informação, onde só os
pontos de interesse que tiverem uma distância inferior a 2000 metros, de acordo com cada
imóvel, é que são considerados para a análise do ponto mais próximo.
Uma vez extraída essa informação determina-se, para cada imóvel, qual o ponto mais
próximo a este, calculando a distância entre o imóvel e cada ponto, e guardando o
identificador, as coordenadas e o menor valor de distância entre o ponto de interesse e o
imóvel. Este processo é efectuado 8 vezes, correspondendo cada um, a cada tipo de ponto
de interesse e onde a informação é importada para a respectiva coluna da tabela da
informação.
No caso do raio de 500 metros é realizada uma pesquisa espacial que selecciona apenas
todos os pontos de interesse que tiverem uma distância ao imóvel inferior à definida.
Todas as coordenadas dos pontos validados são guardados num array que é
35
César Daniel da Silva Cabrita
Nº37296
posteriormente importado para a coluna correspondente da tabela informação de acordo
com cada tipo de ponto de interesse. Neste caso o valor da distância não é guardado.
3.3.3. Processamento de pedidos do utilizador
A fase de processamento de pedidos consiste na recepção de XmlHTTPRequest que
chamam a aplicação PHP, de forma efectuar as mais diversas operações com vista a
retirar da base de dados a informação requisitada pelo utilizador.
Existem dois tipos de pedidos a efectuar: os pedidos por localidade (distrito, concelho e
freguesia) e o pedido por imóveis que correspondam aos critérios de pesquisa.
No primeiro caso, existe inicialmente um pedido à base de dados de todos os distritos de
Portugal. Seguidamente, caso o cliente especifique, existe um segundo pedido com a
informação do distrito seleccionado, e realiza-se uma query à base de dados
especificando somente os concelhos pertencentes a esse distrito. Esta selecção é
efectuada através do identificador do distrito especificado na base de dados. Por fim, caso
o cliente também requisite, é enviado um terceiro pedido à base de dados com o
identificador do concelho, de forma a retornar todas as freguesias pertencentes ao mesmo.
Para o segundo pedido, o processo é mais complexo e subdivide-se em três componentes.
A informação que chega ao back-end é subdividida em três partes: localidade,
características do imóvel e características espaciais, excepto informação introduzida pelo
utilizador que será especificada posteriormente. Neste processo, a informação é
interpretada através de um código (Ilustração 12). Este código é constituído por três
valores booleanos (booleano: 0 ou 1) que permitem identificar o tipo de elementos que
irão fazer parte da query que será efectuada à base de dados.
Por defeito, se nenhum critério for seleccionado em nenhuma componente, o código
corresponderá a (0,0,0) e nenhum resultado será retornado. No caso de ser seleccionado
algum critério associado à localidade como Distrito, Concelho ou Freguesia, o primeiro
dígito do código será um (1,0,0).
Se algum dos critérios seleccionados estiver associado às características do imóvel, o
segundo dígito será um (0,1,0), e o mesmo acontecerá com o terceiro (0,0,1).
36
César Daniel da Silva Cabrita
Nº37296
Ilustração 12: Código gerado a partir da selecção de parâmetros no site.
Ora no caso de ser seleccionado mais do que um critério associado a diferentes
subconjuntos, o código irá conter mais do que um campo com o valor de um. Dando um
exemplo, se especificarmos pelo menos um critério de localização e um critério de
características espaciais o respectivo código será (1,0,1). Este tipo de tratamento de
informação tem como objectivo evitar processos e verificações desnecessárias a pedidos
que não contemplem informação para essas acções, tentando organizar e estruturar a
elaboração da query e agilizar o pedido à base de dados.
Depois de determinado o código correcto, a aplicação irá processar as funções associadas
a este. Estas acções consistem essencialmente nos mesmos processos, mas realizados de
forma diferente, para se adaptarem às diferentes características da informação requisitada.
As acções são:



Verificação das variáveis activas;
Carregamento da informação activa para array;
Criação de query à base de dados com base no array.
Uma vez processada toda a informação linear, o processo passa para a informação não
linear, ou seja, a consulta de imóvel adicionada à informação requisitada pelo utilizador
quando este utiliza a funcionalidade de realizar uma consulta com base em informação
pessoal.
37
César Daniel da Silva Cabrita
Nº37296
A razão de afirmar que a informação é não linear, prende-se com o facto de esta ser
passível de ser utilizada quantas vezes o utilizador desejar, pelo que a informação é
carregada em forma de array não sendo possível de determinar à priori o número de
variáveis que o utilizador introduziu.
Como este processo é independente dos outros processos, este pode nem ser efectuado se
o utilizador não introduzir pontos pessoais de interesse. Como tal, optou-se por realizar a
verificação da presença desta informação após qualquer tipo de processamento onde, caso
exista, adicionar-se-á posteriormente à query.
A metodologia é a seguinte:






Determinação de tamanho do array dos pontos pessoais;
Retirar coordenadas e distâncias a considerar dos pontos;
Realizar uma projecção de coordenadas geodésicas para cartesianas realizando
uma transformação de gauss;
Criação de um zonamento em volta do ponto seleccionado com a distância
determinada pelo utilizador;
Transformação das coordenadas dos pontos desse raio para coordenadas
geodésicas realizando uma transformação inversa de gauss;
Adição desses limites à query para consideração de todos os imóveis contidos no
raio.
Por fim, com todos os elementos passiveis de serem definidos seleccionados, a query é
finalmente enviada e endereçada à tabela informação e retornará todos os imóveis que
corresponderem aos parâmetros requisitados.
3.4.Front-end
3.4.1. Primeira Página
Como já referido, o site está dividido em três páginas. Aqui são especificadas as
funcionalidades criadas e utilizadas em cada um, a informação disponível e a
metodologia utilizada.
Começando pela página de pesquisa, esta inicia-se especificando a localização dos
imóveis onde o utilizador poderá realizar a pesquisa. Aí é possível seleccionar um distrito
38
César Daniel da Silva Cabrita
Nº37296
alvo, disponível através de um pedido à base de dados realizado quando a página é
carregada.
A informação é, então, assimilada pela aplicação que realizará um segundo pedido,
retornando e disponibilizando todos os concelhos pertencentes a esse distrito.
Consequentemente, caso seja seleccionado um concelho, é realizado um novo pedido que
retorna as freguesias associadas a este, totalizando assim, um valor de até três pedidos à
base de dados.
Uma vez especificada a localização de imóveis de interesse, o projecto disponibiliza a
opção de seleccionar critérios de pesquisa associados ao imóvel.
Os critérios disponíveis são a finalidade, o tipo de imóvel e a tipologia. As respectivas
opções disponíveis estão especificadas na seguinte tabela:
Tabela 5: Opções de seleção para as caracteristicas descritas.
Finalidade
Tipo de Imóvel
Tipologia
Qualquer
Qualquer
Compra
Arrendamento
Trespasse
Apartamento
Qualquer
Moradia
T0
Quarto
T1
Armazéns
T2
Escritórios
T3
Garagens
T4
Lojas
T5
Quintas e Herdades
Outros
Férias
Terrenos
Uma vez especificados os elementos de procura mais relevantes associados ao imóvel, é
possível especificar características mais particulares como a área da casa e outros
elementos como integração de jardim, piscina, garagem ou condomínio.
39
César Daniel da Silva Cabrita
Nº37296
Uma vez seleccionadas todas as características do imóvel, avançamos para a relevância
espacial do mesmo, onde realmente reside toda a inovação do projecto.
Na secção reservada para o efeito, procura-se definir para cada critério espacial
considerado, uma distância da qual não queremos que determinado ponto de interesse
esteja distanciado (Ilustração 13), dando liberdade ao utilizador para definir os
parâmetros que na sua opinião são razoáveis para o seu maior conforto, comodidade e
satisfação.
Ilustração 13: Selecção de critério espacial.
Os parâmetros de interesse considerados podem ser consultados no subcapítulo 3.2.3.
Esta funcionalidade irá considerar apenas os imóveis onde se verifiquem estas condições.
Além disso, também é disponibilizada a funcionalidade que permite ao utilizador colocar
o seu próprio ponto de interesse enriquecendo, assim, a sua pesquisa (Ilustração 14).
Ilustração 14: Seleção manual de critério espacial.
40
César Daniel da Silva Cabrita
Nº37296
Para tal, são utilizados os serviços da API do Google que disponibiliza o mapa e as
ferramentas necessárias para a extracção de pontos de interesse. Aqui, quando se quiser
considerar um ponto, selecciona-se o local no mapa, e a funcionalidade irá extrair as
respectivas coordenadas, e a distância do slider para definição do distanciamento máximo
ao ponto seleccionado. Poderá ainda especificar o nome do ponto de interesse para
posterior análise na segunda e terceira página.
A última operação a efectuar na primeira página consiste na elaboração de uma cookie
que permite guardar informação e torná-la acessível nas páginas seguintes que necessitem
da mesma para os seus processos.
Após todos os critérios de pesquisa estabelecidos e a cookie criada avança-se então para a
pesquisa de imóvel.
3.4.2. Segunda Página
A segunda página inicia-se com a importação dos critérios de pesquisa à cookie criada
anteriormente. Após importação é enviado um pedido à base de dados com os critérios de
pesquisa, com o objectivo de retornar os imóveis que correspondam às especificações do
mesmo. Uma vez retornada a informação do back-end, esta é disponibilizada ao
utilizador através de dois métodos. O primeiro consiste no mapa que disponibiliza não só
o imóvel considerado como também os pontos considerados pelo utilizador e o ponto de
interesse mais próximo de cada um dos oito critérios definidos como pontos de interesse
(Ilustração 15).
41
César Daniel da Silva Cabrita
Nº37296
Ilustração 15: Exemplo de Imóvel e respectivos pontos de interesse mais próximos.
Esta página também disponibiliza a possibilidade do utilizador se informar acerca de
outros pontos de interesse numa área de até quinhentos metros. Esta funcionalidade
consiste na selecção de todos os elementos de determinado tipo numa área quadrática de
quinhentos metros em redor do imóvel considerado (Ilustração 16).
Ilustração 16: Funcionalidade do raio para cafés.
42
César Daniel da Silva Cabrita
Nº37296
O método para a obtenção desta informação encontra-se no item 2.2.3 e a informação de
todos os pontos de interesse é retirada da base de dados quando o imóvel é seleccionado.
A localização dos pontos é finalmente apresentada ao utilizador usando a Google API
(Google Maps API, 2013) que, efectuando pedidos à mesma através das suas funções,
adiciona informação espacial e textual ao mapa.
Para além da localização do imóvel e funcionalidades SIG apresentadas até ao momento,
a segunda página contém também um local para disponibilizar a informação associada ao
imóvel. Aqui dividiu-se o espaço em quatro secções por forma a diferenciar cada uma de
uma forma mais clara e respeitando o critério de usabilidade (Ilustração 17). Esse quadro
foi elaborado com recurso à jQuery API (jQuery, 2013) e aos ficheiros do tipo CSS
associados à página.
Ilustração 17: Menu de abas.
A primeira componente do quadro consiste na disponibilização das imagens. Aqui é onde
as imagens são apresentadas para permitir ao utilizador visualizar o interior do imóvel
seleccionado para ter uma melhor percepção do espaço que possivelmente poderá visitar.
A segunda componente são as características próprias do imóvel e informação adicional
que se queira disponibilizar.
A terceira aba consiste na visualização do trajecto mais próximo a determinado elemento
seleccionado, bem como a disponibilização da distância ao imóvel seleccionado
(Ilustração 18). Este possui a restrição de serem seleccionáveis para definição de trajecto
apenas os pontos de interesse mais próximos disponibilizados no mapa. A metodologia
criada para a aplicação desta funcionalidade SIG consiste em:
1. Obter as coordenadas do ponto inicial e do ponto final;
43
César Daniel da Silva Cabrita
Nº37296
2. Codificar um URL contendo a informação das coordenadas e realizar um pedido
ao Google API (Google Maps API, 2013);
3. O Google API (Google Maps API, 2013) retorna um ficheiro Xml onde, entre
outros, disponibiliza indicações do trajecto, distância e duração da viagem à
velocidade máxima permitida ao percorrer determinado tipo de estrada;
4. O ficheiro é interpretado através de uma função de parsing que extrai a
informação das coordenadas do trajecto a realizar;
5. A informação do trajecto é então disponibilizada no mapa com recurso às funções
disponibilizadas pelo serviço.
Ilustração 18: Trajecto mais curto a percorrer.
Por fim, existe a componente dos contactos onde se disponibilizam todos os dados que
possibilitam o contacto com o mediador do imóvel para posterior visita, negociação ou
mais informação.
Existe também uma opção que permite ao utilizador visualizar o espaço onde se insere o
imóvel na primeira pessoa, recorrendo ao serviço do Google StreetView (Google Maps
API, 2013) - Opção identificada como visualizar na ilustração 18.
Por último, a página possui uma hiperligação para a terceira página, a página da
simulação. Nesta função, é criada uma nova cookie que reúne todos os resultados obtidos
da pesquisa e guarda-os para posterior importação na nova página, possibilitando assim a
44
César Daniel da Silva Cabrita
Nº37296
consulta dos dados na terceira página (Opção identificada como simulação na ilustração
18).
3.4.3. Terceira Página
A última página do site consiste na disponibilização de funcionalidades SIG que
permitem ao utilizador a realização de planeamento diário a partir do possível imóvel a
adquirir, acrescentando, assim, valor à sua pesquisa (Ilustração 19). As funcionalidades
permitem ter uma ideia dos custos associados com deslocações, tempos de viagem e
indicações acerca dos melhores locais a viajar evitando, caso se deseje, percorrer
percursos pagos.
Aqui o utilizador terá acesso a todos os elementos que anteriormente possa ter criado, tem
a capacidade de adicionar, apagar, duplicar pontos de interesse e de criar uma dinâmica
realmente útil para as pessoas e inovadora no domínio da pesquisa do imóvel.
Ilustração 19: Página de Simulações.
Começando pelas funcionalidades presentes no mapa, o cálculo de trajectos encontra-se
novamente presente mas, neste caso, este consistirá num cálculo que considera até vinte e
quatro pontos distintos. O método aplicado é em tudo semelhante ao especificado no item
3.4.2 para o cálculo do trajecto mais curto.
45
César Daniel da Silva Cabrita
Nº37296
A funcionalidade seguinte consiste na adição de qualquer novo ponto a considerar no
mapa. Para a sua elaboração realizaram-se os seguintes passos:



Selecção do local a considerar por parte do utilizador e extracção das coordenadas
do ponto com recurso a funções disponibilizadas pelo Google API (Google Maps
API, 2013);
Consideração das coordenadas, atribuição de valor único como identificador e
nome do novo ponto;
Carregamento de informação para objecto com as características mencionadas e
adição do objecto a array que inclui todos os elementos a considerar para o
cálculo do trajecto.
A funcionalidade seguinte consiste no cálculo de trajectos. Esta materializa-se no site à
direita do mapa e consiste numa lista de pontos ordenados na qual o utilizador irá realizar
a ordenação de todos os pontos que quiser considerar para análise. Os resultados a
verificar são o trajecto mais curto a percorrer entre cada ponto, as indicações a seguir e a
disponibilização do custo, tempo de viagem e distância a percorrer.
A sequência de eventos consiste:





Colocação do imóvel seleccionado em primeiro lugar;
Introdução dos pontos de interesse pré-definidos considerados para análise (Ex:
Transportes Públicos, Cafés, Escolas);
Consideração dos pontos de interesse introduzidos pelo utilizador na página de
pesquisa;
Utilização de funcionalidade de adicionar novo ponto para considerar qualquer
outro ponto para análise;
Utilização de funcionalidade que elimina ou duplica qualquer ponto já existente
na tabela.
A funcionalidade é realizada em javascript e está dividida em duas componentes: a
primeira consiste na elaboração da lista de pontos a criar; a segunda consiste na
disponibilização dos resultados desejados de acordo com a ordem estabelecida e os
critérios definidos.
A lista de pontos a criar segue uma metodologia restrita, com excepção da funcionalidade
de adicionar novos pontos na terceira página. Cada ponto é constituído por um
identificador único, um nome e coordenadas. O identificador único é atribuído conforme
a sequência de introdução de pontos na lista e é imutável.
46
César Daniel da Silva Cabrita
Nº37296
Seguindo a sequência de eventos acima mencionada a metodologia consiste na seguinte
sequência de acontecimentos:




Importação de dados do imóvel através da cookie dos resultados;
Importação de dados dos elementos pré-definidos seleccionados como pontos de
interesse, verificando a sua selecção na cookie dos parâmetros de pesquisa e
retirando a informação para a lista de pontos a partir da cookie dos resultados;
Importação de dados dos pontos de interesse a partir da página de pesquisa a
partir da cookie dos parâmetros de pesquisa que contêm a informação desses
pontos (nome e coordenadas);
Adição de novo elemento à lista de pontos no momento em que o utilizador dê
como finalizada a introdução do novo ponto ou caso duplique determinado
elemento.
De mencionar que as primeiras três opções são adicionadas à lista de pontos quando a
página é carregada, sendo apenas a última, definida pelo utilizador.
Dentro da própria funcionalidade existe ainda a opção do utilizador poder duplicar o
ponto de interesse criado ou eliminá-lo da lista, adicionando assim maior usabilidade à
funcionalidade.
A segunda componente consiste na definição da ordem a utilizar para análise do trajecto e
na selecção de critérios. Estes critérios são todos definidos pelo utilizador e são
considerados quando o utilizador activa a funcionalidade de cálculo do trajecto.
Os critérios passiveis de ser seleccionados são:




A ordem da lista de pontos;
Meio de locomoção (carro ou a pé);
Selecção de tipo de combustível que o carro utiliza;
Introdução do consumo do carro (por defeito 6.5).
A metodologia da ordem da lista de pontos consiste no seguinte procedimento:
A lista de pontos não é mais do que um array que é criado quando o site é carregado.
Este recebe os pontos de acordo com a metodologia já mencionada e só é alterado quando
se utiliza a funcionalidade de adicionar o ponto ou quando se aplica a lista para análise.
Para além deste array existe uma lista ordenada, que é disponibilizada ao utilizador e que
reflecte os valores iniciais desse array.
47
César Daniel da Silva Cabrita
Nº37296
Em cada ponto desta lista ordenada está associado um valor para a sua posição na lista.
Existe também, como já referido, um identificador inequívoco de cada elemento que está
presente tanto na lista como no array de pontos. Quando o utilizador altera a ordem entre
determinados elementos, o valor de posição fica associado ao ponto deslocado e os
restantes valores realizam o mesmo processo mas sem alterar o array da lista de pontos.
Servirá apenas para efeitos visuais.
Quando o utilizador activa a funcionalidade que calcula o trajecto, esta extrai para um
novo array todos os valores de posição associados aos pontos, ou seja, a ordem final dos
elementos. Uma vez realizado este processo, é necessário associar o identificador à
ordem criada pelo utilizador. Uma vez que o valor da ordem está ligado ao identificador
do ponto é possível criar um novo array de pontos e carregá-lo com os elementos com a
ordem pretendida.
No caso de utilização da funcionalidade de duplicação é criado um novo elemento na lista
com o mesmo valor do elemento que o duplicou mas com um identificador, naturalmente,
diferente.
Após o cálculo da ordem do trajecto é processado um URL com a ordem estabelecida e a
informação é enviada para o serviço do Google e é retornada no formato de ficheiro Xml.
Aí são extraídas todas as coordenadas retornadas, a duração, a distância e as indicações
textuais do trajecto a efectuar. Com base nessa informação é disponibilizado no mapa o
trajecto resultante através das funções que o serviço do Google API (Google Maps API,
2013) disponibiliza e são postadas as indicações do trajecto do lado direito do mapa em
substituição à lista do percurso.
Em relação à escolha do critério entre a deslocação de carro ou a pé, a única alteração
entre eles é a troca da velocidade média de deslocamento. Esta é calculada através dos
dados do Google API (Google Maps API, 2013) no caso do carro, e pela velocidade de
locomoção média do ser humano (5km/h) no caso da deslocação a pé. A opção de
utilização de auto-estradas por parte do serviço do Google API (Google Maps API, 2013)
está desactivada.
A metodologia para disponibilizar informação proveniente do cálculo de trajectos
consiste essencialmente em retirar a duração do trajecto e a distância, fornecidas pelo
Google API (Google Maps API, 2013), e disponibilizar os valores ao utilizador. No caso
do percurso a pé a distância é dada pelo Google API (Google Maps API, 2013) na mesma
mas a duração do trajecto é recalculada, trocando o valor da velocidade pelo valor de
5km/h.
48
César Daniel da Silva Cabrita
Nº37296
Por fim temos o cálculo dos custos associados à deslocação diária e mensal.
Para este cálculo são necessários os parâmetros, tipo de combustível utilizado, consumo
do carro e distância a percorrer. Caso o utilizador não especifique o sistema atribui por
defeito o tipo de combustível gasóleo e o valor de consumo médio 6.5 litros aos cem
quilómetros (litros/100km). Uma vez recebidos os valores é necessário converter o valor
da distância para quilómetros. De seguida, determina-se de acordo com o valor do
consumo do carro e distância a percorrer, quantos litros de combustível se irão consumir.
Por fim, multiplica-se o número de litros gasto pelo preço do combustível por litro,
obtendo-se, então, o valor final do preço com a deslocação.
Por último, o site também disponibiliza a funcionalidade fornecida pelo Google API
(Google Maps API, 2013) de visualizar o imóvel utilizando o serviço Google StreetView
(Google Maps API, 2013, 2013) através das funções disponibilizadas pelo serviço Google
API (Google Maps API, 2013).
3.5.Optimização
Neste capítulo são apresentadas todas as acções, e respectivas razões, para tornar o site o
mais rápido e eficaz possível, por forma a disponibilizar ao cliente um serviço rápido,
apelativo e de qualidade.
3.5.1. Estrutura das tabelas da base de dados
Por forma a optimizar o tempo de pesquisa de imóveis na base de dados, o utilizador
final, enquanto consulta, só irá aceder a informação de uma tabela. Essa tabela possui um
método de armazenamento do tipo MyIsam que consiste num tipo de motor de busca de
determinada tabela da base de dados.
As razões da utilização deste tipo de tabela são:


Permite a utilização de Full-text Search (Anexo 6.1);
As tabelas do tipo InnoDB têm uma menor performance ao nível da query que
inclui declarações do tipo SELECT;
49
César Daniel da Silva Cabrita

Nº37296
Apesar da tabela MyIsam ter uma performance inferior para tabelas mais
mutáveis, isto não é um inconveniente, uma vez que a tabela MyIsam não sofrerá
modificações em tempo útil de pesquisa.
3.5.2. Full-Text Search
A pesquisa em modo FullText Search distingue-se por pesquisas baseadas em metadados
ou em partes do texto original realizadas em bases de dados onde, por exemplo, quando
uma tabela permite procura de informação em modo Full-text search, o motor de
pesquisa examina todas as palavras em cada documento tentando encontrar um que
corresponda ao critério requisitado pelo utilizador.
As razões para a sua utilização consistem:


Na pesquisa, os resultados são ordenados por uma classificação, atribuído de
acordo com o grau de conformidade do elemento em relação aos parâmetros da
query realizada;
Devolve resultados comparativamente mais rápidos devido a uma rápida
indexação para queries baseadas em palavras.
Este último critério coincide com a opção da utilização do código mencionado no item
3.3.3 uma vez que, para códigos que não contenham factores de localização, dando o
exemplo de pesquisas só com factores associados ao imóvel, as possíveis queries a
realizar serão apenas do tipo texto e, logo, menos exigente a nível de processamento.
3.5.3. Boolean Mode
Um objecto Boolean é um tipo de dados que pode ter um de dois valores, true ou false,
usado para operações lógicas. Este é utilizado para refinar pesquisas em
complementaridade com os FullTextSearches.
50
César Daniel da Silva Cabrita
Nº37296
3.5.4. Minimização dos pedidos à Base de Dados
Esta opção permite optimizar o sistema uma vez que a operação é uma das mais pesadas
a nível de tempo de processamento, que é tanto maior quanto o tamanho da tabela a
pesquisar.
No caso deste projecto, excluindo a componente de disponibilização das localidades, é
realizado apenas um pedido à base de dados. Isto permite minimizar a utilização de carga
no servidor o que conduz a uma redução do tempo de pesquisa garantindo assim a
qualidade do serviço.
3.5.5. Utilização de Cache e Cookies
A utilização do Web cache prende-se com a intenção de minimizar os pedidos de
informação à base de dados. Uma vez que o Web cache guarda informação do lado do
cliente. A sua mais valia é a facilidade de acesso aos dados e, no contexto do projecto, o
número de vezes que o site terá de aceder à informação armazenada é relevante, o que
justifica a utilização desta tecnologia numa tentativa de optimizar o desempenho do site.
Já o cookie permite o acesso da informação armazenada em qualquer uma das três
páginas utilizadas. A vantagem desta tecnologia é o fácil acesso à informação em páginas
diferentes e a preservação da informação mesmo após o utilizador mudar a página HTML
onde se encontra. Isto permite tornar mais apelativo a utilização do site, nomeadamente
evitando processos como a repetição de preenchimento dos critérios de pesquisa e um
rápido acesso às variáveis criadas numa outra página.
3.6.Funcionamento do interface
Este subcapítulo consiste na descrição de todas as funcionalidades presentes no projecto
apresentado. O objectivo é explicitar o site de forma a obter um maior conhecimento
acerca dos propósitos da estrutura de três páginas, aspecto do interface, tecnologias e
funcionamento em geral.
O funcionamento geral do site inicia-se por uma componente que está presente em todas
as páginas apresentadas. Esta componente é o cabeçalho e o objectivo é fornecer ao site a
51
César Daniel da Silva Cabrita
Nº37296
dinâmica e usabilidade que permite navegar entre as três páginas de uma forma fácil e
intuitiva, alterando parâmetros menos desejáveis ou não satisfeitos e criando uma
dinâmica rápida e objectiva em relação aos desejos do cliente (Ilustração 20).
Ilustração 20: Cabeçalho da aplicação.
Correspondentemente, o primeiro botão será o botão de ligação à página de pesquisa, o
segundo à página de resultados e o terceiro à página de simulação.
3.6.1. Pesquisa
A funcionalidade da página de pesquisa, resume-se, essencialmente, em duas
componentes: a componente do imóvel e a componente da localização. A componente de
procura encontra-se desactivada.
Aqui houve uma tentativa de tornar o site o mais intuitivo e directo possível,
simplificando os processos em apenas duas componentes. A componente do imóvel que
começa seleccionada e a componente dos pontos de interesse associados a esse imóvel
(Ilustração 21), ou seja, a localização (Ilustração 22).
52
César Daniel da Silva Cabrita
Nº37296
Ilustração 21: Activar aba de selecção de critérios não espaciais.
Na componente do imóvel activam-se todos os elementos que permitem seleccionar as
características associadas a este. Quando os critérios forem definidos selecciona-se a
opção no canto inferior direito de avançar que irá guiar o utilizador para a componente da
localização.
Ilustração 22: Activação de aba de critérios espaciais.
53
César Daniel da Silva Cabrita
Nº37296
A componente da localização divide-se essencialmente em duas opções. A primeira
consiste nos critérios pré-definidos os quais o utilizador poderá considerar como opção de
selecção. Para tal, ele terá de clicar na checkbox o que irá fazer aparecer um slider no
qual ele poderá definir a distância limite da qual não quer que o seu imóvel esteja mais
distanciado (Ilustração 13).
A segunda opção consiste na selecção de elementos que o utilizador queira considerar.
Esta funcionalidade apresenta inicialmente o botão para considerar um ponto de interesse
e um local para colocar o nome (Ilustração 24).
Ilustração 23: Procura manual de pontos de interesse.
Para activar a funcionalidade o utilizador terá de pressionar o primeiro botão o qual irá
disponibilizar um mapa onde o utilizador poderá colocar o ponto de interesse que deseja
considerar (Ilustração 25).
Ilustração 24: Selecção do ponto de interesse.
54
César Daniel da Silva Cabrita
Nº37296
Após este processo o utilizador carrega qualquer local fora do mapa e irá aparecer no
mapa um slider e um novo icon (Ilustração 26).
Ilustração 25: Slider de definição de distância a considerar.
Este slider permitirá ao utilizador definir a distância até à qual os imóveis a considerar
terão de estar incluídos. Uma vez seleccionado o ponto e colocado o nome na textbox, o
utilizador terá que pressionar o botão à frente do nome para validar o ponto para
pesquisa. Após este processo, caso o utilizador deseje, este poderá excluir o último ponto
adicionado, seleccionando o botão vermelho a seguir ao slider.
A última acção a realizar nesta página será a selecção do botão no canto inferior direito
do mapa que irá transportar o utilizador para segunda página, onde será efectuado o
pedido à base de dados.
3.6.2. Resultados
Após o utilizador iniciar a pesquisa na primeira página, este é transportado para a página
de resultados (Ilustração 27).
55
César Daniel da Silva Cabrita
Nº37296
Ilustração 26: Página de resultados.
A página de resultados é constituída por quatro componentes.
A primeira é o cabeçalho que diz respeito aos aspectos mais relevantes do imóvel. Este
encontra-se por cima do mapa.
De seguida, temos o mapa juntamente com a selecção de imóveis do seu lado direito.
Mais à direita encontra-se o local de disponibilização de informação textual e imagens e
por fim, em baixo do mapa, encontra-se a funcionalidade de visualização dos pontos de
interesse associados ao imóvel num raio de quinhentos metros.
A página inicia-se com a disponibilização do resultado que mais se aproxima dos critérios
seleccionados. Aí a informação é disponibilizada em todas as componentes do projecto e
pode ser consultada tanto visualmente como interactivamente. Visualmente, é possível
verificar a informação mais relevante em relação ao imóvel, no canto superior esquerdo
do site.
Em relação ao mapa, é possível verificar a localização espacial do imóvel bem como o
ponto de interesse mais próximo de cada um dos critérios pré-definidos (Ilustração 28).
Para seleccionar qualquer outro dos imóveis considerados o utilizador apenas terá de
clicar num dos números do lado direito do mapa e toda a informação relativamente ao
segundo imóvel será disponibilizada, eliminando a informação do último imóvel.
56
César Daniel da Silva Cabrita
Nº37296
Ilustração 27: Mapa da área de interesse com informação espacial incluida.
Caso o utilizador deseje, seleccionando a barra superior do imóvel, o mapa carrega o
serviço Streetview (Google Maps API, 2013) por forma a ter uma perspectiva diferente
do local do seu potencial imóvel.
Existe ainda a opção de selecção de realizar uma simulação de custos diários de
transporte, criando uma ligação para a página de simulação.
Em relação a outras formas de visualização de informação é possível verificar as imagens
em relação ao imóvel do lado direito do site. Aqui foi criado um menu interactivo que
discrimina a informação em quatro partes (Ilustração 29).
57
César Daniel da Silva Cabrita
Nº37296
Ilustração 28: Menu de abas para disponibilização de informação não espacial.
A primeira figura pertence à aba das imagens. Aqui pretende-se mostrar todo o interior do
imóvel através de fotografias que o vendedor possa querem colocar.
De seguida, são disponibilizadas todas as informações, textuais e outras, acerca do imóvel
a considerar, para que o utilizador disponha de toda a informação relevante do mesmo
para tomar uma decisão consideravelmente importante na sua vida.
Depois temos a informação relativamente à localização dos pontos de interesse
nomeadamente a distância a cada um e o trajecto mais próximo a efectuar para chegar ao
destino. Relativamente a esta secção existe a possibilidade de, seleccionando cada um dos
elementos, seja disponibilizado no mapa o trajecto mais próximo a partir do imóvel para
aquele ponto.
Por último, é disponibilizado ao utilizador contactos para consequente negociação com
mediadores ou proprietários dos imóveis.
Como última funcionalidade presente no site, disponibiliza-se a opção de visualizar todos
os pontos de interesse de determinado tipo num raio de quinhentos metros em redor do
imóvel considerado (Ilustração 30).
58
César Daniel da Silva Cabrita
Nº37296
Ilustração 29: Funcionalidade do raio.
3.6.3. Simulação
A página da simulação é caracterizada por diversas componentes, e todas elas estão
associadas ao mapa de forma a disponibilizar ao utilizador uma ferramenta de
visualização e suporte à decisão, numa tentativa de criar a melhor sinergia possível na
integração de todas as componentes incluídas (Ilustração 31).
A representação central do site é constituída por um mapa. É à volta deste que as
funcionalidades são disponibilizadas para que, em todos os momentos, possa existir uma
noção do local e da informação que se está a manipular.
59
César Daniel da Silva Cabrita
Nº37296
Ilustração 30: Exemplo de trajecto da página de simulações.
A funcionalidade disponibilizada ao utilizador consiste apenas na realização da
simulação. No entanto, existem diversos factores associados bem como outras
ferramentas de visualização as quais será necessário explicitar como poderão ser
utilizadas.
A primeira está localizada no topo central do mapa e é descrita como a adição de novos
pontos para consideração. A ferramenta funciona clicando no botão correspondente e
respectiva selecção do local do mapa. Para consideração final no percurso é necessário
clicar no botão adjacente de aceitar para finalizar o processo. Ao mesmo tempo que este
ponto é criado será considerado um novo elemento que se irá materializar, para efeitos de
determinação de percurso, no lado direito do mapa.
De seguida, temos, então, o lado direito do mapa. Aqui a ferramenta consiste na
manipulação da informação existente, nomeadamente possibilitando ao utilizador,
ordenar, eliminar ou duplicar determinado elemento. A ordenação apenas implica o
arrastamento do elemento para baixo ou para cima e a eliminação ou duplicação de
elementos apenas depende da selecção dos ícones bastante intuitivos para o efeito. Para
realizar uma simulação básica deste género apenas é necessário clicar no botão de
calcular o percurso.
Os resultados são apresentados no final da página, disponibilizando tempo médio, custo
de deslocação e respectiva distância a percorrer. Para efeitos de viagem também são
disponibilizadas as indicações a seguir.
60
César Daniel da Silva Cabrita
Nº37296
Em relação a especificação e determinação de mais informação detalhada e
personalizada, o site disponibiliza duas funcionalidades adicionais.
A primeira consiste na possibilidade de alteração dos critérios que permitem determinar o
tempo e o custo de viagem. São eles o tipo de gasolina do carro, o consumo deste e a
velocidade média à qual o utilizador estima que se irá deslocar.
A outra funcionalidade consiste na selecção entre deslocação de carro ou a pé. Onde,
intuitivamente, se percebe que na selecção do trajecto a efectuar caminhando não existe
um custo associado.
Mencionando as ferramentas de visualização, o serviço Streetview (Google Maps API,
2013) também se encontra disponível nesta página para o que o utilizador possa também
ter uma melhor noção do espaço envolvente do imóvel podendo até seguir as indicações
disponibilizadas até aos destinos definidos.
4. Considerações Finais
Este capítulo consiste na discussão do produto e aplicação elaborado, analisando todos os
aspectos pertinentes para o cumprimento dos objectivos definidos. Também será
realizada uma avaliação de outros critérios como o desenho e a usabilidade do interface
que, embora não estejam englobados nos objectivos, são importantes do ponto de vista do
utilizador podendo influenciar a apetência do mesmo para um projecto deste tipo. Por
fim, serão dadas algumas considerações das perspectivas futuras para a aplicação.
4.1.Discussão dos Resultados da Aplicação
Este subcapítulo consiste na discussão de todos os elementos pertinentes para realizar
uma avaliação objectiva da qualidade do produto final, enunciando os aspectos mais ou
menos fortes da aplicação.
61
César Daniel da Silva Cabrita
Nº37296
4.1.1 Eficácia
De acordo com Koua et al. (2006), a eficácia diz respeito à funcionalidade da aplicação e
às observações de desempenho do utilizador e da sua experiência na utilização do
produto. Também faz referência à recolha de dados e quaisquer parâmetros necessários
para completar uma tarefa.
Observando os resultados, o design do site segue uma filosofia bastante pragmática
acerca daqueles que são os requisitos do produto, desde a sua conjectura até à sua
materialização. O desenho de três páginas tem em vista uma clara diferenciação daquilo
que são os passos naturais para o cumprimento dos objectivos do projecto. Estes possuem
cada um o seu propósito e todos cumprem os objectivos inicialmente traçados de acordo
com o desenho original de forma clara e simples.
Em relação à eficácia do produto, existem alguns aspectos menos positivos a enumerar. O
primeiro diz respeito aos dados que são utilizados no projecto uma vez que não foi
possível obter um volume de dados válidos suficientemente relevante que permitisse
testar a usabilidade do projecto ao nível de desempenho da velocidade de pesquisa com
um elevado volume de dados. Para este critério ser cumprido foi necessário criar uma
grande quantidade de dados fictícios.
Em relação ao desenvolvimento das aplicações SIG estas cumprem todos os requisitos
necessários para a sua aplicação.
Ao nível de funcionamento geral do projecto como um todo, podemos considerar que, o
tempo de resposta a pesquisas e todo o funcionamento do sistema em geral, satisfazem os
objectivos definidos, disponibilizando uma resposta em tempo útil acerca dos elementos
associados à zona de influência geográfica de um determinado imóvel.
4.1.2 Usabilidade
De acordo com Koua et al. (2006), a usabilidade diz respeito às expectativas e exigências
do utilizador enquanto este executa determinadas tarefas. É como se a aplicação fosse
uma extensão que apoia o utilizador a cumprir as suas tarefas e objectivos onde estes
podem facilmente compreender e interpretar os resultados da aplicação, sendo esta
flexível, simples de usar e estando de acordo com as expectativas criadas.
62
César Daniel da Silva Cabrita
Nº37296
Os critérios de inovação do projecto dizem respeito à utilização de ferramentas de análise
espacial capazes de satisfazer as necessidades que o utilizador tem quando procura um
imóvel. Para tal, é necessário apresentar o projecto de acordo com as espectativas do
utilizador que são a procura do imóvel por base em critérios do espaço geográfico do
imóvel.
A primeira página reflecte exactamente esse objectivo disponibilizando duas
componentes que, intuitivamente representam os critérios que o utilizador procura na
escolha de um imóvel. A primeira corresponde aos critérios do próprio imóvel porque,
apesar de tudo, para o utilizador as características do imóvel são ainda o factor de escolha
mais determinante e só em segundo plano é que os critérios de escolha do espaço
geográfico são tidos em consideração. Isto permite uma clara distinção acerca dos
objectivos, requisitos e resultados expectáveis que cada componente oferece e de fácil
utilização e interacção entre estes.
A segunda página consiste na representação dos imóveis que correspondem aos critérios
anteriormente definidos, onde o utilizador intuitivamente vai esperar que apareça um
produto daquilo que pesquisou. Este resultado aparece disponibilizado tanto em
informação textual como em informação geográfica, sendo possível a visualização não só
do imóvel como também de todo o seu espaço envolvente. Este facto vai de encontro às
espectativas do utilizador quando se pensa num sistema onde é possível obter informação
acerca do espaço geográfico do imóvel.
A terceira página demonstra reflexão acerca da usabilidade da informação espacial
obtida, onde se tenta implementar funcionalidades que correspondam às necessidades,
utilidades e questões que o utilizador possa colocar e necessitar quando já visualizou a
informação geográfica associada ao imóvel.
O objectivo é fornecer ferramentas que permitam realizar uma análise personalizada aos
dados, de forma a criar informação útil e relevante acerca dos imóveis. Este processo está
colocado em último e é opcional, porque trabalhar com a informação espacial poderá não
ser algo que o utilizador esteja interessado em realizar.
O último critério a ser considerado para efeitos de análise da usabilidade é o tempo de
resposta do sistema. Aqui, considera-se em média, com base em (Website Optimization,
2013), que um tempo de resposta de 8 a 12 segundos é aceitável para o tipo de aplicação
criado.
No caso do projecto elaborado o tempo médio de resposta anda à volta dos 5 segundos.
63
César Daniel da Silva Cabrita
Nº37296
4.1.3 Desenho e Aspecto Visual
De acordo com as directrizes de usabilidade (2009) a arquitectura e clareza visual do
interface tem de ser bem organizada e estruturada da perspectiva do utilizador em
aspectos como o uso de cor, utilização de espaços brancos na página e animações
desnecessárias.
O desenho que o site apresenta é, na generalidade, um desenho de simplicidade, elegância
e segurança, onde se utilizaram funcionalidades e animações simples de forma a tornar os
processos claros e intuitivos. A razão para tal é que este tipo de aplicações poderá não ser
muito comum comparativamente a outros sites disponibilizados na Internet. Deste modo,
optou-se por uma simplicidade de processos e por semelhanças de funcionalidade das
componentes do site. É o caso da utilização de menus, checkboxes, sliders, entre outros.
Outro facto para a opção tomada foi, também, a presença de algumas limitações de
conhecimento com desenvolvimento de aplicações Web.
Ao nível do aspecto visual, o site apresenta de modo geral, características muito comuns
tentando tornar os elementos que adicionam funcionalidade ao site o mais claro possível,
disponibilizando ao utilizador uma percepção intuitiva das funcionalidades presentes.
Já as animações têm o objectivo de tornar o interface mais apelativo, numa tentativa de
dar uma atmosfera amigável e a ideia de espaço livre reforçando a ideia de que o imóvel é
mais do que apenas as suas características interiores.
4.1.4 Funcionalidade
De acordo com as directrizes de usabilidade (2009), a funcionalidade de qualquer website
significa que todas as funções necessárias para a sua boa utilização têm de estar
disponíveis, acomodando utilizadores tanto novos como experientes. Todas as funções
deverão ser o mais simples possível.
Em termos de funcionalidades apresentadas, o site distingue-se por disponibilizar ao
utilizador apenas as funções que lhe permitam facilmente introduzir critérios, consultar
informação pertinente e criar informação em tempo real na pesquisa do imóvel
pretendido.
Estas funcionalidades são simples e claras de utilizar porque a harmonização de
informação textual, design simples do site, através de animações, e até elementos
64
César Daniel da Silva Cabrita
Nº37296
desenvolvidos em CSS, como opções de hover, fornecem uma importante mais-valia para
a fácil e intuitiva utilização do mesmo.
Referindo pontos menos positivos, foi opção ao nível de planeamento de trabalho a
integração da barra de pesquisa na primeira página. No entanto, esta funcionalidade não
se encontra activa, uma vez que foi procrastinada durante o projecto por não estar
integrada nos objectivos a executar. Para além disso é uma funcionalidade complexa à
qual não houve tempo disponível para dispensar.
Na terceira página, a funcionalidade de adicionar novo ponto para consideração de
trajectos não é a mais intuitiva, uma vez que os pontos considerados para análise não
estão disponibilizados no mapa quando se insere o novo ponto.
Explicitando os pontos positivos, a primeiro página apresenta uma funcionalidade que
permite ao utilizador adicionar os seus próprios pontos de interesse para consideração
com um só clique no botão e outro clique no mapa. Também se disponibiliza uma função
para inserir um nome para associar ao ponto e uma função para removê-lo, contribuindo,
assim, para uma clara identificação de elemento aquando a informação passa entre
páginas.
Na segunda página existe uma função que permite ao utilizador visualizar facilmente o
trajecto a efectuar de um imóvel para qualquer um dos pontos de interesse considerados.
Este também apresenta uma funcionalidade que permite visualizar todo o espaço nas
proximidade do imóvel através do StreetView (Google Maps API, 2013).
Na terceira página existe uma função que permite ao utilizador organizar a ordem que
pretende efectuar o percurso apenas arrastando o elemento, o que aumenta
consideravelmente a funcionalidade da aplicação, bem como uma função que permite
introduzir no mapa um novo ponto de interesse e adiciona automaticamente esse ponto na
lista do percurso. Para finalizar, existe ainda uma função que remove todos os pontos
considerados para o percurso excepto o próprio imóvel, evitando assim a remoção manual
de todos os elementos da lista do percurso.
Ao nível das três páginas Web, o cabeçalho garante um fácil acesso a qualquer uma das
três páginas disponibilizadas ao utilizador através de um simples clique no intuitivo
elemento.
65
César Daniel da Silva Cabrita
Nº37296
4.2.Cumprimento dos Objectivos Propostos
É nesta fase que se discute a completude dos objectivos delineados, na medida em que se
averigua se estes foram satisfatoriamente cumpridos ou se ficaram aquém do resultado
esperado.
O primeiro objectivo menciona a integração de critérios de busca com base em factores
espaciais como a localização e a proximidade do imóvel a pontos de interesse.
Os resultados obtidos neste segmento consistem na disponibilização de oito critérios prédefinidos que definem a base da informação espacial que o utilizador possa consultar
quando procura um imóvel. A disponibilização da informação resultante da pesquisa é
também uma componente chave neste projecto onde uma pesquisa por parte da aplicação
demora em média 5 segundos, que para uma aplicação deste género se apresenta como
um resultado aceitável (Website Optimization, 2013).
O sucesso da implementação deste objectivo deve-se, em grande parte, à arquitectura
desenhada para o projecto que, ao processar as funcionalidades SIG antes da realização
de pesquisas, poupa o tempo de processamento que é necessário realizar para associar a
informação espacial a cada imóvel disponibilizado.
Para o segundo objectivo, foi proposta uma solução que permitisse ao utilizador
introduzir pontos pessoais de interesse, visualizar o tipo de ponto de interesse mais
próximo de determinado imóvel e visualizar todos os pontos de interesse num zonamento
de 500 metros.
A integração da função de introdução de pontos de interesse adiciona uma importante
funcionalidade à aplicação tornando-a suficientemente versátil para a sua utilização por
parte de todo o tipo de utilizadores com todo o tipo de casos de estudo. Por exemplo,
procura de imóveis perto de casa de familiares ou do local de trabalho.
Em relação à funcionalidade do ponto mais próximo e da determinação dos pontos de
interesse num zonamento de 500 metros, os resultados apresentados são um indicador do
sucesso deste objectivo, onde não seria possível obter os pontos de interesse mais
próximos do imóvel sem a integração das funcionalidades SIG no projecto.
Isto permite ao utilizador visualizar e analisar o espaço envolvente do imóvel pesquisado,
proporcionando, assim, uma avaliação mais objectiva e completa dos critérios espaciais
apresentados.
66
César Daniel da Silva Cabrita
Nº37296
Em relação ao terceiro objectivo, os resultados obtidos permitem ao utilizador definir um
trajecto, proporcionando uma plena noção das deslocações a realizar entre o imóvel
pesquisado e quaisquer outros pontos. Também comtempla uma estimativa dos custos de
deslocação bem como uma descrição das indicações a seguir pelo trajecto mais próximo
delineado.
Os resultados obtidos estão de acordo com a funcionalidade proposta uma vez que esta
representa coerentemente os objectivos delineados, onde introduzindo o tipo de
combustível utilizado e o consumo do carro, se pode realizar uma estimativa do custo real
de deslocação entre locais.
A aplicação permite ainda, ordenar, adicionar, duplicar ou remover novos pontos do
trajecto que se quer realizar, onde, integrando todas as características acima descritas, o
objectivo complementa-se. Esta aplicação caracteriza-se, assim, como uma verdadeira
ferramenta de apoio à decisão que disponibiliza informação de tempo, custo, distância e
até de indicações a seguir em relação ao trajecto a realizar seja ele diário, mensal ou
casual.
Avaliando os pontos fortes do projecto, pode-se referir aspectos como a adição de
critérios espaciais para pesquisa e a capacidade do sistema de integrar informação
espacial pessoal, como os grandes fios de força presentes na aplicação, permitindo ao
utilizador consultar informação adicional pertinente à sua busca por imóvel, garantindo
assim uma ferramenta inovadora de apoio à decisão.
O projecto também se destaca através da sua aplicabilidade prática na rotina diária dos
utilizadores, onde, ferramentas como a simulação garantem uma versatilidade que se
adapta às exigências das pessoas constituindo assim um sistema de apoio à decisão, que
permite retornar tempo, custo e distância de deslocação do imóvel para qualquer ponto
especificado gerando assim utilidade extra para o utilizador.
Por fim, o grande objectivo de realizar análise espacial em tempo útil foi concretizado,
tornando-se assim num grande ponto a favor da aplicação uma vez concretiza os
objectivos e a viabilidade do projecto com sucesso.
Em relação a oportunidades futuras o projecto apresenta-se como inovador por viabilizar
a sua integração com outras áreas de negócio fazendo uso da versatilidade que possui.
Este poderia ser assim adaptado, gerando novas oportunidades de negócio em nichos de
mercado potencialmente menos explorados.
67
César Daniel da Silva Cabrita
Nº37296
4.3.Perspectivas Futuras
Analisando o projecto elaborado existem muitos pontos positivos que o tornam uma
mais-valia a nível de utilidade para o utilizador. Factores como a implementação de
pontos pessoais de determinado ponto a qualquer imóvel, as indicações de trajecto ao
utilizador ou a simulação de gastos de deslocação diários ou mensais, são alguns
exemplos da inovação e utilidade do sistema para o utilizador numa conjectura
económica difícil e onde todas as poupanças a efectuar são válidas e necessárias.
Com este projecto é possível concluir que as aplicações SIG podem ser utilizadas em
tempo útil de pesquisa e implementadas em sites na Internet, provando ser tanto
aplicáveis como inovadoras em áreas de negócio tão competitivas como o ramo
imobiliário.
Ainda assim, o projecto tem bastante margem de progressão em aspectos como, criação
de funcionalidades que permitam o utilizador ter uma conta no sistema, armazenamento
de pontos pessoais que o utilizador possa associar à conta, introdução de pontos de
interesse na aplicação para utilização de todo o universo do site e desenvolvimento das
funcionalidades e ferramentas de apoio à decisão do utilizador.
Por exemplo, o sistema devolver avaliações ou dados estatísticos em relação a factores
ambientais como a qualidade do ar ou proximidade do mar. Também existem outros
factores determinantes como comentários ao imóvel e feedback dos utilizadores em
relação ao contacto com determinado mediador, nomeadamente premiando a qualidade
do seu serviço através de uma classificação. Todos estes factores adicionarão ainda mais
utilidade e robustez ao site tornando-o um projecto sólido, competitivo e com
perspectivas de mercado potencialmente interessantes.
5. Referências
Applegate, D. L., Bixby, R. M., Chvátal, V., Cook, W. J., 2006. The Traveling Salesman
Problem. [Acesso em Março 22, 2013]
Bernhardsen, T., 2002. Geographic information systems, John Wiley and Sons.
68
César Daniel da Silva Cabrita
Nº37296
DGOT, 2012. CARTA ADMINISTRATIVA OFICIAL DE PORTUGAL. Disponível
em:http://www.igeo.pt/produtos/cadastro/caop/inf_extra_20120.html . [Acesso em
Novembro 22, 2012]
Conceito Digital, 2013. Conceito Digital. Disponível em:
http://www.conceitodigital.com/. [Acesso em Abril 16, 2013].
Delling, D. and Sanders, P. and Schultes, D. and Wagner, 2009. Engineering route
planning algorithms. Algorithmics of large and complex networks. [Acesso em Março 13,
2013].
Dragicevic, S., 2004. The potential of Web-based GIS. Springer Berlin / Heidelberg,
6(Number 2 / June, 2004), 79-81. [Acesso em Dezembro 10, 2013].
Easyphp, 2013. EasyPHP. Disponível em: http://www.easyphp.org/ [Acesso em Outubro
9, 2012]
ESRI, 2013. ESRI Understanding our world. Disponível em:
http://www.esri.com/software/arcgis [Acesso em Abril 24, 2013]
Goldin, S.E. & Rudahl, K.T., 1997. Why is GIS Difficult? Disponível em:
69
César Daniel da Silva Cabrita
Nº37296
http://www.gisdevelopment.net/aars/acrs/1997/ts4/ts4008.asp [Acesso em
November 10, 2012].
R. E. Deakin, M. N. Hunter, C. F. F. Karney, 2010. The Gauss–Krüger Projection
Disponível em:
http://user.gs.rmit.edu.au/rod/files/publications/GaussKrueger%20Warrnambool%20Conf
erence.pdf [Acesso em Abril 05, 2013]
Haklay, M. & Zafiri, A., 2008. Usability engineering for GIS: Learning from a
screenshot. Cartographic Journal, 45(2), 87-97 [Acesso em Maio 05, 2013]
Koua, E.L., Maceachren, A. & Kraak, M.-., 2006. Evaluating the usability of
visualization methods in an exploratory geovisualization environment.
International Journal of Geographical Information Science, 20(4), 425 [Acesso em Maio
05, 2013]
Koua, E. & Kraak, M., 2004. A usability framework for the design and evaluation of
an exploratory geovisualization environment. In Proceedings of the
International Conference on Information Visualization. pp. 153-158 [Acesso em Maio 05,
2013]
jQuery, 2013. jQuery. Disponível em: http://api.jquery.com [Acesso em Março 13, 2013]
70
César Daniel da Silva Cabrita
Nº37296
Lawrence A. West, J., 2000. Designing end-user geographic information systems. J.
End User Comput., 12(3), 14-22 [Acesso em Janeiro 29, 2013]
Moshe Sniedovich, 2006. Dijkstra’s algorithm revisited: the dynamic programming
connexion. Disponível em: http://matwbn.icm.edu.pl/ksiazki/cc/cc35/cc3536.pdf [Acesso
em Março 23, 2013].
Nivala, A., Brewster, S. & Sarjakoski, L., 2008. Usability evaluation of web mapping
sites. Cartographic Journal, 45(2), 129-138 [Acesso em Maio 18, 2013].
OSGeo 2013. Open Source Geospatial Foundation. Disponível em:
http://www.osgeo.org [Acesso em Novembro 24, 2012]
OpenStreetMap, 2013. OpenStreetMap O Mapa Mundial Livre e Editável. Disponível
em: http://www.openstreetmap.org/#map=5/51.500/-0.100 [Acesso em Novembro 24,
2012]
Shen, S., Cheng, X. & Gong, P., 2008. Sensor Web Oriented Web-Based GIS. In
Proceedings of the 8th International Symposium on Web and Wireless
Geographical Information Systems. Shanghai, China: Springer-Verlag, pp.
86-95. Disponível em: http://portal.acm.org/citation.cfm?id=1504895
71
César Daniel da Silva Cabrita
Nº37296
[Acesso em Outubro 27, 2012].
IS&T, 2009. Usability Guidelines. Disponível em:
http://ist.mit.edu/services/consulting/usability/more.guidelines
[Acesso em Maio 19, 2013].
Google Developers, 2013. The Google Directions API. Disponível
em:https://developers.google.com/maps/documentation/directions/?hl=pt-br
[Acesso em Agosto 29, 2013]
Google Maps API, 2013. Google Maps JavaScript API v3. Disponível em:
https://developers.google.com/maps/documentation/javascript/reference
[Acesso em Fevereiro 05, 2013]
Vonderohe, A.P., 1993. Adaptation of geographic information systems for
transportation, The National Academies [Acesso em Janeiro 25, 2013].
Website Optimization, 2013. Web Page Performance Thesis. Disponível em:
http://www.websiteoptimization.com/speed/tweak/web-page-performance-thesis/
[Acesso em Maio 6, 2013]
72
César Daniel da Silva Cabrita
Nº37296
You, M., 2007. A usability evaluation of web map zoom and pan functions.
International Journal of Design, 1(1), 15.
Dragicevic, S., 2004. The potential of Web-based GIS. Springer Berlin / Heidelberg,
6(Number 2 / June, 2004), 79-81. [Acesso em Abril 26, 2013]
6. Anexos
6.1.Conceitos informáticos
Back-End
O Back-end é um termo generalizado que se refere á etapa inicial de um dado processo
informático. Servindo de suporte para o Front-end, este é responsável por guardar a
informação tanto disponibilizada ao utilizador, como a informação que poderá ser
introduzida pelo mesmo. O back-end, também se refere a todos os processos e software
que permitam a recolha e modulação da informação, que posteriormente será
materializada e acedida através de uma base de dados.
Web-Service
O Web service é uma solução que permite a integração e comunicação de diferentes
aplicações. Ou seja, esta tecnologia torna possível a interacção de várias aplicações e
linguagens de programação através de uma linguagem comum às duas (normalmente
Xml).
73
César Daniel da Silva Cabrita
Nº37296
Esta dinâmica permite que as aplicações interajam entre si, tornando os recursos
automaticamente acessíveis e acelerando a troca de informação entre tecnologias,
tornando mais eficiente a comunicação entre back-end e front-end.
O web service a implementar no projeto será o Apache HTTP Server, uma vez que possui
uma boa operabilidade com a linguagem de scripting PHP e é o web service gratuito mais
utilizado para este tipo de aplicações informáticas.
O web service é responsável por encaminhar um determinado pedido do frontend(XmlHttpRequest), ao back-end, onde o pedido é processado. É então criado um
ficheiro de resposta (Xml), que é enviado de volta para o front-end, onde a informação irá
ser exibida ao utilizador.
O web service possibilita a interoperabilidade entre back-end e front-end através das
respectivas linguagens de server scripting (PHP) e de browser scripting (javascript). A
linguagem comummente utilizada para este tipo de comunicação entre back-end e frontend é a linguagem de marcação Xml.
Front-End
O Front-end é um termo generalizado que se refere á etapa final de um dado processo
informático. Este, é responsável por apresentar um interface ao utilizador que permita
aceder à informação que deseja, processando o pedido realizado e encaminhando a
informação para o back-end, onde a mesma está armazenada. Por fim, será também
responsável pela disponibilização da informação requisitada pelo utilizador.
A última fase do projecto consiste na elaboração do front-end. Este processo, contempla
vários elementos e é realizado em várias fases.
O primeiro passo, consiste geralmente em realizar uma estrutura básica do website em
que seja possível verificar resultados, utilizando para tal, a linguagem de marcação
74
César Daniel da Silva Cabrita
Nº37296
HTML. De seguida, são então programadas, com recurso a uma linguagem de browser
scripting (javascript), todas as comunicações necessárias a efectuar com o back-end e,
paralelamente ou não, também são programadas todas as funcionalidades e aplicações
associadas ao site.
Por fim, é necessário estilizar o website utilizando linguagens de estilo (Cascading Style
Sheet) ou definindo o mesmo directamente no website.
FwTools
O Fwtools é um software que integra um conjunto de programas orientados para
manipular e realizar operações espaciais sobre a informação geográfica. Permite entre
outras funcionalidades, conversão de formatos de ficheiros, realização de transformações
entre sistemas de coordenadas, transformação de formatos geográficos para formatos de
texto como csv, etc…
Aplicação PHP
A linguagem PHP é uma linguagem de programação orientada para desenvolvimento
web. Sendo uma linguagem script, esta é usada originalmente apenas para o
desenvolvimento de aplicações do lado do servidor (server scripting), tais como a
comunicação com a base de dados, com vista a gerar conteúdo dinâmico na World Wide
Web.
Servidor Apache
75
César Daniel da Silva Cabrita
Nº37296
É um Web Service livre.
Linguagem de marcação Xml
O Xml é uma linguagem de marcação. Ou seja, é uma linguagem que permite estruturar
dados para que estes sejam legíveis tanto por humanos como por máquinas. Os dados são
embutidos numa estrutura chamada de “tags”. Esta estrutura permite que a informação
seja facilmente acessível por aplicações informáticas, fazendo referência aos “tags”, que
guardam a informação e mantendo-a, ainda assim, legível para o utilizador (ex.: <nome>
César Cabrita </nome>).
HTML
HyperText Markup Language (HTML) é uma linguagem de marcação utilizada para
exibir as páginas Web e outras informações que poderão ser exibidas num Web browser.
Este é responsável pela estruturação do site através de um sistema de tags.
Este sistema de tags, no entanto, é diferente do sistema de tags do Xml. Aqui, em cada
tag, é possível reservar pixels, que só estarão disponíveis para ele mesmo. A essas tags
dá-se o nome de div. A quantidade de espaço reservado para cada div, é determinada pelo
seu estilo e, a cada uma, dá-se um nome único. Uma vez definida a div, a informação
poderá então ser carregada para esse espaço reservado, fazendo referência ao nome de
cada uma.
Google API
76
César Daniel da Silva Cabrita
Nº37296
O google maps é um serviço gratuito de pesquisa e de visualização de mapas e imagens
satélite da Terra, desenvolvido e fornecido pelo Google.
Este permite exibir mapas no site, e disponibiliza também funcionalidades, que permitem
exibir informação que se queira implementar, utilizando para tal, um serviço embutido
(Google API (Google Maps API, 2013)).
Javascript
O Javascript é uma linguagem de browser scripting ou seja, é normalmente utilizado
como parte de um Web browser, por forma a criar uma maior interacção com o utilizador
e a criar um website mais dinâmico e com maior funcionalidade.
Este é um tipo de linguagem que viabiliza a comunicação com o back-end, enviando um
pedido para a base de dados, através do Web service, e recebendo a informação através do
mesmo, que por sua vez, é processada e disponibilizada ao utilizador através do Website.
Cascading Style Sheets
O CSS ou Cascading Style Sheets é uma linguagem de estilo utilizada para definir a
apresentação de sites escritos em linguagem de marcação, tais como o HTML. A
principal vantagem desta linguagem, é permitir a separação do estilo que queremos
definir a determinado elemento do site (div), do seu conteúdo propriamente dito,
tornando-os assim, independentes um do outro. O seu funcionamento consiste em definir
os estilos a implementar nas diferentes div do ficheiro HTML num documento à parte
que, por sua vez, irá ser ligado ao ficheiro HTML através de um link.
77
César Daniel da Silva Cabrita
Nº37296
Jquery
Jquery é
uma biblioteca Javascript cross-browser desenvolvida
para
simplificar
os scripts do lado do cliente que interagem com o HTML. É a mais popular das
bibliotecas Javascript.
Cookies
Um cookie, também conhecido como http cookie ou web cookie, é um pequeno pedaço
de informação enviado por um site e armazenado no browser do utilizador enquanto este
navega pelo site. Este é utilizado quando o utilizador navegar pelo site no futuro, os
dados guardados no cookie serem enviados de volta para o site pelo browser notificandoo acerca da actividade anterior realizada. Os cookies foram assim desenhados para serem
um mecanismo fiável para que os sites saibam qual era o seu estado de actividade quando
o utilizador realizou a sua última utilização. Por exemplo, dados introduzidos como
emails ou formulários enormes que dão demasiado trabalho a preencher novamente ou
carregar em determinado botão para visualizar informação são algumas das suas
utilidades.
Full-text Search
É uma técnica de pesquisa a documentos guardados numa base de dados.
Distingue-se por pesquisas baseadas em metadados ou em partes do texto original
realizadas em bases de dados onde, por exemplo, quando uma tabela permite procura de
informação em modo Full-text search, o motor de pesquisa examina todas as palavras em
cada documento tentando encontrar um que corresponda ao critério requisitado pelo
utilizador.
78
César Daniel da Silva Cabrita
Nº37296
79
Download

Resumo - Repositório da Universidade de Lisboa