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