APLICAÇÃO MÓVEL DE GEOPOSICIONAMENTO PARA O SISTEMA DE TRANSPORTE PÚBLICO



Documentos relacionados
Auto Gerenciamento utilizando a Web ou Celular

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

Manual de Utilização do Sistema GRServer Cam on-line (Gerenciamento de Câmeras On-line)

PROJETO INFORMÁTICA NA ESCOLA

Grupo Projeção. Portal Acadêmico. - Ambiente do Aluno -

Manual do Painel Administrativo

TRBOnet MDC Console. Manual de Operação

Rastreamento Veícular

TRBOnet Standard. Manual de Operação

Manual SAGe Versão 1.2 (a partir da versão )

MANUAL RASTREAMENTO 2013

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

Tutorial WEB CONTENT MANAGEMENT [WCM] Obtenha benefícios a partir das aplicações customizadas da ADMT.

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

PROPOSTA DE RASTREAMENTO E MONITORAMENTO HÍBRIDO SATELITAL

Como funciona? SUMÁRIO

RELATÓRIO FINAL DE PROJETO DE INICIAÇÃO CIENTÍFICA (PIBIC/CNPq/INPE)

Apresentando o novo modelo de atendimento Centro Marista de Serviços - CMS. Curitiba, Julho de 2014

Guia do Usuário Moovit. Android Versão

Manual do usuário. Mobile Player

10 DICAS PARA TURBINAR SEU PACOTE DE DADOS. 1 - Desative os Dados do Celular. 2 Remova as notificações e atualizações automáticas

ÍNDICE MANUAL SITE ADMINISTRÁVEL TV. 1. Introdução 2. Acessando o site administrável/webtv SITE ADMINISTRÁVEL 3. CONFIGURAÇÕES

Windows Phone: Acesse Configurações > Rede celular + SIM > Ativada/Desativada. Android: Deslize a tela para baixo e desmarque a opção de dados.

"Manual de Acesso ao Moodle - Discente" 2014

TUTORIAL DO ALUNO. Olá, bem vindo à plataforma de cursos a distância da Uniapae!!!

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

Requisições de Materiais - Almoxarifado Módulo Portal Administrativo - SIPAC

Manual do Usuário Nextel Cloud. Manual do Usuário. Versão Copyright Nextel

Inicialização Rápida do Novell Messenger Móvel

I N T R O D U Ç Ã O W A P desbloqueio,

Manual do Usuário Android Neocontrol

Manual de instalação e configuração da Ferramenta Android SDK

Sistema Ativo de Segurança Automotiva Manual de Utilização

Manual do Aplicativo - Rastreamento Veicular

Inicialização Rápida do Novell Vibe Mobile

COORDENAÇÃO DE ENSINO A DISTÂNCIA - EaD

Manual da Turma Virtual: MATERIAIS. Para acessar a turma virtual com o perfil Docente, siga o caminho indicado abaixo:

Treinamento GVcollege Módulo Acadêmico - Pedagógico

Março Como o Eye-Fi funciona Fluxogramas da visão geral

MANUAL DE MEMBRO COMUNIDADE DO AMIGO

Sistema TrackMaker de Rastreamento e Logística de Transportes. Solução de Despacho Integrada. Manual do Usuário

v1.3 Guia rápido para sala virtual Para palestrantes e convidados NEaD - Núcleo de Educação a Distância da Unesp Núcleo de Educação a Distância

Manual Vivo Sync. Manual do Usuário. Versão Copyright Vivo

Disciplina: Programas de Edição de Textos Professora: Érica Barcelos

OSMobile Força de Vendas

Polycom RealPresence Content Sharing Suite Guia rápido do usuário

Sistema de Gerenciamento Remoto

Usar o Office 365 no iphone ou ipad

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

Guia do usuário do PrintMe Mobile 3.0

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna

Manual das funcionalidades Webmail AASP

Procedimentos para Reinstalação do Sisloc

Manual do usuário. Mobile View - ios

Software para Gestão de Equipes Externas Produtividade e Controle sobre sua equipe externa

Manual TIM PROTECT BACKUP. Manual do Usuário. Versão Copyright TIM PROTECT BACKUP

I - O que é o Mobilize-se

Manual de Utilização do Zimbra

Usar o Office 365 em seu telefone Android

MANUAL DO USUÁRIO. AssetView FDT. AssetView FDT

MANUAL PARA UTILIZAÇÃO DO MOODLE FACULDADE INTERAÇÃO AMERICANA VIRTUAL - Versão: Aluno

INTRODUÇÃO AO AMBIENTE MOODLE DA UFPA. Guia rápido

WordPress Institucional UFPel Guia Rápido

ÍNDICE. 1. Introdução O que é o Sistema Mo Porã Como acessar o Site Mo Porã Cadastro do Sistema Mo Porã...

mbiente Virtua de Aprendizagem

Como configurar s nos celulares. Ebook. Como configurar s no seu celular. W3alpha - Desenvolvimento e hospedagem na internet

Plano de Carreira Sistema de Apoio à Gestão de Planos de Carreira

Guia para o Google Cloud Print

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

A PÁGINA DISCIPLINAR DE MATEMÁTICA DO PORTAL DIA A DIA EDUCAÇÃO

Manual do usuário. v1.0

Manual Vivo Sync. Manual do Usuário. Versão Copyright Vivo

Noções de. Microsoft SQL Server. Microsoft SQL Server

Manual do Google agenda. criação e compartilhamento de agendas

Tutorial Plone 4. Manutenção de Sites. Universidade Federal de São Carlos Departamento de Sistemas Web Todos os direitos reservados

INFORMES MANUAL DO APLICATIVO

PORTAL DE COMPRAS SÃO JOSÉ DO RIO PRETO

Google Hangouts Google Hangouts

7 Utilização do Mobile Social Gateway

Manual do usuário - Service Desk SDM - COPASA. Service Desk

TUTORIAL PARA O MÉDICO PROJETO DE INTERVENÇÃO PROVAB 2014

Manual do usuário. Intelbras isic5 Tablet - Android

1 Sumário O Easy Chat Conceitos Perfil Categoria Instalação O Aplicativo HTML...

Sistema GNSS. (Global Navigation Satellite System)

CONSTRUÇÃO DE BLOG COM O BLOGGER

O conjunto é composto por duas seções: o App Inventor Designer e o App Inventor Blocks Editor, cada uma com uma função específica.

Sumário. Apresentação O que é o Centro de Gerenciamento de Serviços (CGS) NTI? Terminologia Status do seu chamado Utilização do Portal Web

GUIA RÁPIDO DE UTILIZAÇÃO DO PORTAL DO AFRAFEP SAÚDE

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

Portal Sindical. Manual Operacional Empresas/Escritórios

MDaemon GroupWare. Versão 1 Manual do Usuário. plugin para o Microsoft Outlook. Trabalhe em Equipe Usando o Outlook e o MDaemon

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente


DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Google Drive. Passos. Configurando o Google Drive

Manual do Usuário. Manual do Usuário - Versão

ÍNDICE. GUIa DE UtIlIzaÇÃo

Motorola Phone Tools. Início Rápido

Manual do Ambiente Moodle para Alunos

Transcrição:

FACULDADE DE TECNOLOGIA DE SÃO JOSÉ DOS CAMPOS FATEC PROFESSOR JESSEN VIDAL LUIZ EDUARDO DE MATOS JUNIOR APLICAÇÃO MÓVEL DE GEOPOSICIONAMENTO PARA O SISTEMA DE TRANSPORTE PÚBLICO São José dos Campos 2011

LUIZ EDUARDO DE MATOS JUNIOR APLICAÇÃO MÓVEL DE GEOPOSICIONAMENTO PARA O SISTEMA DE TRANSPORTE PÚBLICO Trabalho de Graduação apresentado à Faculdade de Tecnologia São José dos Campos, como parte dos requisitos necessários para a obtenção do título de Tecnólogo em Informática com Ênfase em Redes de Computadores. Orientador: Prof. Me. Giuliano Araujo Bertoti São José dos Campos 2011

Dados Internacionais de Catalogação-na-Publicação (CIP) Divisão de Informação e Documentação MATOS JR., Luiz Eduardo. Título do Trabalho de Graduação. São José dos Campos, 2011. 85f. Trabalho de Graduação Curso de Tecnologia em Informática com Ênfase em Redes de Computadores, FATEC de São José dos Campos: Professor Jessen Vidal, 2011. Orientador: Prof. Me. Giuliano Araujo Bertoti. 1. Áreas de conhecimento. I. Faculdade de Tecnologia. FATEC de São José dos Campos: Professor Jessen Vidal. Divisão de Informação e Documentação. II. Título REFERÊNCIA BIBLIOGRÁFICA MATOS JR., Luiz Eduardo. Aplicação Móvel de Geoposicionamento para o Sistema de Transporte Público. 2011. 85f. Trabalho de Graduação - FATEC de São José dos Campos: Professor Jessen Vidal. CESSÃO DE DIREITOS NOME DO AUTOR: Luiz Eduardo de Matos Junior TÍTULO DO TRABALHO: Aplicação Móvel de Geoposicionamento para o Sistema de Transporte Público TIPO DO TRABALHO/ANO: Trabalho de Graduação / 2011 É concedida à FATEC de São José dos Campos: Professor Jessen Vidal permissão para reproduzir cópias deste Trabalho e para emprestar ou vender cópias somente para propósitos acadêmicos e científicos. O autor reserva outros direitos de publicação e nenhuma parte deste Trabalho pode ser reproduzida sem a autorização do autor. Luiz Eduardo de Matos Junior Rua Graúna, 203 Vila Tatetuba CEP 12220-200 São José dos Campos São Paulo

iii Luiz Eduardo de Matos Junior APLICAÇÃO MÓVEL DE GEOPOSICIONAMENTO PARA O SISTEMA DE TRANSPORTE PÚBLICO Trabalho de Graduação apresentado à Faculdade de Tecnologia São José dos Campos, como parte dos requisitos necessários para a obtenção do título de Tecnólogo em Informática com Ênfase em Redes de Computadores. Valter João de Sousa, Prof. Me. Faculdade de Tecnologia de São José dos Campos Eduardo Sakaue, Prof. Me. Faculdade de Tecnologia de São José dos Campos Giuliano Araujo Bertoti, Prof. Me. - Faculdade de Tecnologia São José dos Campos / / DATA DA APROVAÇÃO

iv Para meus pais.

v AGRADECIMENTOS Primeiramente agradeço a Deus, por ser responsável por cada acontecimento durante essa etapa. Agradeço ao meu pai, Luiz Eduardo de Matos, a minha mãe, Roberta Márcia dos Santos Armando Matos e a minha irmã, Maria Fernanda de Matos, por estarem presentes e sempre me apoiando na trajetória dessa jornada. Agradeço ao professor, mestre e meu orientador, Giuliano Araujo Bertoti, por acreditar em meu projeto, me orientando no desenvolvimento desse trabalho. Também agradeço aos professores da Fatec São José dos Campos pelos ensinamentos passados durante o curso. Agradeço aos meus amigos Luiz Fellipe Gudin Castinheiras e Rafael Cassiano da Silva, e aos meus colegas de turma. Enfim, agradeço a todos que direta ou indiretamente contribuíram para que eu alcançasse meu objetivo.

vi Você precisa acreditar em alguma coisa na sua coragem, no seu destino, na sua vida, no carma, em qualquer coisa. Steve Jobs

vii RESUMO Atualmente, os governos fornecem de forma eletrônica diversos serviços para a população. A utilização destes serviços de governo eletrônico permite que se possa gerenciar melhor o tempo para a realização das atividades do dia-a-dia. Nos dias de hoje, existem diversas aplicações móveis que fornecem funções e trazem benefícios para os seus usuários. No âmbito do transporte público, o maior interesse dos usuários é o tempo aproximado e a distância que se encontra o ônibus que eles desejam embarcar. O objetivo deste trabalho é desenvolver uma aplicação móvel de geoposicionamento para sistemas de transporte público. Dois módulos foram implementados com tecnologias que permitem, obter o geoposicionamento dos mesmos e a comunicação com a terceira parte do sistema, que é responsável por armazenar e fornecer as informações de localização geográfica. Este trabalho apresenta uma aplicação para dispositivos móveis que fornece em tempo real informações sobre o serviço de transporte público aos seus usuários. Palavras-Chave: Geoposicionamento; e-gov; GPS; Dispositivos Móveis; Transporte Público.

viii ABSTRACT Currently, governments provide various services electronically to the population. The use of e-government services allows us to better manage the time to perform daily activities. Today, there are several mobile applications that provide features and benefits for its users. In the context of public transport, interest to users is the approximate time and distance that is the bus that they wish to embark. The aim of this work is to develop a geo- mobile application for public transportation systems. Two modules were implemented with technologies that allow to get the same geographic location and communication with the third part of the system, which is responsible for storing and provide these informations. This work presents an application for mobile devices that provides real-time information about public transport service to its users. Keywords: Geo, e- gov, GPS, Mobile Devices, Public Transportation.

ix LISTA DE FIGURAS Figura 1 - Acesso à Internet no Brasil 15 Figura 2 Ranking Governo Eletrônico 16 Figura 3 - Consulta de horário e itinerário no site da PMSJC 17 Figura 4 Governo do Estado de São Paulo no Celular 18 Figura 5 Segmento espacial do sistema GPS 22 Figura 6 Segmento espacial do sistema GLONASS 22 Figura 7 Triangulação de satélites 23 Figura 8 Sistema A-GPS 24 Figura 9 Sistema CELL-ID 24 Figura 10 Google Mapas 25 Figura 11 Pontos de Interesse Google Mapas 26 Figura 12 Definindo local para rota no Google Mapas 26 Figura 13- Selecionando opção de rota no Google Mapas 27 Figura 14 Informações de rota no Google Mapas 27 Figura 15 Mapa com rota no Google Mapas 28 Figura 16 Google Latitude 28 Figura 17 Localização de amigos no Google Latitude 29 Figura 18 Mapa com locais de interesse no Foursquare 29 Figura 19 Lista com locais nas proximidades 30 Figura 20 Lista de amigos no Foursquare 30 Figura 21 Redes sociais integradas ao Foursquare 31 Figura 22 Localização geográfica no Glympse 31 Figura 23 Criando compartilhamento no Glympse 32 Figura 24 Selecionando contato no Glympse 32 Figura 25 SMS Glympse 33 Figura 26 Visualização no mapa Glympse 33 Figura 27 Geolocalização através do HTML5 34 Figura 28 Recursos disponíveis na biblioteca PhoneGap 35 Figura 29 Ferramentas disponíveis no Android SDK 36 Figura 30 - Emulador Android 37 Figura 31 App Inventor 37 Figura 32 App Invnetor Designer 38 Figura 33 App Inventor Blocks Editor 42 Figura 34 Inicialização da Aplicação 43 Figura 35 Localização Geográfica Obtida 44 Figura 36 Visualização da Localização Geográfica 44 Figura 37 Localização Geográfica por GPS 45 Figura 38 - Localização obtida por GPS 46 Figura 39 Lista de Linhas de Ônibus 46 Figura 40 Destino das Linhas de Ônibus 47 Figura 41 Seleção do destino da linha de ônibus 47 Figura 42 Busca da localização geográfica do ônibus 48 Figura 43 Localização do ônibus 48 Figura 44 Cálculo de tempo e distância 49 Figura 45 Mapa exibindo rota entre os pontos 49 Figura 46 Bloco Screen1.Initialize 51 Figura 47 Bloco sensorlocalizacao.locationchanged 51

Figura 48 Bloco botaominhalocalizacaousuario.click 52 Figura 49 Bloco botaovisualizadorwebok.click 53 Figura 50 Bloco botaovisualizadorwebmelhorar.click 53 Figura 51 Bloco botaolistalinhasonibus.afterpicking 54 Figura 52 Bloco opcaodestinolinhasonibus1.changed 55 Figura 53 - Bloco opcaodestinolinhasonibus2.changed 55 Figura 54 Bloco botaooklinhasonibus.click 56 Figura 55 Bloco TinyWebDB1.GotValue 56 Figura 56 Bloco botaoexibirdistanciatempolocalizacaoonibus.click 57 Figura 57 Número do ônibus 57 Figura 58 Opções número do ônibus 58 Figura 59 Clicando no botão alterar 58 Figura 60 Alterando número do ônibus 58 Figura 61 Clicando no botão Selecionar Linha 59 Figura 62 Lista de linha de ônibus 59 Figura 63 Destinos da linha selecionada 60 Figura 64 Confirmar seleção de destino 60 Figura 65 Botão Iniciar Registros 61 Figura 66 Geolocalização módulo ônibus 61 Figura 67 Bloco botaooknumeroonibus.click 63 Figura 68 Bloco botaoalterarnumeroonibus.click 63 Figura 69 Bloco botaolistalinhasonibus.afterpicking 64 Figura 70 Bloco opcaodestinolinhasonibus1.changed 65 Figura 71 - Bloco opcaodestinolinhasonibus2.changed 65 Figura 72 Bloco botaogpsonibusregistrar.click 66 Figura 73 Bloco sensorlocalizacao.locationchanged 66 Figura 74 Servidor Web 67 Figura 75 Localização Geográfica por GPS 68 Figura 76 Parâmetro Google Maps 69 Figura 77 Teste do módulo ônibus 70 Figura 78 Teste do módulo usuário 70 Figura 79 Teste Servidor Web 70 Figura 80 Teste cálculo Google Maps 71 Figura 81 Teste trajeto no Google Maps 71 Figura 82 Módulo ônibus salvando no servidor web 72 Figura 83 Novo registro no servidor web 72 Figura 84 Linha não encontrada 73 x

xi LISTA DE TABELAS Tabela 1 Linhas do transporte público de São José dos Campos 17 Tabela 2 Características dos sistemas de navegação. 21 Tabela 3 Características da constelação de satélites 22 Tabela 4 Componentes App Inventor - Basic 38 Tabela 5 Componentes App Inventor - Media 39 Tabela 6 Componentes App Inventor - Animation 39 Tabela 7 Componentes App Inventor Social 40 Tabela 8 Componentes App Inventor - Sensor 40 Tabela 9 Componentes App Inventor - Screen Arrangement 40 Tabela 10 Componentes App Inventor - Other 41 Tabela 11 Componentes App Inventor Not ready for prime time 41 Tabela 12 Componentes do módulo usuário 50 Tabela 13 Componentes do módulo ônibus 62

xii LISTA DE ABREVIATURAS E SIGLAS M-GOV E-GOV GNSS GPS DoD SCC TT&C A-GPS SMS GUI API Governo móvel Governo eletrônico Sistema Global de Navegação por Satélite Sistema Global de Posicionamento Departamento de Defesa Americano Centro de Controle de Sistema Estação de Telemetria, Rastreamento e Controle GPS Assistido Serviço de Mensagens Curtas Interface Gráfica de Usuário Interface de Programação de Aplicativos

xiii LISTA DE ANEXOS ANEXO 1: Código-fonte do servidor web 79

xiv SUMÁRIO 1- INTRODUÇÃO 15 1.1- Motivação 15 1.2- Objetivos 18 1.2.1- Objetivo Geral 18 1.2.2- Objetivo Específico 18 1.3- Metodologia 19 1.4- Organização do trabalho 19 2- APLICAÇÕES MÓVEIS DE GEOPOSICIONAMENTO 20 2.1- Definição 20 2.2- Geoposicionamento 20 2.2.1- Definição 20 2.2.2- Sistema Global de Navegação por Satélites 20 2.2.2.1- Sistema de Posicionamento Global 20 2.2.2.2- Sistema Orbital Global de Navegação por Satélite 21 2.2.3- Funcionamento 21 2.2.4- Localização Geográfica 23 2.3- Aplicação 25 2.3.1- Google Mapas 25 2.3.2- Google Latitude 28 2.3.3- Foursquare 29 2.3.4- Glympse 31 2.4- Tecnologias de Implementação 34 2.4.1- HTML5 34 2.4.2- Google Maps API 35 2.4.3- PhoneGap 35 2.4.4- Android SDK 36 2.4.5- App Inventor 37 3- APLICAÇÃO MÓVEL DE GEOPOSICIONAMENTO PARA O SISTEMA DE TRANSPORTE PÚBLICO 43 3.1- Módulo Usuário 43 3.1.1- Funcionamento 43 3.1.2- Implementação 50 3.2- Módulo Ônibus 57 3.2.1- Funcionamento 57 3.2.2- Implementação 62 3.3- Servidor Web 67 3.3.1- Funcionamento 67 3.3.2- Implementação 68 3.4- Dificuldades Encontradas 68 3.5- Exemplo de utilização 69 4- CONSIDERAÇÕES FINAIS 74 4.1- Contribuições e Conclusões 74 4.1.1- Publicação 75 4.2- Trabalhos Futuros 75 REFERÊNCIAS 76 ANEXO 1: Código-fonte do servidor web 79

15 1- INTRODUÇÃO 1.1- Motivação Os dias atuais exigem cada vez mais tempo das pessoas para realizarem suas atividades, e essa exigência faz com que seja necessário haver um melhor gerenciamento desse tempo utilizado para executar essas atividades. Esse gerenciamento se torna cada vez mais difícil de realizar quando envolve situações que dependem de serviços prestados, como o serviço de transporte público (ZANINI, 2010). Mas os dias atuais não trouxeram somente dificuldades para as pessoas, o avanço da tecnologia e a facilidade de acesso a ela, fazem com que diversas atividades sejam realizadas de maneira mais rápida e de forma mais fácil, utilizando, por exemplo, a Internet. No Brasil, o número de pessoas que tiveram acesso à Internet independente do local (residência, escola, trabalho, lan house ou outros locais) alcançou 73,9 milhões em 2010 (IBOPE, 2011). Figura 1 - Acesso à Internet no Brasil Fonte: (IPOBE, 2011) O número de acessos à Internet não aumentou somente em locais fixos, com a popularização de notebooks e smartphones, juntamente com o fornecimento de planos de acessos móveis à Internet, fez com que aumentasse também o número de acessos à internet por dispositivos móveis (DIGITALAGE, 2011). Em setembro 2011, a quantidade de pesquisas realizadas na internet através de dispositivos móveis teve um aumento de 1000% em comparação a setembro de 2010 (CIO, 2011).

16 Envolvidos com essa tecnologia, os governos fazem o uso da mesma a fim de disponibilizar serviços à população de forma eletrônica (GOVBR, 2011). Usando como exemplo a declaração anual de imposto de renda, que antigamente era feita de forma manual, através de preenchimento diversas páginas de um formulário que deveria ser entregue em uma unidade de Receita Federal, pode-se comprovar, perante a forma de como esse processo é realizado atualmente, o quanto o governo eletrônico traz benefícios para quem faz uso dele (RECEITA FEDERAL, 2011). Um estudo comparativo realizado pela Organização das Nações Unidas sobre governo eletrônico mostrou o Brasil na 61ª colocação entre 184 nações que fornecem serviços e informações a população eletronicamente. Ainda segundo esse estudo, o Brasil possui um índice maior do que a média mundial, porém ficando atrás de países como Colômbia, Chile, Uruguai e Argentina (UNEGOVDD, 2011). Figura 2 Ranking Governo Eletrônico Fonte: Adaptada de UNEGOVDD (2011) Diversas prefeituras fazem uso da internet para fornecer informações e serviços aos seus munícipes. A prefeitura de São José dos Campos disponibiliza em seu site uma grande quantidade de serviços diminuindo assim a burocracia existente no setor público.

17 Dentre esses serviços é possível encontrar informações sobre o transporte público coletivo, porém essas informações estão limitadas ao itinerário das linhas e o horário que está previsto a partida do ônibus do seu ponto inicial. Tal informação não é suficiente para que seus usuários evitem a perde de tempo enquanto esperam um ônibus (PMSJC, 2011). Figura 3 - Consulta de horário e itinerário no site da PMSJC Fonte: (PMSJC, 2011) Em abril de 2008, o sistema de transporte público de São José dos Campos transportou 5.392.074 passageiros, com um total de 77 linhas e uma frota de 344 veículos (PMSJC, 2011). A Tabela 1 mostra algumas das linhas do transporte público existentes na cidade de São José dos Campos. Tabela 1 Linhas do transporte público de São José dos Campos Número Nome Sentidos 123 Vila Dirce Jd. Augusta Vila Dirce Jd. Augusta / Jd. Augusta Vila Dirce 205 Eugenio de Melo Galo Branco Eugenio de Melo Galo Branco / Galo Branco Eugenio de Melo 215 Vila Tesouro Jd. Aquarius Vila Tesouro Jd. Aquarius / Jd. Aquarius Vila Tesouro 307 Morumbi Terminal Central Morumbi Terminal Central / Terminal Central Morumbi Fonte: (PMSJC, 2011)

18 Mediante essas informações, alguns governos já estão fazendo uso de um conceito denominado de governo móvel (m-gov), como é o caso da prefeitura municipal de Salvador, que durante o carnaval envia informações sobre os horários e percursos dos blocos para celulares (E-GOV, 2011). O Governo do Estado de São Paulo disponibiliza para a população, em uma versão adaptada para celular, as noticias que são divulgadas em seu portal (GOVSP, 2011), conforme mostrado na Figura 4. Figura 4 Governo do Estado de São Paulo no Celular Fonte: (GOVSP, 2011) 1.2- Objetivos 1.2.1- Objetivo Geral Desenvolver uma aplicação para dispositivos móveis que forneça em tempo real informações sobre o serviço de transporte público aos seus usuários. 1.2.2- Objetivo Específico Desenvolver uma aplicação móvel de geoposicionamento para o serviço de transporte público composta por: a) Módulo usuário: permitir ao usuário, calcular o tempo e a distância do ônibus de uma linha desejada, a partir da sua localização geográfica. b) Módulo ônibus: obter as informações de localização geográfica do veículo e enviá-las para armazenamento em um servidor web.

19 c) Servidor web: armazenar as informações da localização geográfica enviadas pelo módulo ônibus e transmitir essas informações quando solicitado pelo módulo usuário. 1.3- Metodologia Para que fosse implementada uma aplicação móvel de geoposicionamento para o sistema de transporte público, foi desenvolvido um sistema divido em três partes. Dois módulos foram implementados com tecnologias que permitem, obter o geoposicionamento dos mesmos e a comunicação com a terceira parte do sistema, que é responsável por armazenar e fornecer as informações de localização geográfica. As informações armazenadas são utilizadas para realizar os cálculos de tempo e distância entre os módulos. 1.4- Organização do trabalho Esse trabalho está organizado da seguinte forma: Capítulo 2: descreve aplicações móveis de geoposicionamento e aborda conceitos importantes e características dos sistemas e tecnologias que são utilizados para a implementação dessas aplicações. Capítulo 3: descreve como essa aplicação funciona, a forma como foi desenvolvida e os testes que foram realizados. Capítulo 4: apresenta as considerações finais sobre os resultados obtidos e sugestões para trabalhos futuros a respeito de aplicações móveis de geoposicionamento.

20 2- APLICAÇÕES MÓVEIS DE GEOPOSICIONAMENTO Esse capítulo tem como objetivo apresentar conceitos de aplicações móveis com geoposicionamento. É composto por sessões que descrevem o geoposicionamento, as aplicações que fazem uso dele e as tecnologias utilizadas que tornam possível sua implementação. 2.1- Definição Aplicações móveis são aplicativos que funcionam em dispositivos móveis e tem como finalidade fornecer algum conteúdo, informação ou funcionalidade aos seus usuários. Existem diversos tipos de aplicações móveis, com objetivos que vão desde um simples envio de SMS até a utilização de recursos nativos do aparelho. Aplicações que utilizam esses recursos são desenvolvidas baseadas nas plataformas utilizadas pelos dispositivos (FLING, 2009). Uma funcionalidade que utiliza os recursos dos dispositivos é o geoposicionamento, que é descrito na seção abaixo. 2.2- Geoposicionamento 2.2.1- Definição Geoposicionamento é a posição geográfica na superfície terrestre definida pela interseção dos valores de latitude e longitude, que são definidos por um sistema de coordenadas geográficas. As informações de latitude e longitude podem ser obtidas pelo Sistema Global de Navegação por Satélites (MONICO, 2000). 2.2.2- Sistema Global de Navegação por Satélites O Sistema Global de Navegação por Satélite (GNSS) é conjunto de satélites que possibilita a definição da posição geográfica no globo terrestre. Atualmente dois sistemas de navegação fazem parte do GNSS: o sistema de posicionamento global e o sistema orbital global de navegação por satélite (CNS/ATM, 2011). 2.2.2.1- Sistema de Posicionamento Global Traduzido do inglês global positioning system, mais conhecido como GPS, o sistema de posicionamento global, é um sistema de navegação, de abrangência global, que permite obter a localização geográfica através de um receptor GPS.

21 Desenvolvido pelo Departamento de Defesa (DoD) dos Estados Unidos da América, o GPS é o resultado de uma união de dois projetos financiados pelo governo norte-americano, e foi nomeado como NAVSTAR (Navigation Satellite with Time And Ranging). No GPS existem dois tipos de serviços, que são chamados de Serviço de Posicionamento Padrão e Serviço de Posicionamento Preciso. O Serviço de Posicionamento Padrão está disponível gratuitamente para qualquer usuário, já o Serviço de Posicionamento Preciso, que proporciona melhores resultados, é disponibilizado somente para uso militar e usuários autorizados (MONICO, 2000). 2.2.2.2- Sistema Orbital Global de Navegação por Satélite Traduzido do russo Globalnaya Navigatsionnaya Sputnikovaya Sistema, mais conhecido com GLONASS, o Sistema Orbital Global de Navegação por Satélite (GLONASS), é um sistema de navegação por satélite semelhante ao sistema norte-americano GPS. Inicialmente desenvolvido para fins militares, o GLONASS tem atualmente como propósito, prover a um número ilimitado de usuários, a posição geográfica de qualquer ponto na superfície terrestre (MONTES JR., 2006). Baseado nas características apresentadas na Tabela 2, podemos fazer uma comparação entre esses dois sistemas. Tabela 2 Características dos sistemas de navegação. GNSS Operador Número de Satélites Inicio de Operação GPS DoD EUA 24 + 3 Reservas 1995 GLONASS Federação Russa 24 1995 Fonte: (MONTES JR., 2006) Outros sistemas de navegação estão em fase de desenvolvimento, é caso do GALILEO, desenvolvido pela União Europeia, e do COMPASS, desenvolvido pela China (CNS/ATM, 2011). 2.2.3- Funcionamento O Sistema Global de Navegação por Satélite (GNSS) é composto por três segmentos: segmento espacial, segmento de controle e segmento de usuário. O segmento espacial é a constelação de satélites distribuídos em planos orbitais, cada plano orbital possui uma quantidade de satélites, que operam em uma determinada altitude,

22 dando uma volta completa na órbita da Terra em um determinado período orbital, promovendo assim uma cobertura total da superfície da Terra, como apresentado na Tabela 3. Tabela 3 Características da constelação de satélites Sistema Planos Orbitais Satélites por Plano Altitude dos Satélites Período Orbital GPS 6 4 20.200 km 11 horas e 58 minutos GLONASS 3 8 19.000 km 11 horas e 15 minutos Fonte: (MONTES JR., 2006) (MONICO, 2000). A Figura 5 demonstra o segmento espacial do sistema GPS. Figura 5 Segmento espacial do sistema GPS Fonte: Adaptada de Monico (2000) A Figura 6 demonstra o segmento espacial do sistema GLONASS. Figura 6 Segmento espacial do sistema GLONASS Fonte: Montes Jr. (2006) O segmento de controle tem a função de monitorar os satélites, corrigir os parâmetros de orbita e atualizar as informações de navegação de cada satélite.

23 O segmento de controle GLONASS é composto por um Centro de Controle de Sistema (SCC), localizado em Moscou, e por estações de telemetria, rastreamento e controle (TT&C) distribuídas no território Russo (MONTES JR., 2006). O segmento de controle GPS é composto por cinco estações monitoras, três antenas para envio de dados e uma estação de controle central (MONICO, 2000). O segmento de usuário é composto pelos receptores dos sistemas de navegação por satélite, que podem ser de uso civil ou militar, que recebem os sinais dos satélites e calculam a localização geográfica (MONTES JR., 2006). 2.2.4- Localização Geográfica A localização geográfica obtida pelo Sistema Global de Navegação por Satélite (GNSS) é baseada no princípio da triangulação, onde o cálculo da posição é realizado através da distância do receptor em relação a três satélites. Para realizar o cálculo de altura do receptor são necessários pelo menos quatro satélites (GUEDES, 2003). A Figura 7 apresenta a localização geográfica por triangulação. Figura 7 Triangulação de satélites Fonte: Adaptada de Guedes (2003) Outra maneira de se obter a localização geográfica utilizando o Sistema Global de Navegação por Satélite (GNSS) é através de uma tecnologia chamada GPS Assistido (A- GPS), onde uma rede sem fio interconecta servidores ao dispositivo receptor GPS. Dessa maneira o processamento das informações é realizado nos servidores e transmitido aos dispositivos receptores (GUEDES, 2003). A Figura 8 apresenta o sistema A-GPS.

24 Figura 8 Sistema A-GPS Fonte: Adaptada de Guedes (2003) Existe também outra tecnologia de localização geográfica baseada em rede, conhecida como CELL-ID, que consiste em determinar a localização geográfica de um dispositivo móvel baseada na localização da torre de transmissão em que ele está se comunicando. A área de atuação de uma torre de transmissão é chamada de célula. Uma célula pode ter entre 2 a 20 quilômetros de diâmetro, por esse motivo, essa solução é considerada de menor precisão, tendo o resultado melhorado em áreas urbanas, onde as células são menores, devido à quantidade de torres (GUEDES, 2003). A Figura 9 apresenta o sistema CELL-ID. Figura 9 Sistema CELL-ID Fonte: Adaptada de Guedes (2003)

25 2.3- Aplicação As seções abaixo descrevem algumas aplicações móveis que fazem uso de geoposicionamento. 2.3.1- Google Mapas Google Mapas é o serviço de mapas do Google, que permite a visualização de mapas em dispositivos móveis que possuem plano de dados para acesso à Internet. Esse serviço está disponível em mais de 40 países. Por ser necessária a utilização de um plano de dados, o Google Mapas consegue determinar a localização geográfica atual do dispositivo móvel com ou sem a utilização do receptor GPS, como apresentado na Figura 10. O Google Mapas também permite aos seus usuários visualizar pontos de interesse localizados próximos da localização geográfica obtida, como demonstrado na Figura 11. Outra função do Google Mapas é exibir rotas para um local desejado, como apresentado na Figura 12. Essas rotas possuem opções de serem por transporte público, a pé, ou de carro, como demonstrado na Figura 13. As rotas exibidas são traçadas utilizando o percurso mais rápido possível. As rotas de transporte público não estão disponíveis para todas as cidades. As rotas de carros possuem a opção de evitar pedágios ou rodovias (GOOGLEMAPS, 2011). Figura 10 Google Mapas Fonte: (GOOGLEMAPS, 2011)

26 Figura 11 Pontos de Interesse Google Mapas Fonte: (GOOGLEMAPS, 2011) Figura 12 Definindo local para rota no Google Mapas Fonte: (GOOGLEMAPS, 2011)

27 Figura 13- Selecionando opção de rota no Google Mapas Fonte: (GOOGLEMAPS, 2011) A Figura 14 apresenta as informações sobre a rota traçada pelo Google Mapas. Figura 14 Informações de rota no Google Mapas Fonte: (GOOGLEMAPS, 2011)

28 A Figura 15 apresenta o percurso traçado pelo Google Mapas. Figura 15 Mapa com rota no Google Mapas Fonte: (GOOGLEMAPS, 2011) 2.3.2- Google Latitude O Google Latitude é um serviço do Google que insere o conceito de redes sociais no Google Mapas, permitindo que o usuário compartilhe a sua localização com outros usuários que estejam presentes na sua lista de amigos, como apresentado na Figura 16. (GOOGLELATITUDE, 2011). Figura 16 Google Latitude Fonte: (GOOGLELATITUDE, 2011)

A Figura 17 apresenta a função de localização de amigos presente no Google Latitude. Figura 17 Localização de amigos no Google Latitude 29 Fonte: (GOOGLELATITUDE, 2011) 2.3.3- Foursquare O Foursquare é um serviço de rede social baseado no geoposicionamento, onde seus usuários divulgam o local onde estão, utilizando uma função do programa chamada "checkin. O serviço utilizado pelo celular detecta pelo receptor GPS a localização do usuário e exibe os locais de interesse nas proximidades (FOURSQUARE, 2011), como apresentado na Figura 18. Figura 18 Mapa com locais de interesse no Foursquare Fonte: (FOURSQUARE, 2011)

30 O Foursquare exibe em uma lista, os locais próximos à localização geográfica obtida. Como apresentado na Figura 19. Figura 19 Lista com locais nas proximidades Fonte: (FOURSQUARE, 2011) O Foursquare exibe em uma lista, os amigos do usuário e os locais onde eles realizaram seus check-ins, como apresentado na Figura 20. Figura 20 Lista de amigos no Foursquare Fonte: (FOURSQUARE, 2011)

31 Além de ter sua própria rede social, o Foursquare permite que os usuários compartilhem seus check-ins em outras redes, como o Twitter e Facebook, como apresentado na Figura 21. Figura 21 Redes sociais integradas ao Foursquare Fonte: (FOURSQUARE, 2011) 2.3.4- Glympse O Glympse é um serviço para dispositivos móveis com receptor GPS, que permite ao seu usuário compartilhar sua localização geográfica por um período de tempo prédeterminado. O diferencial desse serviço está na não obrigatoriedade de se criar uma rede de amigos, como apresentado na Figura 22 (GLYMPSE, 2011). Figura 22 Localização geográfica no Glympse Fonte: (GLYMPSE, 2011)

32 A Figura 23 apresenta a localização geográfica obtida pelo Glympse e as opções de compartilhamento fornecidas pelo mesmo. Figura 23 Criando compartilhamento no Glympse Fonte: (GLYMPSE, 2011) O Glympse permite que a localização geográfica, compartilhada pelo usuário, seja enviada para um endereço de e-mail ou por SMS a um número de celular, como apresentado na Figura 24. Figura 24 Selecionando contato no Glympse Fonte: (GLYMPSE, 2011)

33 O destinatário recebe por SMS ou e-mail, como apresentado na Figura 25, um endereço da Internet que permite a visualização da localização atual e em tempo real do usuário do Glympse em um mapa, como demonstrado na Figura 26. Figura 25 SMS Glympse Fonte: (GLYMPSE, 2011) Figura 26 Visualização no mapa Glympse Fonte: (GLYMPSE, 2011)

34 2.4- Tecnologias de Implementação As seções abaixo descrevem algumas ferramentas que permitem o desenvolvimento de aplicações móveis que fazem uso de geoposicionamento. 2.4.1- HTML5 O HTML5 é a quinta versão, que ainda está em desenvolvimento, do HTML (HyperText Markup Language), linguagem de formatação, desenvolvido pelo W3C (World Wide Web Consortium) em parceria com a WHATWG community (Web Hypertext Application Technology Working Group), que está presente na codificação das páginas da Internet (W3C,2011) (WHATWG,2011). O principal objetivo do HTML5 é trazer novos recursos e funcionalidades para as marcações (tags), que são os elementos da linguagem. Dentre essas novas funcionalidades, está o recurso de geolocalização, como apresentado na Figura 27, que permite determinar a localização do usuário de uma aplicação web. Algumas aplicações da Internet já fazem uso desse recurso, como por exemplo, o Google Maps (LAWSON, 2011). Figura 27 Geolocalização através do HTML5 Fonte: (HTML5DEMOS, 2011)

35 2.4.2- Google Maps API Com a utilização da Interface de Programação de Aplicativo (API), o desenvolvedor consegue ter acesso as rotinas de programação específicas para executar funcionalidades de um software. A API do Google Maps é uma ferramenta que permite aos desenvolvedores incorporar os serviços do Google Maps em suas aplicações. A partir de uma rotina de programação, é possível obter a localização geográfica do usuário da aplicação (GOOGLECODE, 2011). 2.4.3- PhoneGap O PhoneGap é uma biblioteca para desenvolvimento de aplicativos com suporte à diversos sistemas operacionais de dispositivos móveis. Os aplicativos são desenvolvidos em HTML5 e JavaScript, permitindo acesso aos principais recursos dos dispositivos móveis, como demonstrado na Figura 28 (PHONEGAP, 2011). Figura 28 Recursos disponíveis na biblioteca PhoneGap Fonte: Adaptada de PhoneGap(2011)

36 2.4.4- Android SDK O Android SDK (Software Development Kit) é um conjunto de ferramentas que auxiliam os desenvolvedores a criar aplicações móveis para a plataforma Android. As ferramentas disponibilizadas no Android SDK são divididas em dois grupos: as ferramentas da plataforma e as ferramentas SDK (PEREIRA, 2009). As ferramentas de plataforma são habilitadas para dar suportar as funcionalidades de uma plataforma Android específica. As ferramentas do SDK são de uso obrigatório, independentemente de qual plataforma Android está se desenvolvendo, e são empregadas nas funcionalidades dos dispositivos móveis, como demonstrado na Figura 29 (ANDROIDDEVELOPERS, 2011). Figura 29 Ferramentas disponíveis no Android SDK Fonte: (ANDROIDDEVELOPERs, 2011) Uma ferramenta importante disponibilizada no Android SDK é o Android Emulator, que emula um dispositivo móvel virtual no computador do desenvolvedor, tornando possível testar os aplicativos sem a utilização de um dispositivo físico, como demonstrado na Figura 30 (ANDROIDDEVELOPERS, 2011).

37 Figura 30 - Emulador Android Fonte: (ANDROIDDEVELOPERS, 2011) 2.4.5- App Inventor O App Inventor é uma ferramenta criada para desenvolver aplicativos para a plataforma Android. Os componentes são inseridos nos aplicativos utilizando o App Inventor Designer, um construtor de interface gráfica do usuário (GUI). As funcionalidades do aplicativo são implementadas em uma programação por blocos, disponibilizados pela ferramenta através do App Inventor Blocks Editor, o editor de blocos (WOLBER, 2011). Os projetos desenvolvidos no App Inventor ficam armazenados em servidores na Internet. O App Inventor também disponibiliza um emulador para realização de testes dos aplicativos, como apresentado na Figura 31 (APPINVENTOR, 2011). Figura 31 App Inventor Fonte: Adaptada de AppInventor (2011)

38 Figura 32 App Invnetor Designer Fonte: (APPIVENTOR, 2011) O App Inventor Designer é composto por componentes, que são utilizados para desenvolver a interface gráfica dos aplicativos. Esses componentes são divididos em grupos que são: Basic, Media, Animation, Social, Sensor, Screen Arrangement, LEGO MINDSTORMS, Others e Not Ready for Prime Time, como demonstrado na Figura 32. As tabelas a seguir descrevem os componentes de cada grupo. Tabela 4 Componentes App Inventor - Basic Nome Descrição Button é um componente que os usuários clicam para executar uma função no aplicativo. Canvas é um componente sensível ao toque onde desenhos podem ser feitos à mão livre. CheckBox é um componente que captura o toque do usuário e executa uma função quando é selecionado. Clock é um componente que determina um intervalo de tempo para executar funções. Também é utilizado para manipular variáveis de tempo. Image é um componente utilizado para exibir na tela uma determinada imagem. Label é um componente utilizado para exibir um texto. ListPicker é um componente que quando clicado exibe um lista com opções que podem ser selecionadas pelo usuário. TextBox é um componente que permite a digitação de um texto dentro de um espaço denominado caixa de texto.

PasswordTextBox é um componente semelhante ao TextBox, porém exibe um caractere especifico para não exibir os textos digitados. TinyDB é um componente que permite o armazenamento de dados que estarão disponíveis toda vez que o aplicativo é inicializados. O TinyDB é um componente que não visível na tela do aplicativo. Screen é um componente que não aparece na paleta como os outros Screen componentes, mas é inserido automaticamente no projeto. Cada projeto tem uma tela, chamada de screen1. Esse nome não pode ser mudado. Fonte: (APPIVENTOR, 2011) Tabela 5 Componentes App Inventor - Media Nome Descrição Camera é um componente que permite tirar uma foto utilizando a câmera do dispositivo. ImagePicker é um componente que quando clicado exibe um lista de imagens, presentes em uma galeria de imagens, que podem ser selecionadas pelo usuário. Player é um componente utilizado para tocar um arquivo de áudio ou vídeo. Também usado para vibrar o telefone. Componente não visível na tela do aplicativo. Sound é um componente utilizado para tocar um arquivo de áudio ou para vibrar o telefone. Sendo seu uso recomendado apenas para curtos arquivos de áudio. Componente não visível na tela do aplicativo. 39 VideoPlayer é um componente que permite a execução de um arquivo de vídeo. Esse componente permite que opções de execução vídeo sejam controladas dentro do aplicativo. Fonte: (APPIVENTOR, 2011) Tabela 6 Componentes App Inventor - Animation Nome Descrição Ball é um componente específico de objeto animado, que deve estar contido dentro de um componente Canvas, reage ao toque na tela e se movimenta de acordo com suas propriedades. ImageSprite é um componente semelhante ao componente Ball, tendo como única diferença a possibilidade de se atribuir qualquer imagem a esse componente. Fonte: (APPIVENTOR, 2011)

40 Tabela 7 Componentes App Inventor Social Nome Descrição ContactPicker é um componente que exibe a lista de contatos do Android, permitindo obter os valores de nome, endereço de e-mail ou imagem de um contato. EmailPicker é um componente do tipo TextBox que exibe uma lista de e-mail dos contatos Android conforme o usuário vai digitando o texto. PhoneCall é um componente que permite discar para um telefone e realizar uma chamada. Esse é um componente não visível. PhoneNumberPicker é um componente que permite aos usuários escolher um número de telefone a partir de uma lista de números de contatos do Android. Texting é um componente que permite aos usuários enviar e receber mensagens de texto. Esse é um componente não visível. Twitter é um componente que permite aos usuários interagir com o Twitter. Esse é um componente não visível. Fonte: (APPIVENTOR, 2011) Tabela 8 Componentes App Inventor - Sensor Nome Descrição AccelerometerSensor é um componente utilizado para interagir com a funcionalidade acelerômetro do dispositivo Android, reconhece movimento realizados com o dispositivo. Esse é um componente não visível. LocationSensor é um componente que permite obter a localização do dispositivo Android, usando GPS, se disponível, ou por métodos alternativos, tais como torres de celular ou redes sem fio. Esse é um componente não visível. OrientationSensor é um componente que permite determinar a orientação espacial do dispositivo. Esse é um componente não visível. Fonte: (APPIVENTOR, 2011) Tabela 9 Componentes App Inventor - Screen Arrangement Nome Descrição HorizontalArrangement é um componente utilizado para exibir outros componentes alinhados a partir da esquerda para a direita. Esse é um componente não visível. TableArrangement é um componente utilizado para exibir outros componentes alinhados de forma tabular. É um componente não visível. VerticalArrangement é um componente utilizado para exibir outros componentes alinhados de cima para baixo Fonte: (APPIVENTOR, 2011)

41 Tabela 10 Componentes App Inventor - Other Nome Descrição ActivityStarter é um componente utilizado para executar outros aplicativos a partir do aplicativo. Esse é um componente não visível. BarcodeScanner é um componente utilizado para executar o aplicativo BarcodeScanner, que tem a função de ler código de barras utilizando a câmera do dispositivo. Esse aplicativo está disponível no Android Market. BluetoothClient é um componente utilizado para executar a funcionalidade Bluetooth como cliente. Esse é um componente não visível. BluetoothServer é um componente utilizado para executar a funcionalidade Bluetooth como servidor. Esse é um componente não visível. Notifier é um componente utilizado para exibir alertas na tela do dispositivo e também para registrar informações de erro, permitindo a depuração do aplicativo. Esse é um componente não visível. SpeechRecognizer é um componente utilizado para o reconhecimento de voz, que permite converter som em texto, utiliza o recurso de reconhecimento de fala do Android, que não está disponível para todas as línguas. TextToSpeech é utilizado para reproduzir na forma de áudio uma informação textual. Esse componente só funciona no dispositivo se estiver instalado o aplicativo TTS Extended Service desenvolvido pelo Eyes-Free Project. TinyWebDB é um componente que se comunica com um serviço Web para armazenar e recuperar informações. Esse é um componente não visível. Web é um componente que se comunica com um serviço Web para armazenar e recuperar informações através de solicitações por HTTP GET ou POST. Fonte: (APPIVENTOR, 2011) Tabela 11 Componentes App Inventor Not ready for prime time Nome Descrição FusiontablesControl é um componente utilizado para integrar ao aplicativo o serviço Google Fusion Tables, que permite armazenar, compartilhar, consultar e visualizar tabelas de dados usando o Fusion Tables SQL API. GameClient é um componente utilizado para se comunicar com servidores de jogos on-line para apoiar a implementação de jogos multiplayer. SoundRecorder é um componente utilizado para gravação de áudio. Voting é um componente utilizado para se comunicar com um serviço Web de voto, que recebe uma cédula e envia de volta os votos dos usuários. WebViewer é um componente utilizado para visualização de páginas Web. Fonte: (APPIVENTOR, 2011)

42 Todos os componentes citados anteriormente possuem propriedades, eventos e métodos que podem sem programados por blocos, através da ferramenta App Inventor Block Editor, como apresentado na Figura 33 (APPIVENTOR, 2011). Figura 33 App Inventor Blocks Editor Fonte: (APPINVENTOR, 2011)

3- APLICAÇÃO MÓVEL DE GEOPOSICIONAMENTO PARA O SISTEMA DE TRANSPORTE PÚBLICO O desenvolvimento dessa aplicação está dividida em três partes, e suas implementações estão descritas nesse capítulo. Essa aplicação foi desenvolvida utilizando o App Inventor, por ser uma tecnologia que já implementa diversas funcionalidades dos dispositivos móveis, importantes para o desenvolvimento de uma aplicação móvel de geoposicionamento. 3.1- Módulo Usuário Essa seção descreve o módulo da aplicação utilizado pelos usuários, o seu funcionamento e implementação. 3.1.1- Funcionamento Ao carregar a aplicação, a busca da localização geográfica do dispositivo já é inicializada, como demonstrado na Figura 34. Figura 34 Inicialização da Aplicação 43

44 Quando a localização geográfica é obtida, as informações do local juntamente com a coordenada geográfica e os botões, mostrar minha localização e mostrar linhas de ônibus, são exibidos, como apresentado na Figura 35. Figura 35 Localização Geográfica Obtida Se o usuário clicar no botão mostrar minha localização, é executado o navegador web, que exibe no mapa uma representação gráfica sobre a posição geográfica obtida, como demonstrado na Figura 36. Figura 36 Visualização da Localização Geográfica

45 Além do navegador web, são exibidos dois botões, o botão OK, que tem a função de confirmar a posição geográfica obtida, e o botão Melhorar Localização. O botão Melhorar Localização tem a função de forçar a aplicação a buscar a localização geográfica utilizando o sensor GPS, caso contido no dispositivo móvel. Se a localização obtida anteriormente não esteja de acordo com a localização real, o usuário deve clicar nesse botão para que um novo processo de localização geográfica seja iniciado, como apresentado na Figura 37. Figura 37 Localização Geográfica por GPS Como se pode observar, após clicar no botão Melhorar Localização, a aplicação exibe a mensagem de melhorando localização e na área de notificação do dispositivo é exibido um ícone no formato de antena, que corresponde à utilização do receptor GPS do dispositivo móvel. Obtendo novamente a localização geográfica, as informações da mesma são exibidas na tela. A aplicação exibe novamente o botão mostrar minha localização e o botão mostrar linhas de ônibus, que permitem respectivamente, visualizar a localização geográfica em um mapa ou as linhas de ônibus disponíveis.

46 A Figura 38 apresenta as informações da localização geográfica obtida pelo GPS. Figura 38 - Localização obtida por GPS Ao clicar no botão mostrar linhas de ônibus, é exibida uma lista contendo as linhas de ônibus que fazem parte do serviço de transporte público. Os itens dessa lista são compostos de número e nome da linha, como mostrado na Figura 39. Figura 39 Lista de Linhas de Ônibus

47 Após selecionar uma linha, o usuário deve informar o sentindo desejado, escolhendo uma das opções que são exibidas na tela, como demonstrado na Figura 40. Figura 40 Destino das Linhas de Ônibus Ao selecionar um destino, é exibido o botão OK, que tem como função confirmar a escolha de destino feita pelo usuário, como apresentado na Figura 41. Figura 41 Seleção do destino da linha de ônibus

48 Ao clicar no botão OK, as informações de linha e sentido selecionados pelo usuário são enviadas ao servidor web, e a localização geográfica do ônibus, correspondente a essas informações, é procurada no banco de dados, como mostrado na Figura 42. Figura 42 Busca da localização geográfica do ônibus Quando a informação é encontrada no banco de dados do servidor web, as coordenadas geográficas do ônibus são exibidas na tela, como demonstrado na Figura 43. Figura 43 Localização do ônibus

49 Juntamente com essas informações, é exibido o botão exibir tempo e distância, que tem a função de chamar o serviço de mapas do Google, que calculará a distância e o tempo aproximado entre os pontos e exibirá a opção de mostrar a rota no mapa, como apresentado na Figura 44. Figura 44 Cálculo de tempo e distância Como podemos ver na Figura 45, são exibidos os logradouros dos pontos, juntamente com a distância e o tempo aproximado entre eles. Ao clicar na opção mostrar no mapa, um mapa é exibido mostrando a rota utilizada entre os pontos, como mostrado na Figura 45. Figura 45 Mapa exibindo rota entre os pontos

50 3.1.2- Implementação Para o desenvolvimento desse módulo foram utilizados os componentes descritos na tabela a seguir. Tabela 12 Componentes do módulo usuário Nome Tipo Função Screen1 Screen Tela da aplicação quadrolocalizacaousuario HorizontalArrangement Alinhar componentes horizontalmente quadrointernolocalizacaousuario VerticalArrangement Alinhar componentes verticalmente labellocalizaousuario Label Exibir texto Localizaçao Atual labelenderecoatualusuario Label Exibir o endereço da geolocalização quadrolocalizacaousuariogps HorizontalArrangement Alinhar componentes horizontalmente labelgpsusuario Label Exibir texto GPS labellatitudeatualusuario Label Exibir a latitude da geolocalização labelvirgulausuario Label Exibir texto, entre latitude e longitude labellongitudeatualusuario Label Exibir a longitude da geolocalização botaominhalocalizacaousuario Button Mostrar geolocalização em um mapa quadrovisualizadorweb VerticalArrangement Alinhar componentes verticalmente visualizadorweb WebViewer Exibir página com mapa da geolocalização quadrointernovisualizadorweb HorizontalArrangement Alinhar componentes horizontalmente botaovisualizadorwebok Button Confirmar geolocalização botaovisualizadorwebmelhorar Button Obter geolocalização por receptor GPS quadrolinhasonibus VerticalArrangement Alinhar componentes verticalmente botaolistalinhasonibus ListPicker Exibir lista de linhas de ônibus quadrointernolinhasonibus HorizontalArrangement Alinhar componentes horizontalmente quadrodestinoonibus VerticalArrangement Alinhar componentes verticalmente labellinhaselecionada Label Exibir a linha selecionada quadrointernodestinolinhasonibus VerticalArrangement Alinhar componentes verticalmente labelselecionardestino Label Exibir texto Selecionar destino opcaodestinolinhasonibus1 CheckBox Caixa de seleção de destino opcaodestinolinhasonibus2 CheckBox Caixa de seleção de destino labelselecaolinhas Label Armazenar informação da linha selecionada botaooklinhasonibus Button Buscar linha selecionada no servidor web quadrolocalizacaoonibus VerticalArrangement Alinhar componentes verticalmente labellocalizacaoonibus Label Exibir texto Localização do Ônibus labelaguardelocalizaoonibus Label Exibir texto Aguarde... quadrointernolocalizacaoonibus HorizontalArrangement Alinhar componentes horizontalmente labelgpslocalizacaoonibus Label Exibir texto GPS labelcoordenadaslocalizacaoonibus Label Exibir latitude e longitude do ônibus

botaoexibirdistanciatempo Button Calcular Tempo e Distância entre os pontos sensorlocalizao LocationSensor Obter geolocalização somnotificacao Sound Reproduzir som ao obter geolocalização TinyWebDB1 TinyWebDB Armazenar/Obter dados no servidor Web ActivityStarter1 ActivityStarter Executar aplicativo Google Maps 51 As propriedades, eventos e métodos dos componentes utilizados nessa aplicação foram implementos com os blocos descritos abaixo. Ao iniciar a aplicação, a busca pela localização geográfica já é inicializada. A implementação dessa função é feita ao habilitar o componente sensorlocalização na inicialização do componente Screen1, como é mostrado na Figura 46. Figura 46 Bloco Screen1.Initialize Ao ser habilitado, o sensor de localização inicia a busca da localização geográfica, e quando as informações de geolocalização são encontradas ou alteradas, o bloco LocationChanged do componente sensorlocalização é executado. Figura 47 Bloco sensorlocalizacao.locationchanged

52 O bloco exibido na Figura 47 atribui às informações da localização geográfica aos componentes do tipo Label, que as exibem na tela. A visualização dos botões Mostrar Minha Localização e Mostrar Linhas de Ônibus também é implementada nesse bloco, que é responsável também por desabilitar o componente de sensor de localização. A Figura 48 mostra o bloco que é executado quando o usuário clica no botão Mostrar Minha Localização. Esse bloco envia as informações ao componente visualizadorweb, que é responsável por exibir o mapa com a geolocalização do usuário. A visualização dos botões OK e Melhorar Localização também é implementada nesse bloco. Figura 48 Bloco botaominhalocalizacaousuario.click Ao clicar no botão OK abaixo do componente visualizadorweb, o usuário está confirmando a informação da geolocalização obtida, habilitado o botão que permite a visualização das linhas de ônibus. Essa implementação é feita no bloco botaovisualizadorwebok.click, como mostra a Figura 49. Caso o usuário não confirme a localização geográfica obtida, ele deverá clicar no botão Melhorar localização, é executará o bloco botaovisualizadorwebmelhorar.click, esse bloco tem a função de exibir na tela que a posição geográfica será obtida novamente, além de determinar que a geolocalização deverá ser provida pelo receptor GPS, essa implementação é mostrada na Figura 50. Ao obter a localização geográfica, o componente sensorlocalização vai detectar uma alteração nas informações de localização e o bloco sensorlocalizao.locationchanged será novamente executado.

53 Figura 49 Bloco botaovisualizadorwebok.click Figura 50 Bloco botaovisualizadorwebmelhorar.click

54 A Figura 51 mostra o bloco botaolistalinhasonibus.afterpicking, que é executado após o usuário selecionar uma opção na lista de linhas de ônibus. Figura 51 Bloco botaolistalinhasonibus.afterpicking A função desse bloco é dividir a informação da linha selecionada em três partes. A primeira parte será atribuída ao componente labellinhaselecionada, para ser exibir na tela a informação da linha selecionada. As outras partes contêm informações relacionadas aos destinos da linha selecionada. A segunda parte é atribuída a propriedade Text do componente OpcaoDestinoLinhasOnibus1. A terceira parte é atribuída a propriedade Text do componente OpcaoDestinoLinhasOnibus2. O estado inicial dos dois componentes é atribuído como não selecionado. Ao selecionar o componente OpcaoDestinoLinhasOnibus1, o usuário altera o estado desse componente para selecionado, essa alteração executa o bloco opcaodestinolinhasonibus1.changed, esse bloco atribuí a propriedade Text do

55 componente labelselecaolinhasonibus as informações da linha selecionada pelo usuário, como demonstrado na Figura 52. Figura 52 Bloco opcaodestinolinhasonibus1.changed Se selecionar o componente OpcaoDestinoLinhasOnibus2, o usuário altera o estado desse componente para selecionado, essa alteração executa o bloco opcaodestinolinhasonibus2.changed, esse bloco atribui a propriedade Text do componente labelselecaolinhasonibus as informações da linha selecionada pelo usuário, como demonstrado na Figura 53. Figura 53 - Bloco opcaodestinolinhasonibus2.changed Ao selecionar qualquer um dos dois componentes citados acima, o usuário terá exibido na tela o botão OK.

56 Ao clicar nesse botão, o usuário confirma a seleção de destino e é executado o bloco botaooklinhasonibus.click. Figura 54 Bloco botaooklinhasonibus.click Conforme mostrado na Figura 54, a função desse bloco é buscar no servidor Web as informações de geolocalização do ônibus que pertence a linha selecionada. Ao receber alguma informação do servidor Web, o componente TinyWebDB1 executa o método GotValue. Esse método armazena os valores obtidos do servidor web em variáveis, o valor da variável que contém as informações de geolocalização é atribuído a propriedade Text do componente labelcoordenadaslocalizacaoonibus, que exibirá essas informações na tela da aplicação. O código desse bloco é mostrado na Figura 55. Figura 55 Bloco TinyWebDB1.GotValue Ao obter a geolocalização do ônibus, será exibido o botão Exibir Tempo e Distância, que executa o bloco botaoexibirdistanciatempolocalizacaoonibus.click quando clicado. A função desse bloco é passar os parâmetros necessários para que o cálculo de tempo e distância seja realizado pela aplicação Google Maps. A execução da aplicação Google Maps é realizada pelo componente ActivityStarter1, como demonstrado na Figura 56.

57 Figura 56 Bloco botaoexibirdistanciatempolocalizacaoonibus.click 3.2- Módulo Ônibus Essa seção descreve o módulo da aplicação utilizado nos ônibus, o seu funcionamento e implementação. 3.2.1- Funcionamento Após iniciar a aplicação, o motorista ou cobrador, que são os usuários desse módulo, devem inserir o número do veículo e clicar no botão OK, como demonstrado na Figura 57. Figura 57 Número do ônibus Após clicar no botão, o usuário terá a opção de alterar o valor digitado ou selecionar a linha que corresponde a aquele ônibus, como mostrado na Figura 58.

58 Figura 58 Opções número do ônibus Caso seja clicado no botão alterar, o campo número do ônibus é habilitado para que possa ser alterado o valor digitado, como apresentado na Figura 59. Figura 59 Clicando no botão alterar Figura 60 Alterando número do ônibus

59 Alterado o valor do número de ônibus e clicado novamente o botão OK, as opções de alterar e selecionar linha são novamente habilitadas, como demonstrado na Figura 61. Após clicar no botão Selecionar Linha, é exibida uma lista contento as linhas de ônibus disponíveis, como mostrado na Figura 62. Figura 61 Clicando no botão Selecionar Linha Figura 62 Lista de linha de ônibus Selecionada uma linha de ônibus, a informação é exibida na tela juntamente com as opções de destino daquela linha, como apresentado na Figura 63.

60 Figura 63 Destinos da linha selecionada Após selecionar o destino desejado, é habilitado o botão OK para confirmar a seleção, como mostrado na Figura 64. Figura 64 Confirmar seleção de destino

61 Confirmada a seleção de destino, é exibido na tela o botão Iniciar Registros, que tem como finalidade ativar o componente sensorlocalizacao, como demonstrado na Figura 65. Figura 65 Botão Iniciar Registros Com o componente sensorlocalizacao ativado, a geolocalização do dispositivo móvel já começa a ser obtida, como demonstrado na Figura 66. A cada alteração da geolocalização, a informação é armazenada no servidor web. Figura 66 Geolocalização módulo ônibus

62 3.2.2- Implementação Para o desenvolvimento desse módulo foram utilizados os componentes descritos na tabela a seguir. Tabela 13 Componentes do módulo ônibus Nome Tipo Função Screen1 Screen Tela da aplicação quadronumeroonibus VerticalArrangement Alinhar componentes verticalmente labelnumeroonibus Label Exibir texto Número do Ônibus quadrointernonumeroonibus HorizontalArrangement Alinhar componentes horizontalmente caixatextonumeroonibus TextBox Caixa de texto de número do ônibus botaooknumeroonibus Button Confirmar número de ônibus digitado botaoalterarnumeroonibus Button Alterar número de ônibus digitado quadroselecionarlinha VerticalArrangement Alinhar componentes verticalmente botaolistaselecionarlinha ListPicker Exibir lista de linhas de ônibus quadroselecionarlinhadestinos VerticalArrangement Alinhar componentes verticalmente labelselecionarlinha Label Exibir texto Linha Selecionada labelselecionarlinhaescolha Label Exibir a linha selecionada opcaodestinoselecionarlinha1 CheckBox Caixa de seleção de destino opcaodestinoselecionarlinha2 CheckBox Caixa de seleção de destino quadrointernoselecionarlinhadestinos HorizontalArrangement Alinhar componentes horizontalmente botaookselecionarlinha Button Confirmar linha selecionada quadrogpsonibus VerticalArrangement Alinhar componentes verticalmente botaogpsonibusregistrar Button Iniciar sensor de localização labelgpsonibus Label Exibir texto GPS quadrointernogpsonibuslatitude HorizontalArrangement Alinhar componentes horizontalmente labelgpsonibuslatitude Label Exibir texto Latitude labelinternogpsonibuscoordenadalatitude Label Exibir a latitude da geolocalização quadrointernogpsonibuslongitude HorizontalArrangement Alinhar componentes horizontalmente labelgpsonibuslongitude Label Exibir texto Longitude labelinternogpsonibuscoordenadalongitude Label Exibir a longitude da geolocalização sensorlocalizacao LocationSensor Obter geolocalização TinyWebDB1 TinyWebDB Armazenar/Obter dados no servidor Web As propriedades, eventos e métodos dos componentes utilizados nessa aplicação foram implementos com os blocos descritos abaixo. Ao clicar no botão OK, após a digitação do número do ônibus, o bloco botaooknumeroonibus.click é executado.

63 A função desse bloco é verificar se o campo destinado à digitação do número do ônibus não está vazio e habilitar os botões para a seleção de uma linha de ônibus ou alteração do valor digitado, como demonstrado na Figura 67. Figura 67 Bloco botaooknumeroonibus.click Caso seja clicado no botão Alterar, o bloco botaoalterarnumeroonibus.click é executado, fazendo com que o valor de número de ônibus digitado seja apagado e desabilitando a opção de selecionar uma linha de ônibus, como mostrado na Figura 68. Figura 68 Bloco botaoalterarnumeroonibus.click A Figura 69 mostra o bloco botaolistalinhasonibus.afterpicking, que é executado após o ser selecionada uma opção na lista de linhas de ônibus.

64 A função desse bloco é dividir a informação da linha selecionada em três partes. A primeira parte será atribuída ao componente labellinhaselecionada, para ser exibida na tela a informação da linha selecionada. As outras partes contêm informações relacionadas aos destinos da linha selecionada. A segunda parte é atribuída a propriedade Text do componente OpcaoDestinoLinhasOnibus1. A terceira parte é atribuída a propriedade Text do componente OpcaoDestinoLinhasOnibus2. O estado inicial dos dois componentes é definido como não selecionado. Figura 69 Bloco botaolistalinhasonibus.afterpicking Ao selecionar o componente OpcaoDestinoLinhasOnibus1, o usuário altera o estado desse componente para selecionado, essa alteração executa o bloco opcaodestinolinhasonibus1.changed, esse bloco atribuí a propriedade Text do componente labelselecaolinhasonibus as informações da linha selecionada, como mostrado na Figura 70. Ao selecionar o componente OpcaoDestinoLinhasOnibus2, o usuário altera o estado desse componente para selecionado, essa alteração executa o bloco opcaodestinolinhasonibus2.changed, esse bloco atribuí a propriedade Text do

65 componente labelselecaolinhasonibus as informações da linha selecionada, como mostrado na Figura 71. Figura 70 Bloco opcaodestinolinhasonibus1.changed Figura 71 - Bloco opcaodestinolinhasonibus2.changed

66 Depois de confirmar o destino, o botão Iniciar Registro é exibido na tela, quando clicado, o bloco botaogpsonibusregistrar.click é iniciado. Esse bloco tem a função de habilitar o componente sensorlocalizacao, que é responsável por obter a localização geográfica, como demonstrado na Figura 72. Figura 72 Bloco botaogpsonibusregistrar.click Ao ser habilitado, o sensor de localização já inicia a busca da localização geográfica, e quando a informação de geolocalização é alterada, o bloco LocationChanged do componente sensorlocalização é executado, como apresentado na Figura 73. Figura 73 Bloco sensorlocalizacao.locationchanged O bloco acima atribui as informações da localização geográfica obtida aos componentes do tipo Label, que as exibem na tela. A principal função desse bloco é armazenar as informações de geolocalização no servidor Web, essa implementação é realizada no método StoreValue do componente TinyWebDB1.

67 3.3- Servidor Web Essa seção descreve o servidor Web, o seu funcionamento e implementação. 3.3.1- Funcionamento O servidor Web é responsável por armazenar e transmitir as informações de geolocalização do módulo ônibus. As informações são armazenadas em uma tabela, composta por três colunas: ID, Geo e Criado. A coluna ID armazena as informações da linha correspondente ao veículo onde está funcionando o módulo ônibus. A coluna Geo armazena as informações de geolocalização, esse campo é formado pelos valores de latitude e longitude separados por uma vírgula. A coluna Criado armazena as informações de data e hora em que o registro foi criado, como demonstrado na Figura 74. Figura 74 Servidor Web

68 3.3.2- Implementação Para aplicativos desenvolvidos pelo App Inventor é disponibilizado um servidor Web, armazenado no endereço http://appinvtinywebdb.appspot.com, esse servidor é destinado apenas para fins de testes de protótipos. Para distribuir um aplicativo para usuários reais, é necessário criar um banco de dados específico para a aplicação. No site http://appinventorapi.com/program-an-api-python/, existem instruções de como criar um banco de dados Web, e disponibiliza códigos-fontes para criação desse banco, que deve ser compatível com aplicativos criados pelo App Inventor. A hospedagem do banco de dados web é feito através do Google App Engine, um serviço de computação em nuvem, que armazena gratuitamente aplicativos web, permitindo a utilização da infraestrutura do Google. (WOLBER, 2011) (GOOGLEAPPENGINE, 2011). O códigofonte do banco de dados web é apresentado no Anexo 1. 3.4- Dificuldades Encontradas Durante o desenvolvimento desse trabalho, algumas dificuldades foram encontradas. Essa seção aborta essas dificuldades e as formas como elas foram solucionadas. A primeira dificuldade encontrada foi com a obtenção errada da localização geográfica. Em alguns casos, utilizando a localização por CELL-ID, a aplicação definia como geolocalização lugares completamente distantes do local real. Para resolver esse problema, foi inserido um botão na aplicação que força a busca da localização geográfica utilizando o receptor GPS, caso disponível no dispositivo móvel, como mostrado na Figura 75. Figura 75 Localização Geográfica por GPS

69 Outra dificuldade encontrada foi com a rota utilizada pelo Google Maps para calcular o tempo e a distância entre os pontos. Por padrão, o programa sempre utiliza a rota mais rápida. Durante os testes, o percurso utilizava a Rodovia Presidente Dutra, porém, o serviço de transporte público de São José dos Campos não utiliza a rodovia nos seus itinerários. A solução desse problema foi a utilização de um parâmetro do Google Maps que define as rotas evitando rodovias, como mostrado na Figura 76. Figura 76 Parâmetro Google Maps 3.5- Exemplo de utilização Essa seção apresenta os testes executados nos módulos que fazem parte de aplicação. O teste de módulo ônibus foi realizado utilizando um trajeto fictício da linha 205 Eugênio de Melo Galo Branco, com sentido a Eugênio de Melo. Na Avenida Fortaleza, altura do número 409, no Parque Industrial, São José dos Campos, foi obtida a geolocalização: -23.22942, -45.90494, conforme mostrado na Figura 77. O teste do módulo usuário foi executado na Rua Graúna, altura do número 200, na Vila Tatetuba, São José dos Campos, obtendo a localização geográfica: -23.18319, -45.85307, conforme exibido na Figura 78.

70 O teste do servidor foi realizado com o registro feito no teste do módulo ônibus, e com a busca realizada pelo módulo usuário, conforme Figura 79. Figura 77 Teste do módulo ônibus Figura 78 Teste do módulo usuário Figura 79 Teste Servidor Web

71 Também foi realizado um teste com o aplicativo Google Maps, que executa o cálculo de tempo e distância entre os pontos. Após clicar no botão Exibir Tempo e Distância no módulo usuário, o aplicativo Google Maps foi executado, exibindo uma tela com as informações de tempo e distância entre os pontos, como demonstrado na Figura 80. Figura 80 Teste cálculo Google Maps Juntamente com as informações de tempo e distância, é provida ao usuário a possibilidade de visualizar a rota utilizada entre os pontos em um mapa. O teste aplicado nessa fase mostra que o trajeto não utiliza a Rodovia Presidente Dutra, como mostrado na Figura 81. Figura 81 Teste trajeto no Google Maps

72 Também houve necessidade de se realizar teste na aplicação quando o destino da linha do módulo ônibus é alterado, a informação do sentido anterior deve ser apagada do banco de dados, para que o servidor web não forneça uma informação errado ao usuário. Como podemos observar na Figura 82, o módulo ônibus está registrando a localização geográfica sentido Vila Tesouro. Figura 82 Módulo ônibus salvando no servidor web Ao chegar ao ponto final daquele destino, o módulo precisa alterar o destino para iniciar o novo trajeto, porém as informações do trajeto antigo não podem estar disponíveis no servidor web. A Figura 83 mostra o registro feito no servidor web, da localização geográfica do veículo com destino ao Jardim Aquarius. Figura 83 Novo registro no servidor web

73 Para concluir o teste, realizamos uma busca com o módulo usuário, das coordenadas do veículo com destino a Vila Tesouro. Figura 84 Linha não encontrada Como mostrado na Figura 84, o módulo usuário não encontra nenhuma localização geográfica de um ônibus da linha 215 sentido Vila Tesouro.