SlideShare uma empresa Scribd logo
1 de 48
Baixar para ler offline
Pontif´ıcia Universidade Cat´olica de Minas Gerais
Bacharelado em Sistemas de Informa¸c˜ao
Trabalho de Conclus˜ao de Curso
Carro Cheio: Um Aplicativo Para
Forma¸c˜ao de Caronas em Redes Sociais
Como Forma de Favorecer a Mobilidade
Urbana em Belo Horizonte
Fernando de Figueiredo Torres
Belo Horizonte
Dezembro 2010
Fernando de Figueiredo Torres
Carro Cheio: Um Aplicativo Para
Forma¸c˜ao de Caronas em Redes Sociais
Como Forma de Favorecer a Mobilidade
Urbana em Belo Horizonte
Trabalho apresentado ao Instituto de
Ciˆencias Exatas e Inform´atica da Pontif´ıcia
Universidade Cat´olica de Minas Gerais como
requisito parcial a obten¸c˜ao da gradua¸c˜ao
em Bacharelado em Sistemas de Informa¸c˜ao
Orientador:
Fabio Tirelo
Pontif´ıcia Universidade Cat´olica de Minas Gerais
Instituto de Ciˆencias Exatas e Inform´atica
Belo Horizonte
Dezembro 2010
Trabalho de Conclus˜ao de Curso sob o t´ıtulo “Carro Cheio: Um Aplicativo Para Forma¸c˜ao
de Caronas em Redes Sociais Como Forma de Favorecer a Mobilidade Urbana em Belo
Horizonte”, do Instituto de Ciˆencias Exatas e Inform´atica da Pontif´ıcia Universidade
Cat´olica de Minas Gerais, Belo Horizonte, dezembro 2010.
Prof. Fabio Tirelo
Orientador
Pontif´ıcia Universidade Cat´olica de Minas Gerais
Instituto de Ciˆencias Exatas e Inform´atica
Prof. Paulo C´esar do Amaral Pereira
Examinador
Pontif´ıcia Universidade Cat´olica de Minas Gerais
Instituto de Ciˆencias Exatas e Inform´atica
Prof. Zenilton Kleber Gon¸calves do Patroc´ınio
J´unior
Examinador
Pontif´ıcia Universidade Cat´olica de Minas Gerais
Instituto de Ciˆencias Exatas e Inform´atica
Acho que nossas chances n˜ao parecem boas hoje, mas a ´unica forma de falhar, para
mim, ´e apenas n˜ao tentando.
Gary Kasparov
Agradecimentos
A realiza¸c˜ao deste trabalho s´o foi poss´ıvel devido `a ajuda que tive, direta e indireta-
mente, de v´arias pessoas, ao longo dessa jornada.
No in´ıcio, tudo come¸cou com uma id´eia, enviei para o professor Fabio Tirelo, que
prontamente se interessou em orientar o meu trabalho, e ao qual agrade¸co pela orienta¸c˜ao,
incentivo, e comprometimento demonstrado em nossas reuni˜oes.
Durante as centenas de horas investidas nesta pesquisa, contei com a excepcional ajuda
do Google, que me ofereceu condi¸c˜oes de encontrar todas as informa¸c˜oes que precisei,
al´em de disponibilizar o uso de sua API do Google Maps, para toda a comunidade de
desenvolvedores ao redor do Mundo.
Muitos dos problemas que encontrei durante o aprendizado da API do Google Maps,
s´o foram solucionados gra¸cas `a boa vontade de Mark Williams e Bill Chadwick, que um
dia disponibilizaram seus experimentos na Internet, servindo de ´otimos tutoriais.
Agrade¸co tamb´em `aqueles que, por vezes, me proporcionaram momentos de distra¸c˜ao,
para a renova¸c˜ao das id´eias. Aos meus amigos, obrigado por me tirarem da frente do
computador em alguns (poucos, ´e verdade) s´abados.
Resumo
A mobilidade urbana ´e uma importante ´area de estudos da administra¸c˜ao p´ublica
cujo papel ´e proporcionar o irrestrito deslocamento de pessoas e ve´ıculos no espa¸co da
cidade. A necessidade de pol´ıticas de mobilidade urbana aumenta `a medida que aumenta,
tamb´em, a disputa pelo espa¸co urbano, decorrente do crescimento anual da frota de
ve´ıculos. Entretanto, ´e fundamental a iniciativa e o comprometimento da popula¸c˜ao para o
sucesso desse processo. Diante disso, este trabalho estuda a pr´atica do compartilhamento
do carro, ou as “caronas”, com o objetivo de contribuir para a diminui¸c˜ao de ve´ıculos
circulando nas vias da cidade, bem como a diminui¸c˜ao de pessoas utilizando o transporte
coletivo. A pesquisa realizada se concentrou em dados da cidade de Belo Horizonte,
Minas Gerais. Para atingir os objetivos deste trabalho, foi desenvolvido o “Carro Cheio”
– um aplicativo para a rede social Orkut – que possibilita aos seus usu´arios divulgarem
e encontrarem vagas de carona. Atrav´es do Carro Cheio, os usu´arios do Orkut podem
combinar caronas com pessoas com as quais j´a mant´em contato, sendo uma op¸c˜ao mais
segura em rela¸c˜ao aos demais sites de carona. Ainda, o Carro Cheio busca rotas com
proximidade de coordenadas geogr´aficas e utiliza informa¸c˜oes sobre as linhas de ˆonibus
de Belo Horizonte em suas respostas.
Palavras-chave: Redes sociais. Mobilidade urbana. API Opensocial. API Google Maps.
Lista de Figuras
1 Composi¸c˜ao da frota em BH, em dez. 2009 . . . . . . . . . . . . . . . . p. 12
2 Queda na velocidade do transporte p´ublico em BH, entre 2002 e 2006 . p. 13
3 Crescimento da frota em BH, entre 2002 e 2006 . . . . . . . . . . . . . p. 13
4 Presen¸ca de usu´arios brasileiros nas principais redes sociais (em milh˜oes) p. 19
5 Modelo e fluxo de dados de um aplicativo social . . . . . . . . . . . . . p. 20
6 Arquitetura da aplica¸c˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . p. 23
7 Diagrama do modelo de dados do aplicativo . . . . . . . . . . . . . . . p. 24
8 P´agina da BHTRANS com a rela¸c˜ao das linhas de ˆonibus de Belo Horizonte p. 25
9 P´agina de itiner´arios no site da BHTRANS . . . . . . . . . . . . . . . . p. 26
10 Trecho do XML de resposta do servi¸co de geocodifica¸c˜ao do Google . . p. 26
11 Diagrama de casos de uso . . . . . . . . . . . . . . . . . . . . . . . . . p. 27
12 P´agina de registro no Orkut sandbox . . . . . . . . . . . . . . . . . . . p. 28
13 Conte´udo inicial do descritor do aplicativo . . . . . . . . . . . . . . . . p. 28
14 P´agina de submiss˜ao do aplicativo . . . . . . . . . . . . . . . . . . . . . p. 29
15 P´agina de confirma¸c˜ao dos dados . . . . . . . . . . . . . . . . . . . . . p. 29
16 Processo de desenvolvimento do aplicativo . . . . . . . . . . . . . . . . p. 29
17 Tela do aplicativo: oferecer carona . . . . . . . . . . . . . . . . . . . . . p. 30
18 Tela do aplicativo: desambigua¸c˜ao de locais . . . . . . . . . . . . . . . p. 31
19 Tela do aplicativo: desenho da rota do motorista . . . . . . . . . . . . . p. 32
20 Transi¸c˜ao de estados para a modifica¸c˜ao da rota . . . . . . . . . . . . . p. 33
21 Tela do aplicativo: salvar uma nova rota . . . . . . . . . . . . . . . . . p. 33
22 Registros na tabela rota passos . . . . . . . . . . . . . . . . . . . . . p. 34
23 Representa¸c˜ao gr´afica dos dados de uma rota . . . . . . . . . . . . . . . p. 34
24 Tela do aplicativo: janela de busca de rotas . . . . . . . . . . . . . . . p. 35
25 Fluxo de dados durante a busca por rotas . . . . . . . . . . . . . . . . p. 35
26 Fun¸c˜ao de c´alculo da distˆancia linear entre dois pontos na Terra . . . . p. 36
27 Heur´ıstica de busca: cen´ario hipot´etico . . . . . . . . . . . . . . . . . . p. 36
28 Heur´ıstica de busca: primeira itera¸c˜ao . . . . . . . . . . . . . . . . . . p. 37
29 Heur´ıstica de busca: segunda itera¸c˜ao . . . . . . . . . . . . . . . . . . . p. 37
30 Heur´ıstica de busca: busca por ˆonibus . . . . . . . . . . . . . . . . . . . p. 38
31 Heur´ıstica de busca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 38
32 Tela do aplicativo: enviar pedido de carona . . . . . . . . . . . . . . . . p. 39
33 Tela do aplicativo: visualizar, aceitar e recusar pedidos . . . . . . . . . p. 39
34 Tela do aplicativo: avaliar usu´ario . . . . . . . . . . . . . . . . . . . . . p. 40
35 Rota utilizada nos testes testes . . . . . . . . . . . . . . . . . . . . . . p. 41
36 Tela do aplicativo: resultado do Teste 3 . . . . . . . . . . . . . . . . . . p. 42
37 Tela do aplicativo: resultado do Teste 4 . . . . . . . . . . . . . . . . . . p. 43
Lista de Tabelas
1 Descri¸c˜ao das tabelas do modelo de dados . . . . . . . . . . . . . . . . p. 24
2 Vis˜ao geral dos casos de uso do aplicativo . . . . . . . . . . . . . . . . p. 27
3 Parˆametros de buscas por caronas . . . . . . . . . . . . . . . . . . . . . p. 41
Lista de Abreviaturas
AJAX Asynchronous Javascript + XML.
API Application Programming Interface.
CSS Cascading Style Sheet.
DENATRAN Departamento Nacional de Trˆansito.
FTP File Transfer Protocol.
HTML Hypertext Markup Language.
HTTP Hypertext Transfer Protocol.
IBGE Instituto Brasileiro de Geografia e Estat´ıstica.
PIB Produto Interno Bruto.
XML Extensible Markup Language.
Sum´ario
1 Introdu¸c˜ao p. 12
1.1 Motiva¸c˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 14
1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 15
1.3 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 15
2 Revis˜ao da Literatura p. 17
2.1 Mobilidade Urbana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 17
2.2 Redes Sociais On-line . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 18
2.3 API Opensocial 0.8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 20
2.4 JQuery 1.2.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 21
2.5 API Javascript Google Maps 2.0 . . . . . . . . . . . . . . . . . . . . . . p. 21
2.6 Plataforma LAMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 22
3 Metodologia p. 23
3.1 Escolha das Tecnologias Apropriadas . . . . . . . . . . . . . . . . . . . p. 23
3.2 Desenho do Modelo de Dados . . . . . . . . . . . . . . . . . . . . . . . p. 24
3.3 Obten¸c˜ao dos Itiner´arios das Linhas de ˆOnibus de BH . . . . . . . . . . p. 24
3.4 Implementa¸c˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 27
3.4.1 Orkut sandbox . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 28
3.4.2 Cadastrar rotas . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 30
3.4.3 Buscar rotas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 34
3.4.3.1 Fluxo de dados da busca por rotas . . . . . . . . . . . p. 35
3.4.3.2 C´alculo da distˆancia linear entre dois pontos na Terra . p. 36
3.4.3.3 Heur´ıstica de busca por rotas . . . . . . . . . . . . . . p. 36
3.4.4 Demais Casos de Uso . . . . . . . . . . . . . . . . . . . . . . . . p. 38
4 Resultados p. 41
4.1 Prepara¸c˜ao do Ambiente de Testes . . . . . . . . . . . . . . . . . . . . p. 41
4.2 Avalia¸c˜ao dos Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . p. 42
5 Conclus˜ao p. 44
Referˆencias p. 45
12
1 Introdu¸c˜ao
A cidade de Belo Horizonte (BH), fundada em 1897, foi a primeira capital planejada
do pa´ıs, inicialmente projetada para 200 mil habitantes. Mais de um s´eculo ap´os a sua
funda¸c˜ao, a capital atingiu uma popula¸c˜ao aproximada de 2,5 milh˜oes de habitantes,
tendo o 4o. maior PIB do Brasil (IBGE, 2007).
Em rela¸c˜ao ao trˆansito, BH terminou o ano de 2009 com uma frota de 1,2 milh˜oes de
ve´ıculos, composta principalmente por autom´oveis (82%) e motocicletas (13%), conforme
mostrado na Figura 1. Esse n´umero revela uma propor¸c˜ao aproximada de um ve´ıculo
para cada dois habitantes. Para se fazer uma compara¸c˜ao, a cidade de S˜ao Paulo, cujos
problemas de trˆansito s˜ao constantemente citados na m´ıdia, possui a mesma propor¸c˜ao
(IBGE, 2007; DENATRAN, 2010).
Figura 1: Composi¸c˜ao da frota em BH, em dez. 2009
Fonte: DENATRAN, 2010
Com a facilidade cada vez maior em se adquirir um ve´ıculo, mais pessoas tˆem trocado
o uso do transporte p´ublico pelo transporte particular. A princ´ıpio, podemos imaginar
que essa troca representa ganho na qualidade de vida desses cidad˜aos. Entretanto, uma
vis˜ao mais ampla mostra que essa taxa de aumento da frota, por ser muito mais alta
que a capacidade do Estado em criar infraestruturas que a suporte, traz consequˆencias
negativas `a qualidade da mobilidade urbana e ao meio ambiente.
Um estudo, feito pela Empresa de Transportes e Trˆansito de Belo Horizonte (BH-
13
TRANS, 2008), analisou a velocidade m´edia do transporte p´ublico nos hor´arios de pico
da manh˜a e da tarde, em BH. Esse estudo mostra que entre 2002 e 2006 houve uma
queda da velocidade em 6% no pico da manh˜a, e em 4,9% no pico da tarde (Figura 2).
Considerando o mesmo per´ıodo, vˆe-se na Figura 3 o n´umero acumulado de novos ve´ıculos
adicionados `a frota na cidade por categoria. Uma an´alise das Figuras 2 e 3 produz fortes
ind´ıcios de que o crescimento da frota de autom´oveis tem grande responsabilidade na
degrada¸c˜ao da qualidade do trˆansito.
Figura 2: Queda na velocidade do transporte p´ublico em
BH, entre 2002 e 2006
Fonte: BHTRANS, 2008
Figura 3: Crescimento da frota em BH, entre 2002 e 2006
Fonte: DENATRAN, 2010
O aumento no consumo de autom´oveis n˜ao se d´a apenas pela sua utilidade como meio
de transporte. Na atualidade, o autom´ovel ´e considerado objeto de desejo e status social.
Ainda que os servi¸cos de transporte p´ublico sejam melhorados, fica dif´ıcil desestimular o
consumo e o uso do autom´ovel. Passa a ser necess´ario, ent˜ao, estimular o uso consciente
do autom´ovel particular, transformando-no em um agente em prol da mobilidade urbana
sustent´avel.
O uso consciente do autom´ovel consiste em certas medidas que, se tomadas podem
colaborar para uma melhoria na qualidade do transporte e do meio ambiente de forma
geral. Essas medidas v˜ao desde a escolha por ve´ıculos com combust´ıveis menos poluentes
at´e a mudan¸ca da vis˜ao individualista no uso do autom´ovel para uma vis˜ao coletiva. Nesse
sentido, este trabalho foca a pr´atica da carona solid´aria.
Os impactos da carona solid´aria na mobilidade urbana tendem a ser muito positivos.
Um motorista que leve pessoas a pontos compreendidos em seu trajeto, pode ajudar
a diminuir o n´umero de usu´arios do transporte p´ublico naquele dia. De forma an´aloga,
propriet´arios de autom´oveis poderiam se revezar para irem juntos ao trabalho, diminuindo
o n´umero de autom´oveis nas ruas.
Apesar de todo o benef´ıcio da carona solid´aria, quest˜oes culturais e de seguran¸ca s˜ao
barreiras a serem vencidas. Em nossa sociedade, h´a receios associados `a pr´atica da carona;
14
por exemplo, ´e comum ensinar a crian¸cas que n˜ao se deve aceitar caronas de estranhos.
Considerando-se todo o cen´ario descrito, este trabalho estudou uma poss´ıvel solu¸c˜ao
para o problema de se formar grupos de caronas, levando-se em conta as barreiras sociais e
culturais encontradas nesse processo. Al´em disso, foram analisadas as formas j´a utilizadas
para o mesmo prop´osito e suas limita¸c˜oes. A solu¸c˜ao proposta deve ser abrangente de
forma a alcan¸car o maior n´umero de pessoas em um ambiente virtual (on-line). Ainda,
deve oferecer boas alternativas para as limita¸c˜oes encontradas em outros mecanismos.
Para tanto, estudou-se o ambiente das redes sociais como ponto central da solu¸c˜ao.
1.1 Motiva¸c˜ao
Existem muitos fatores que dificultam a tarefa de encontrar e oferecer caronas. Por
meio da comunica¸c˜ao verbal direta geram-se muitos ru´ıdos, pois ´e necess´ario abordar
todos os indiv´ıduos do grupo e question´a-los sobre sua inten¸c˜ao em oferecer ou utilizar
caronas. Al´em disso, s˜ao necess´arias algumas intera¸c˜oes repetitivas entre as partes para
verificar quest˜oes de trajeto, paradas e vagas dispon´ıveis.
De outra forma, o uso de quadros de avisos em ´areas de circula¸c˜ao tamb´em apresenta
problemas. Sabe-se que as pessoas nem sempre lˆeem quadros de avisos, e nem sempre os
an´uncios disponibilizam todas as informa¸c˜oes que seriam necess´arias. Tamb´em, manter o
quadro atualizado ´e trabalhoso.
Quando se opta por listas de discuss˜ao on-line, tamb´em surgem alguns problemas.
Conversas iniciadas na lista podem acabar em conversas externas e os membros da lista
podem n˜ao saber do estado atual de cada membro com rela¸c˜ao `as suas caronas. As
pessoas geralmente n˜ao recorrem ao hist´orico de listas de discuss˜ao antes de enviar uma
mensagem. Isso gera muitas mensagens repetitivas e, com isso, muitos usu´arios tendem a
abandonar a lista devido ao grande tr´afego de e-mails em suas caixas postais.
Uma alternativa `as abordagens tradicionais consiste no uso de sites de redes de caro-
nas (BIGOO, 2010; CARONEIROS, 2010). Esses mecanismos se mostram mais eficientes
do que as formas citadas anteriormente, por´em obrigam o usu´ario a se cadastrar e utilizar
mais um site para um fim espec´ıfico. Al´em disso, pode ser que amigos que j´a se relacionem
em uma rede social, optem por entrar em sites de caronas diferentes. Considerando-se as
funcionalidades das redes de caronas dispon´ıveis atualmente, as formas como as buscas
s˜ao realizadas tamb´em podem n˜ao ser t˜ao eficientes, pois encontram caronas baseadas
nas localidades de origem e destino, sem considerar outras informa¸c˜oes como as coor-
15
denadas geogr´aficas ao longo de toda a rota do motorista e potencial passageiro. Al´em
disso, n˜ao usam informa¸c˜oes de transporte coletivo para sugerir respostas que possam ser
satisfat´orias aos seus usu´arios.
Os problemas aqui levantados nos levam a propor uma solu¸c˜ao alternativa, que se
beneficie das redes sociais j´a populares e amplamente utilizadas, agregando-lhes uma nova
funcionalidade. Com essa abordagem, espera-se manter os usu´arios em um ambiente a que
j´a estejam familiarizados, sem obrig´a-los a migrar para um novo ambiente e constru´ırem
uma nova rede social.
1.2 Objetivos
O objetivo geral deste trabalho ´e criar um meio eficiente para que indiv´ıduos possam
combinar caronas no ambiente de uma rede social, por meio do desenvolvimento de um
aplicativo integrado a esse ambiente. A rede social escolhida, nesse caso, foi o Orkut.
Espera-se que os usu´arios do Orkut adicionem o aplicativo aos seus perfis e, a partir
disso, possam interagir com outros usu´arios que tamb´em possuam o aplicativo. Dessa
maneira, ser´a poss´ıvel cadastrar viagens detalhando seus trajetos e pontos de parada.
Ser´a poss´ıvel, tamb´em encontrar caronas com base em coordenadas geogr´aficas, al´em de
poderem solicitar, aceitar ou recusar pedidos de carona. No caso de caronas realizadas,
os usu´arios poder˜ao se avaliar, atribuindo opini˜oes com rela¸c˜ao `as suas experiˆencias.
Deseja-se ainda, combinar ofertas de caronas com informa¸c˜oes do transporte p´ublico
de BH. Com isso, quando n˜ao houver rotas que passem pr´oximas ao passageiro, ser´a
poss´ıvel sugerir viagens compostas por caronas e ˆonibus.
1.3 Justificativa
Podemos associar a pr´atica de caronas `a solidariedade e confian¸ca, praticadas na
maioria das vezes entre pessoas com h´abitos semelhantes, tais como ir `a mesma faculdade
ou `a mesma regi˜ao da cidade. Portanto, caronas tˆem um potencial maior de ocorrer entre
pessoas de um mesmo grupo social.
Com base nesta id´eia, escolhemos a rede social Orkut como ambiente para a im-
planta¸c˜ao do aplicativo de caronas, uma vez que nessa rede j´a est˜ao formados la¸cos de
afinidade e confian¸ca entre seus usu´arios. Al´em disso, 72% dos brasileiros que usam redes
16
sociais (26 milh˜oes de usu´arios) est˜ao no Orkut (´EPOCA, 2010), o que o torna um dos
trˆes sites mais populares da Internet brasileira (ALEXA, 2010).
Outra justificativa para a abordagem escolhida ´e que ela pode se apresentar como uma
mudan¸ca de paradigma com rela¸c˜ao aos sites de caronas existentes. Enquanto nas outras
solu¸c˜oes “o usu´ario deve ir at´e aonde o aplicativo est´a”, nesta abordagem “o aplicativo
vai aonde o usu´ario j´a est´a”. Isso permite que o usu´ario utilize um novo recurso em um
ambiente que lhe ´e familiar.
17
2 Revis˜ao da Literatura
2.1 Mobilidade Urbana
Segundo a BHTRANS (2008), mobilidade urbana ´e o conjunto de deslocamentos de
pessoas e bens, com base nos desejos e necessidades de acesso ao espa¸co urbano, por
meio da utiliza¸c˜ao dos diversos modos de transporte. O conceito de “gerenciamento da
mobilidade” tamb´em ´e tratado por Rocha et al. (2006), como a busca de um equil´ıbrio
mais est´avel entre a oferta de infraestrutura de transportes e o atendimento adequado
da demanda por viagens (deslocamentos). Esse campo de estudos surgiu nos Estados
Unidos com a crise de energia de 1973, para mitigar problemas decorrentes da escassez
de derivados de petr´oleo (ROCHA et al., 2006 p. 4 apud BLACK, 2001).
O aumento populacional e o aumento da frota nas cidades causam uma disputa maior
pelos espa¸cos urbanos, que n˜ao crescem na mesma propor¸c˜ao. A perda de tempo, a falta
de lugar para estacionar e a irrita¸c˜ao que os congestionamentos causam s˜ao reflexos ne-
gativos do aumento da frota. Ainda, a polui¸c˜ao causada pelos ve´ıculos tamb´em aumenta,
causando danos tanto ao meio ambiente quanto a sa´ude da popula¸c˜ao.
V´arias cidades no mundo estudam pol´ıticas e a¸c˜oes para melhorias na qualidade de
vida da popula¸c˜ao por meio de uma mobilidade urbana sustent´avel. A palavra sustent´avel
aqui, extende o conceito de mobilidade urbana considerando “[...] a realiza¸c˜ao desses des-
locamentos sem comprometimento do meio ambiente, das ´areas e das atividades urbanas,
al´em do pr´oprio transporte” (BHTRANS, 2008).
Pode-se citar Londres, uma das cidades com plano de gerenciamento de mobilidade
mais difundido e consolidado, possuindo as seguintes estrat´egias: campanhas de conscien-
tiza¸c˜ao sobre viagens; ciclismo e caminhada; ped´agio urbano; ˆonibus e tramway (ˆonibus
el´etrico) gr´atis para menores de 16 anos; dirija de outra maneira (drive another way) e
zonas de baixa emiss˜ao. Para o objetivo deste trabalho, destaca-se o compartilhamento do
carro (car polling), que ´e uma das medidas compreendidas na estrat´egia “dirija de outra
18
maneira” (ROCHA et al., 2006). Tal medida permite que dois ou mais usu´arios usufruam
do conforto de um mesmo autom´ovel reduzindo o congestionamento e a polui¸c˜ao.
Recentemente, em S˜ao Paulo, foram realizadas campanhas educativas para incentivar
a “carona solid´aria”. Nessas a¸c˜oes, realizadas pela Secretaria do Meio Ambiente, moto-
ristas que viajavam sozinhos recebiam a “multa legal”, uma interven¸c˜ao l´udica feita por
monitores, atores e volunt´arios. O objetivo era fixar a id´eia da importˆancia de se usar o
ve´ıculo de forma mais consciente (GOVERNO DE S˜AO PAULO, 2008).
Em Belo Horizonte, a Prefeitura Municipal e a BHTRANS realizam o projeto PlanMob-
BH (Plano de Mobilidade Urbana de Belo Horizonte). O PlanMob-BH faz parte do pro-
cesso de planejamento da mobilidade urbana de Belo Horizonte para 2020. O objetivo
do projeto ´e promover melhor qualidade de vida e desenvolvimento da cidade, susten-
tado nos princ´ıpios de: acessbilidade, seguran¸ca, eficiˆencia, qualidade de vida, dinamismo
econˆomico, a¸c˜ao integrada e inclus˜ao social. Dentre as diretrizes que o projeto visa aten-
der, pode-se destacar: considerar o modo a p´e como priorit´ario; garantir o deslocamento
das pessoas em um transporte coletivo de qualidade; democratizar o uso do sistema vi´ario,
inclusive com medidas de restri¸c˜ao do uso do autom´ovel, quando necess´ario; construir
pol´ıticas de estacionamento e distribui¸c˜ao de mercadorias; estimular o uso de transporte
n˜ao motorizado, especialmente bicicletas; e por fim, garantir a todos, idependentemente
da capacidade de pagamento ou locomo¸c˜ao, o direito de se deslocar e usufrir da cidade
com autonomia e seguran¸ca (PLANMOB-BH, 2010).
2.2 Redes Sociais On-line
Redes sociais on-line podem ser definidas como um servi¸co Web que permite in-
div´ıduos constru´ırem um perfil p´ublico ou semi-p´ublico dentro desses sistemas, articulados
a uma lista de outros usu´arios com os quais compartilham o mesmo ambiente e algumas
conex˜oes, percorrendo suas listas de conex˜oes e outras feitas por novos usu´arios dentro do
sistema (BOYD; ELLISON, 2005).
Uma em cada sete pessoas no planeta frequenta pelo menos uma rede social na In-
ternet. As comunidades formadas por sites como Orkut, Facebook e Twitter j´a alcan¸cam
quase a soma de 1 bilh˜ao de usu´arios. Nesses ambientes virtuais, seus “habitantes” se
relacionam discutindo opini˜oes, compartilhando fotos, publicando an´uncios, jogando, e
at´e mesmo procurando novos amigos. A Figura 4 traz um panorama da distribui¸c˜ao
dos usu´arios brasileiros entre as principais redes sociais da atualidade, onde o Orkut com
19
26%, Twitter com 9,8% e Facebook com 9,6% aparecem como as trˆes redes mais utilizadas
(´EPOCA, 2010).
Figura 4: Presen¸ca de usu´arios brasileiros nas principais redes sociais (em milh˜oes)
Fonte: ´EPOCA, 2010
V´arios tˆem sido os trabalhos publicados com foco no estudo de redes sociais. Pesqui-
sadores de diversas ´areas do conhecimento tˆem se interessado por entender a dinˆamica
das redes de pessoas, mostrando a importˆancia desse mecanismo de rela¸c˜oes interpessoais
na vida moderna (BUYUKOKTEN et al. 2003; KUMAR et al. 2006).
Para os prop´ositos deste trabalho, o aspecto mais importante ´e observar a capacidade
das redes sociais em disseminar e transformar o acesso a informa¸c˜ao, colaborando para que
os subgrupos de indiv´ıduos contidos nelas possam aumentar seu capital social. Utiliza-se
o sentido de capital social observado por Costa (2005):
Essa no¸c˜ao poderia ser entendida como: a capacidade de intera¸c˜ao dos
indiv´ıduos, seu potencial para interagir com os que est˜ao a sua volta,
com seus parentes, amigos, colegas de trabalho, [...]. Capital social sig-
nificaria aqui a capacidade de os indiv´ıduos produzirem suas pr´oprias
redes, suas comunidades pessoais (COSTA, 2005 p. 239 apud BURT,
2005; LIN, 2005; NARAYAN, 1999; PORTES, 1998; GROOTAERT,
1997; FUKUYAMA, 1996; PUTMAN, 1993; COLEMAN, 1990).
Finalizando, no mesmo trabalho de Costa (2005),
[...] uma comunidade virtual, quando convenientemente organizada,
representa uma importante riqueza em termos de conhecimento dis-
tribu´ıdo, de capacidade de a¸c˜ao e de potˆencia cooperativa (COSTA,
2005, p. 246 apud L´EVY, 2002).
Todas essas pondera¸c˜oes a respeito das redes sociais certificam que s˜ao uma preciosa
ferramenta de media¸c˜ao de comunica¸c˜ao entre pessoas.
20
2.3 API Opensocial 0.8
A especifica¸c˜ao Opensocial define uma API comum para o desenvolvimento de apli-
cativos sociais que podem funcionar em diversos sites (OPENSOCIAL, 2010).
Figura 5: Modelo e fluxo de dados de um aplicativo social
Fonte: OPENSOCIAL, 2010
Na Figura 5, vˆe-se o modelo de um aplicativo social e seus trˆes componentes principais:
cliente, container e o servidor do aplicativo. O cliente ´e a representa¸c˜ao do usu´ario
navegando no aplicativo. O container, por sua vez, ´e a pr´opria rede social, nesse caso,
o Orkut. O papel do container ´e guardar o descritor do aplicativo (um arquivo XML) e
fornecer a capacidade de manipular seus “dados sociais”1
. Por fim, o servidor do aplicativo
´e um servidor Web, que cont´em todos os arquivos do aplicativo, como imagens, arquivos
CSS, Javascript e outros. Nesse servidor tamb´em est˜ao as p´aginas respons´aveis por ler e
gravar informa¸c˜oes no banco de dados do aplicativo.
O ponto central para se desenvolver um aplicativo social ´e entender como ocorre o
fluxo de dados entre seus componentes. Utilizando como base, ainda a Figura 5, tem-se
a seguinte sequˆencia de opera¸c˜oes:
1. O cliente (usu´ario) solicita ao container a visualiza¸c˜ao de um aplicativo. Nesse
momento ´e carregado o descritor do aplicativo.
2. Atrav´es de protocolo HTTP via AJAX, o container envia “dados sociais” ao servidor
do aplicativo, como o c´odigo do usu´ario seguido de alguma opera¸c˜ao que ele tenha
realizado, por exemplo “ofereceu uma carona de A at´e B”.
3. O servidor do aplicativo recebe os dados sociais, al´em dos dados de opera¸c˜ao e
armazena essas informa¸c˜oes em seu banco de dados, retornando para o container,
dados em forma de HTML, XML ou qualquer outra estrutura em formato texto.
4. O container recebe esses dados e entrega ao descritor do aplicativo, que renderiza
as atualiza¸c˜oes na tela do aplicativo e exibe o resultado para o usu´ario.
1
Dados sobre perfis de usu´arios, lista de amigos, fotos e ´albuns, atualiza¸c˜ao de atividades na rede, etc.
21
At´e a conclus˜ao deste trabalho, o Orkut era um container homologado para a vers˜ao
0.8 da API Javascript Opensocial.
2.4 JQuery 1.2.2
JQuery ´e uma biblioteca Javascript, de uso gratuito, que re´une uma cole¸c˜ao de fun¸c˜oes
que permitem aos desenvolvedores escreverem c´odigos Javascript de maneira r´apida, efi-
ciente e compat´ıvel com os principais modelos de navegadores (JQUERY, 2010).
Nessa biblioteca, o desenvolvedor encontra fun¸c˜oes para realizar anima¸c˜oes em ele-
mentos de uma p´agina HTML; trabalhar de forma simplificada em intera¸c˜oes com AJAX ;
manipular eventos; e v´arias outras utilidades.
Outro benef´ıcio, al´em de agilizar o desenvolvimento de aplica¸c˜oes Web, ´e a capacidade
de utilizar extens˜oes escritas e disponibilizadas por outros desenvolvedores. Atrav´es dessas
extens˜oes, ´e poss´ıvel reutilizar solu¸c˜oes que resolvam problemas recorrentes em uma t´ıpica
aplica¸c˜ao Web, como valida¸c˜ao de formul´arios, exibi¸c˜ao de dicas de preenchimento de
campos, e muitos outros.
2.5 API Javascript Google Maps 2.0
A API Javascript Google Maps ´e disponibilizada de forma gratuita pelo Google aos
desenvolvedores que desejam incorporar o Google Maps em suas p´aginas.
Dentre os principais recursos fornecidos pela API pode-se destacar:
• Geocodifica¸c˜ao: um servi¸co de consulta, no qual se informa um endere¸co e se recebe
como resposta informa¸c˜oes detalhadas sobre tal endere¸co, inclu´ındo suas coordena-
das geogr´aficas;
• Caminhos: desenho de linhas sobre o mapa, informando o melhor caminho, a p´e
ou de autom´ovel, entre dois ou mais pontos. Al´em disso, os caminhos contˆem
diversas informa¸c˜oes ´uteis, como ruas percorridas, dire¸c˜oes a serem seguidas, tempo
de viagem e distˆancia;
• Visualiza¸c˜ao: permite arrastar, ampliar ou reduzir o detalhamento do mapa;
• Representa¸c˜ao: permite posicionar marcadores de localidades, abrir janelas de in-
forma¸c˜oes em marcadores.
22
Outro ponto caracter´ıstico da API Google Maps ´e seu funcionamento baseado em
intera¸c˜oes via AJAX entre a aplica¸c˜ao do usu´ario e os servidores do Google, onde est´a
hospedada a API.
2.6 Plataforma LAMP
LAMP ´e uma sigla formada pelas letras iniciais das tecnologias Linux (sistema ope-
racional), Apache (servidor Web), MySQL (sistema gerenciador de bancos de dados) e
PHP2
(linguagem de programa¸c˜ao). Essa combina¸c˜ao tecnologica provˆe uma completa
infraestrutura para o desenvolvimento de aplica¸c˜oes Web. O fato de ser composta por
tecnologias gratuitas, faz dessa plataforma uma boa alternativa em rela¸c˜ao a tecnologias
comerciais como .NET e JEE (executando sobre servidores de aplica¸c˜ao comerciais, como
Websphere ou Weblogic).
Ainda, apesar do L, na sigla, se referir ao sistema operacional Linux, uma aplica¸c˜ao
LAMP pode ser facilmente portada para Windows ou Mac OS, com pouco ou at´e mesmo
nenhum trabalho de alterar c´odigos na aplica¸c˜ao.
2
O “P” pode, `as vezes, se referir a Perl ou Python.
23
3 Metodologia
Para se alcan¸car os objetivos deste trabalho, foi desenvolvido o aplicativo “Carro
Cheio”, integrado ao Orkut. O problema pesquisado foi dividido em cinco fases: escolha
das tecnologias apropriadas; desenho do modelo de dados; obten¸c˜ao dos itiner´arios das
linhas de ˆonibus de BH; implementa¸c˜ao; e por fim, testes.
3.1 Escolha das Tecnologias Apropriadas
Para a escolha das tecnologias a serem usadas no trabalho, consideraram-se as se-
guintes restri¸c˜oes: gratuidade, boa documenta¸c˜ao, curva de aprendizado reduzido e com-
patibilidade com navegadores a partir das vers˜oes: Mozilla Firefox 3.2.0, Microsoft Inter-
net Explorer 7.0, Google Chrome 6.0 e Apple Safari 4.0.
Figura 6: Arquitetura da aplica¸c˜ao
Atrav´es do desenho da arquitetura da aplica¸c˜ao (Figura 6), vˆe-se as tecnologias ele-
gidas para desenvolvimento do aplicativo “Carro Cheio”. S˜ao elas: rede social Orkut,
API Javascript Opensocial, Plataforma LAMP, API Google Maps e biblioteca Javascript
JQuery. O uso de cada tecnologia ser´a abordado no decorrer desse cap´ıtulo.
24
3.2 Desenho do Modelo de Dados
O modelo de dados do aplicativo ´e exposto na Figura 7, na qual s˜ao apresentadas as
entidades que o comp˜oem, bem como seus relacionamentos.
Figura 7: Diagrama do modelo de dados do aplicativo
Cada uma das entidades ´e descrita, brevemente, na Tabela 1.
Tabela 1: Descri¸c˜ao das tabelas do modelo de dados
Entidade Descri¸c˜ao
usuario Armazena os usu´arios do aplicativo. Os registros s˜ao inseridos no
momento que os usu´arios adicionam o aplicativo em seu perfil.
rota Armazena as informa¸c˜oes sobre rotas que os usu´arios criam atrav´es
do aplicativo.
rota passo Armazena as coordenadas (latitude, longitude) de cada passo da rota
do usu´ario, na sequˆencia em que ocorrem.
carona Armazena os pedidos de carona feitos por um usu´ario. Essa entidade
cruza dois usu´arios, uma rota e o passo da rota que foi solicitado.
onibus Armazena o cadastro das linhas de ˆonibus, por exemplo: 1010, SC02,
80.
onibus
itinerarios
Armazena os itiner´arios de cada linha de ˆonibus.
onibus
itinerarios
paradas
Armazena as coordenadas (latitude, longitude) de cada ponto de pa-
rada do ˆonibus no itiner´ario, na sequˆencia em que ocorrem.
3.3 Obten¸c˜ao dos Itiner´arios das Linhas de ˆOnibus
de BH
No projeto conceitual do aplicativo foi denifido que, em algumas situa¸c˜oes, quando um
usu´ario fizesse uma busca por caronas, os resultados sugeridos poderiam ser viagens mis-
25
tas, combinando trechos de ˆonibus e trechos de autom´ovel. Eis uma situa¸c˜ao hipot´etica,
na qual viagens mistas podem ser sugeridas:
• Francisco procurou por uma carona. Ele sai da Pra¸ca da Liberdade, Savassi, Belo
Horizonte e deseja chegar ao campus da PUC, no bairro S˜ao Gabriel, em Belo
Horizonte.
• Alfredo ofereceu uma carona no aplicativo. Ele tamb´em vai para a PUC, no bairro
S˜ao Gabriel. Entretanto, Alfredo sai da Pra¸ca Sete, centro de Belo Horizonte.
• ´E uma distˆancia razo´avel – cerca de 1,6 quilˆometros – para Francisco ir se encontrar
com Alfredo, se for `a p´e.
• Nesse cen´ario hipot´etico, a busca deve ser capaz de sugerir a Francisco tomar o
ˆonibus 4034 (Novo Dom Bosco / Savassi) para se encontrar com Alfredo, na Pra¸ca
Sete, e irem juntos at´e o campus da PUC.
Para que essa funcionalidade seja poss´ıvel, ´e necess´ario possuir uma base de dados
contendo as linhas de ˆonibus de BH e seus itiner´arios completos. Esses dados foram
obtidos em endere¸cos dispon´ıveis no site da Empresa de Transportes e Trˆansito de Belo
Horizonte – BHTRANS.
Primeiro, obteve-se o n´umero de cada linha de ˆonibus atrav´es da p´agina Quadro de
hor´arios1
, ilustrada na Figura 8.
Figura 8: P´agina da BHTRANS com a rela¸c˜ao das linhas de ˆonibus de Belo Horizonte
Fonte: BHTRANS, 2010
Em seguida, ainda no site da BHTRANS, foi consultado o itiner´ario de cada linha,
atrav´es da p´agina Itiner´ario2
.
Na Figura 9, vˆe-se a p´agina com o resultado para a consulta `a linha de ˆonibus 101.
Nesse momento, cada endere¸co correspondente ao ponto de parada do ˆonibus foi copiado
e formatado manualmente no arquivo itinerarios.txt.
1
Dispon´ıvel em: http://servicosbhtrans.pbh.gov.br/bhtrans/servicos eletronicos/
transporte qh info.asp.
2
Dispon´ıvel em: http://servicosbhtrans.pbh.gov.br/bhtrans/servicos eletronicos/
transporte itinerario resultado.asp?linha=101.
26
Figura 9: P´agina de itiner´arios no site da BHTRANS
Fonte: BHTRANS, 2010
Ap´os o arquivo itinerarios.txt ter sido preenchido com os itiner´arios de todas as
linhas de ˆonibus, este foi processado por um programa em PHP – popula onibus.php –
cuja tarefa era popular as tabelas onibus, onibus itinerarios e onibus itinerarios -
paradas. Entretanto, para cada ponto de parada, foi preciso gravar a sua coordenada
geogr´afica. Para isso, foi utilizado o servi¸co de geocodifica¸c˜ao do Google. Tal servi¸co
´e acessado atrav´es de uma requisi¸c˜ao HTTP, fornecendo como parˆametro o endere¸co a
ser geocodificado. Por exemplo, para obter as coordenadas do primeiro ponto da linha
de ˆonibus 101 – Avenida Artur Bernardes 1580 – deve-se enviar a seguinte requisi¸c˜ao ao
servi¸co de geocodifica¸c˜ao:
http://maps.google.com/maps/geo?output=xml&sensor=false&key=abcdefg&q=
Avenida Artur Bernardes 1580, Belo Horizonte, MG, Brasil
Como resposta a essa requisi¸c˜ao, o geocodificador retorna um arquivo em formato
XML, contendo v´arias informa¸c˜oes a respeito do endere¸co solicitado. Para este tra-
balho, ´e ´util apenas as coordenadas geogr´aficas do endere¸co, presentes entre as marca¸c˜oes
<coordinates></coordinates>. Para o endere¸co Avenida Artur Bernardes 1580, tem-
se longitude -43.9476279 e latitude -19.9512799, conforme ilustrado na Figura 10.
Figura 10: Trecho do XML de resposta do servi¸co de geocodifica¸c˜ao do Google
Fonte: GOOGLE, 2010
Ap´os processar todo o arquivo itinerarios.txt, o banco de dados foi populado com
os itiner´arios de todas as linhas de ˆonibus de BH. Al´em disso, os pontos de embarque e
desembarque de cada ˆonibus foram mapeados com suas coordenadas geogr´aficas.
27
3.4 Implementa¸c˜ao
O escopo do aplicativo ´e apresentado atrav´es de um diagrama de casos de uso, visto
na Figura 11.
Figura 11: Diagrama de casos de uso
Cada caso de uso mostrado na Figura 11 ´e descrito, brevemente, na Tabela 2, possi-
bilitando uma vis˜ao geral sobre as funcionalidades do aplicativo. Adiante, nas subse¸c˜oes
3.4.2 e 3.4.3, os casos de uso cadastrar rotas e buscar rotas ser˜ao descritos em mais
detalhes. Os demais casos de uso ser˜ao ilustrados na subse¸c˜ao 3.4.4, atrav´es das capturas
das telas desenvolvidas para cada um.
Tabela 2: Vis˜ao geral dos casos de uso do aplicativo
Caso de uso Descri¸c˜ao
Cadastrar
rota
Permite a um usu´ario, que possua autom´ovel, cadastrar as suas rotas,
detalhando os percursos atrav´es de um mapa. Em seguida essas rotas
ficar˜ao dispon´ıveis para serem encontradas nas buscas por caronas.
Buscar rota Usu´arios interessados em encontrar uma carona, informam seus locais
de sa´ıda e destino e o sistema encontra rotas ´uteis a ele.
Pedir carona Quando um usu´ario encontra uma rota que lhe interesse, ele pode
pedir ao motorista uma carona. O aplicativo ent˜ao envia ao moto-
rista, um pedido vindo desse usu´ario com o ponto onde este deseja
embarcar.
Visualizar
pedidos
Permite ao usu´ario visualizar todos os seus pedidos. Os pedidos s˜ao
dividos entre pedidos enviados e pedidos recebidos.
Aceitar
pedido
Ao visualizar seus pedidos recebidos, um usu´ario pode aceitar um
pedido. Esta a¸c˜ao equivale a aceitar um pedido de carona.
Recusar
pedido
Ao visualizar seus pedidos recebidos, um usu´ario pode recusar um
pedido.
Avaliar
usu´ario
Permite avaliar o usu´ario positivamente ou negativamente. Cada
usu´ario possui um contador de avalia¸c˜oes positivas e negativas.
Antes de continuar a descri¸c˜ao da implementa¸c˜ao do aplicativo, ´e necess´ario introduzir
o ambiente de testes de aplicativos do Orkut, chamado sandbox.
28
3.4.1 Orkut sandbox
O sandbox ´e uma vers˜ao do Orkut na qual os desenvolvedores podem instalar seus
aplicativos sociais e test´a-los at´e estarem prontos.
Figura 12: P´agina de registro no Orkut sandbox
Fonte: ORKUT, 2010
A Figura 12 mostra a p´agina de registro no sandbox. O registro deve ser feito no
endere¸co http://sandbox.orkut.com/SandboxSignup.aspx. Ap´os realizar o registro, ´e
poss´ıvel acessar o ambiente sandbox e realizar os testes no aplicativo.
O acesso ao ambiente sandbox ´e feito no endere¸co http://sandbox.orkut.com/. O
primeiro passo para implementa¸c˜ao do aplicativo foi submeter seu descritor inicial, cha-
mado aplicativo.xml, contendo informa¸c˜oes b´asicas sobre autoria do aplicativo e as
bibliotecas que este utilizaria. A Figura 13 lista o conte´udo do descritor do aplicativo.
Figura 13: Conte´udo inicial do descritor do aplicativo
Como pode-se ver na Figura 13, o descritor se divide em duas se¸c˜oes principais:
<ModulePrefs /> e <Content />. Na se¸c˜ao <ModulePrefs /> devem ser informados
os parˆametros de autoria e descri¸c˜ao do aplicativo. Nesta se¸c˜ao tamb´em informa-se ao
container quais bibliotecas de fun¸c˜oes devem ser carregadas para o aplicativo. A se¸c˜ao
29
<Content /> ´e destinada a receber todo o conte´udo do aplicativo. Nela devem ser colo-
cados todos os c´odigos HTML, Javascript e outros.
Para submeter o descritor ao sandbox, antes foi preciso envi´a-lo para o servidor do
aplicativo, atrav´es de um programa de FTP. O processo de submeter o descritor do
aplicativo ´e mostrado nas Figuras 14 e 15.
Figura 14: P´agina de submiss˜ao do aplicativo
Fonte: ORKUT, 2010
Figura 15: P´agina de confirma¸c˜ao dos dados
Fonte: ORKUT, 2010
Na Figura 14, vˆe-se a p´agina de submiss˜ao de um novo aplicativo. No campo de texto ´e
informado o endere¸co p´ublico do descritor do aplicativo, no caso deste trabalho, o descritor
p´ublico se encontra no endere¸co http://www.carrocheio.com/aplicativo.xml3
. Ap´os
clicar no bot˜ao add application, ´e carregada a p´agina de confirma¸c˜ao, ilustrada na
Figura 15. Nessa p´agina s˜ao exibidas as configura¸c˜oes informadas no descritor, como
nome e e-mail do autor, nome e descri¸c˜ao do aplicativo, al´em das imagens de ´ıcone e de
captura de tela. Tamb´em ´e poss´ıvel definir se o aplicativo ter´a acesso a informa¸c˜oes dos
´albuns de fotos e se suas atividades ser˜ao divulgadas aos amigos da rede social.
Ap´os clicar no bot˜ao save e confirmar a instala¸c˜ao do aplicativo, este tornou-se dis-
pon´ıvel na lista de aplicativos do desenvolvedor. A partir da instala¸c˜ao, o aplicativo entra
em processo de desenvolvimento, descrito na Figura 16.
Figura 16: Processo de desenvolvimento do aplicativo
3
Foi feito o registro do dom´ınio carrocheio.com e a contrata¸c˜ao da hospedagem, para viabilizar a
infraestrutura necess´aria ao desenvolvimento da pesquisa.
30
O processo de desenvolvimento consiste nas seguintes etapas: s˜ao feitas altera¸c˜oes
no c´odigo fonte do aplicativo, na esta¸c˜ao de trabalho do desenvolvedor. Os arquivos,
modificados e acrescentados ao projeto, s˜ao enviados para o servidor do aplicativo atrav´es
de um programa de FTP (1). No sandbox, o pesquisador recarrega4
o aplicativo para
visualizar as altera¸c˜oes (2). O sandbox se comunica com o servidor do aplicativo para
obter a vers˜ao mais nova do descritor. Al´em disso, tamb´em faz a requisi¸c˜ao de imagens,
arquivos Javascript, CSS e outros (3).
Ap´os uma vis˜ao geral do processo de desenvolvimento no Orkut sandbox, ser˜ao des-
critos em mais detalhes os casos de uso cadastrar rotas e buscar rotas.
3.4.2 Cadastrar rotas
Cadastrar uma rota ´e o mesmo que oferecer uma carona. Quando um usu´ario cadastra
uma rota, ele est´a descrevendo um caminho que percorre de autom´ovel.
Para cadastrar uma rota, o usu´ario deve escolher a op¸c˜ao oferecer carona, na barra
de menus do aplicativo. Em seguida, ser´a apresentada ao usu´ario a tela ilustrada na
Figura 17.
Figura 17: Tela do aplicativo: oferecer carona
Na Figura 17, observa-se os seguintes elementos: campos local de partida e local
de chegada, bot˜oes tra¸car rota e salvar esta rota, e finalmente, um mapa para
4
Recarregar significa atualizar a tela do navegador com o aplicativo carregado na barra de endere¸cos.
31
exibir e ajustar a rota.
Os locais de partida e de chegada s˜ao de preenchimento obrigat´orio. O usu´ario, en-
tretanto, pode inform´a-los em diversos formatos, por exemplo: “Afonso Pena, 1000, Belo
Horizonte”, “Pra¸ca da Liberdade, Belo Horizonte”, “Est´adio Mineir˜ao, Belo Horizonte”.
A rota ´e desenhada no mapa com base nas coordenadas dos locais de partida e de che-
gada. Portanto, para obter tais coordenadas, ´e preciso submeter os locais informados
pelo usu´ario a um servi¸co de geocodifica¸c˜ao. Como j´a visto na se¸c˜ao 3.3, neste trabalho
utilizou-se o servi¸co de geocodifica¸c˜ao do Google Maps.
Alguns locais podem gerar ambiguidade. Se informado “Cristiano Machado, Belo
Horizonte”, ser˜ao encontradas v´arias respostas para este local.
Figura 18: Tela do aplicativo: desambigua¸c˜ao de locais
A Figura 18 ilustra esse caso. Nela, vˆe-se que ao clicar em tra¸car rota, foi encontrada
uma ocorrˆencia para “Pra¸ca da Liberdade, Belo Horizonte”, informada como local de
chegada. Entretanto, observando a Figura, vˆe-se que o aplicativo solicita ao usu´ario que
escolha o local de partida, dentre as seis op¸c˜oes retornadas pelo geocodificador. A rota
n˜ao ´e tra¸cada no mapa at´e que o usu´ario clique em uma das op¸c˜oes apresentadas.
Supondo que o usu´ario escolha a quarta op¸c˜ao – Ave Cristiano Machado, Cidade
Nova, Belo Horizonte – a rota ´e, ent˜ao, tra¸cada no mapa (Figura 19).
Observando a Figura 19, vˆe-se que ao tra¸car uma rota no mapa, surgem trˆes novos
elementos na tela do aplicativo:
32
Figura 19: Tela do aplicativo: desenho da rota do motorista
1. Barra de status: cont´em informa¸c˜oes sobre a distˆancia percorrida no caminho, al´em
do tempo que seria gasto para percorrˆe-la (considerando viagem de autom´ovel).
2. Polilinha: uma linha cont´ınua composta de v´arios segmentos. Cada in´ıcio e fim de
segmento possui uma coordenada geogr´afica associada.
3. Marcadores: s˜ao ´ıcones que determinam marcos em uma polilinha. No caso de rotas
rec´em criadas, marcam o in´ıcio e o fim do trajeto. Rotas modificadas pelo usu´ario
podem conter marcadores intermedi´arios, determinando desvios.
O caminho desenhado no mapa ´e determinado pela API Google Maps, atrav´es do
m´etodo loadFromWaypoints(waypoints:Array), da classe GDirections. Este m´etodo
recebe como parˆametro uma matriz, contendo dois ou mais pares de coordenadas (waypoints),
e desenha a polilinha sobreposta ao mapa. A rota mostrada na Figura 19 ´e obtida com a
seguinte chamada de m´etodo:
var rota = new GDirections();
rota.loadFromWaypoints([[-19.88892,-43.92916], [-19.932207,-43.9380159]]);
Nem sempre a rota desenhada pela API Google Maps corresponde ao caminho que
o usu´ario percorre. Nesse caso, ´e preciso permitir ao usu´ario modificar a rota, movendo
pontos da polilinha para marcar os desvios necess´arios. A API 2.0 do Google Maps n˜ao
33
possui m´etodos nativos para arrastar e soltar v´ertices da polilinha. A Figura 20 ´e utilizada
para demonstrar como foi implementada a funcionalidade de modifica¸c˜ao de rotas.
Figura 20: Transi¸c˜ao de estados para a modifica¸c˜ao da rota
Na Figura 20, observa-se um trecho do mapa em quatro estados diferentes. No estado
1, o mapa observa os movimentos do cursor do mouse sobre sua superf´ıcie. A cada desloca-
mento do cursor, ´e calculada sua distˆancia5
em rela¸c˜ao a polilinha. Se a distˆancia calculada
estiver abaixo de um valor arbitrado, o mapa passa para o estado 2. No estado 2, ´e exibido
um marcador tempor´ario sobre o v´ertice da polilinha mais pr´oximo ao cursor. O estado 3
representa o marcador tempor´ario sendo arrastado pela superf´ıcie do mapa. Ao ser solto, o
marcador inicia o estado 4. No estado 4, a coordenada do marcador tempor´ario ´e inserida
na matriz de waypoints. Em seguida, o m´etodo loadFromWaypoints(waypoints:Array)
´e chamado para redesenhar a rota.
Para salvar a rota, deve-se clicar no bot˜ao salvar esta rota. Em seguida, a janela
salvar uma nova rota ser´a exibida para o usu´ario (Figura 21).
Figura 21: Tela do aplicativo: salvar uma nova rota
Nessa janela, o usu´ario deve informar um t´ıtulo para a rota, al´em dos dias e hor´arios
em que repete o trajeto. Ao clicar no bot˜ao concluir, a rota ´e finalmente gravada no
banco de dados. Uma rota ´e gravada da seguinte maneira: ´e inserido um registro na tabela
rota, com o c´odigo do usu´ario, o t´ıtulo da rota e suas informa¸c˜oes de dias e hor´arios.
5
Esse c´alculo ´e realizado pela biblioteca Javascript BdccGeo.js (CHADWICK, 2007).
34
Na tabela rota passo s˜ao inseridos registros relacionados `a rota criada. Cada registro
armazena a coordenada referente a um v´ertice da polilinha (Figura 22).
Figura 22: Registros na tabela rota passos
A Figura 22 mostra os oito primeiros passos de uma rota. Na Figura, vˆe-se a coluna
id rota. A coluna id rota relaciona um passo a uma rota. Nesse caso, os passos s˜ao
relacionados `a rota de n´umero 26. As colunas lat e lon se referem `a latitude e `a longitude
do passo. Por fim, a coluna passo final recebe o valor 1 se for o ´ultimo passo da rota.
A coluna passo final ´e ´util para o m´etodo de busca de caronas, apresentada na se¸c˜ao a
seguir.
3.4.3 Buscar rotas
Nesta se¸c˜ao ser´a apresentado o m´etodo utilizado para buscar rotas. Como visto, na
se¸c˜ao 3.4.2, uma rota ´e uma sequˆencia de passos, realizados para se cumprir um trajeto.
Tamb´em foi visto que os passos s˜ao armazenados no banco de dados com suas coordenadas
geogr´aficas. A Figura 23 representa esse conceito graficamente.
Figura 23: Representa¸c˜ao gr´afica dos dados de uma rota
35
3.4.3.1 Fluxo de dados da busca por rotas
Para encontrar ofertas de caronas, o usu´ario deve acessar a op¸c˜ao pedir carona, no
menu de op¸c˜oes do aplicativo (Figura 24).
Figura 24: Tela do aplicativo: tela de janela de busca de rotas
Na janela de busca de rotas h´a trˆes campos que devem ser informados pelo usu´ario:
local de sa´ıda; local de destino; e a distˆancia m´axima que se deseja caminhar at´e o
embarque e o destino. Ao acionar o bot˜ao buscar, ocorre o fluxo de dados ilustrado na
Figura 25.
Figura 25: Fluxo de dados durante busca por rotas
Observando a Figura 25, as setas numeradas de um a quatro indicam a seguinte
sequˆencia de opera¸c˜oes:
1. Os locais de sa´ıda e de chegada s˜ao enviados ao servi¸co de geocodifica¸c˜ao do Google
Maps, via Javascript e HTTP.
2. O servi¸co de geocodifica¸c˜ao do Google Maps retorna a geocodifica¸c˜ao dos locais,
contendo suas coordenadas geogr´aficas.
3. As coordenadas geogr´aficas dos locais de sa´ıda e de chegada s˜ao enviadas como
parˆametros para a p´agina de busca de rotas, no servidor do aplicativo. Esse processo
tamb´em ocorre via Javascript e HTTP.
36
4. A p´agina de busca de rotas responde com um objeto em formato JSON, contendo as
rotas encontradas ou contendo uma rota vazia, no caso de n˜ao encontrar nenhuma
rota compat´ıvel.
3.4.3.2 C´alculo da distˆancia linear entre dois pontos na Terra
Na busca por rotas, ´e necess´ario calcular a distˆancia linear entre dois pontos na
Terra, dadas as suas latitudes e longitudes. Para esse prop´osito, utilizou-se a F´ormula de
Haversine6
, a qual foi mapeada em uma fun¸c˜ao escrita em linguagem PHP mostrada na
Figura 26.
Figura 26: Fun¸c˜ao de c´alculo da distˆancia linear entre dois pontos na Terra
3.4.3.3 Heur´ıstica de busca por rotas
A Figura 27 a seguir, mostra um cen´ario hipot´etico.
Figura 27: Heur´ıstica de busca: cen´ario hipot´etico
Nesse cen´ario, h´a quatro rotas cadastradas no banco de dados. Essas rotas s˜ao re-
presentadas na Figura 27 atrav´es dos segmentos A-A’, B-B’, C-C’, D-D’. O sentido de
6
A f´ormula de Haversine ´e uma importante equa¸c˜ao usada em navega¸c˜ao, fornecendo distˆancias entre
dois pontos de uma esfera a partir de suas latitudes e longitudes. (F´ORMULA DE HAVERSINE, 2010)
37
cada rota ´e denotado por uma letra (A), como ponto de origem; e uma letra seguida de
ap´ostrofo (A’), como ponto de chegada. A necessidade do usu´ario ´e representada pelos
pontos I, como local de partida, e F, como local de chegada. Por fim, os c´ırculos r in-
dicam a distˆancia m´axima que o usu´ario deseja andar at´e o embarque ou at´e o seu local
de chegada. A distˆancia m´axima ser´a citada como d max, no decorrer da apresenta¸c˜ao da
heur´ıstica.
Na primeira itera¸c˜ao, a heur´ıstica procura por rotas que possuam algum passo a uma
distˆancia menor que d max, em rela¸c˜ao ao ponto de chegada do usu´ario (F). Para todas as
rotas encontradas, utiliza-se apenas o passo com a menor distˆancia at´e F. Ap´os a primeira
itera¸c˜ao, s˜ao encontradas as rotas B-B’, C-C’ e D-D’, conforme ilustrado na Figura 28.
Figura 28: Heur´ıstica de busca: primeira itera¸c˜ao
A segunda itera¸c˜ao ´e feita entre as rotas encontradas na primeira itera¸c˜ao. Nessa
itera¸c˜ao, a heur´ıstica seleciona rotas que possuam um passo `a uma distˆancia m´axima
de 2d max7
do ponto I8
. Al´em disso, o passo deve ser anterior ao passo encontrado na
primeira itera¸c˜ao. Essa restri¸c˜ao elimina a rota C-C’ das respostas (Figura 29).
Figura 29: Heur´ıstica de busca: segunda itera¸c˜ao
7
A raz˜ao de se ampliar a distˆancia m´axima ´e encontrar rotas mais distantes, mas que possam ser
alcan¸cadas de ˆonibus.
8
Para simplificar a Heur´ıstica escolheu-se o ponto I.
38
Observando a Figura 29, percebe-se que a rota D-D’ atende a necessidade do usu´ario.
A heur´ıstica considera, ent˜ao, a rota D-D’ como ´otima. Entretanto, a rota B-B’ possui
um ponto de embarque a uma distˆancia maior do que d max. Para essa rota, a heur´ıstica
consulta a base de dados de itiner´arios de ˆonibus e procura por alguma linha que passe
pr´oximo ao ponto I, chegando pr´oximo ao ponto B. Se a heur´ıstica n˜ao encontrar uma
linha de ˆonibus, a rota ´e descartada. Caso contr´ario, a rota ´e mantida no conjunto de
respotas e o ˆonibus encontrado ´e inclu´ıdo na resposta, gerando uma rota mista (Figura
30).
Figura 30: Heur´ıstica de busca: busca por ˆonibus
Na Figura 30, o segmento pontilhado O-O’, representa o trecho a ser cumprido em
uma viagem de ˆonibus, chegando pr´oximo ao ponto de embarque, na rota B-B’.
A heur´ıstica pode ser expressa na forma de um diagrama, conforme a Figura 31.
Figura 31: Heur´ıstica de busca
3.4.4 Demais Casos de Uso
Nesta se¸c˜ao s˜ao ilustradas as telas dos seguintes casos de uso: pedir carona, visualizar
pedidos, aprovar pedido, recusar pedido e avaliar usu´ario.
39
O caso de uso pedir carona ´e ilustrado atrav´es da Figura 32, na qual pode-se ver a
janela de pedido de carona. Essa janela se abre no momento em que o usu´ario escolhe a
op¸c˜ao pedir carona, na tela de busca de caronas (Figura 36).
Figura 32: Tela do aplicativo: enviar pedido de carona
Na Figura 33 ´e ilustrada a tela correspondente aos seguintes casos de uso: visualizar
pedidos, aceitar pedidos e recusar pedidos. Vˆe-se, na tela, o agrupamento dos pedidos
entre pedidos enviados e pedidos recebidos (aba que aparece ativa). Ainda, na Fi-
gura 33, observa-se a indica¸c˜ao do local no qual o passageiro deseja embarcar, e as op¸c˜oes
aceitar e recusar pedido.
Figura 33: Tela do aplicativo: visualizar, aceitar e recusar pedidos
Na Figura 34 ´e apresentada a tela para o caso de uso avaliar usu´ario. Nota-
se a rela¸c˜ao de todas as rotas cadastradas pelo motorista. Uma rota, em espec´ıfico,
aparece expandida, relacionando seus passageiros (nesse caso, Jack). Atrav´es dos ´ıcones
polegar para cima e polegar para baixo, o motorista pode classificar o passageiro
positivamente ou negativamente. O ´ıcone lupa, abre a janela com informa¸c˜oes sobre o
usu´ario em quest˜ao, contendo quantas classifica¸c˜oes positivas e negativas ele possui.
Do ponto de vista do passageiro, pode-se classificar os motoristas com os quais viaja
40
acessando a aba Como passageiro, na qual estar˜ao dispon´ıveis as mesmas opera¸c˜oes.
Figura 34: Tela do aplicativo: avaliar usu´ario
41
4 Resultados
Neste cap´ıtulo, s˜ao apresentados os resultados obtidos nos testes realizados no apli-
cativo Carro Cheio. Para a avalia¸c˜ao a sua eficiˆencia, seus resultados foram comparados
aos resultados dos mesmos testes, realizados em sistemas similares.
4.1 Prepara¸c˜ao do Ambiente de Testes
Para se testar o Carro Cheio, adicionou-se o aplicativo a dois perfis de usu´arios no
Orkut. Considere, como exemplo os usu´arios de Jack e Beth. Jack oferece uma carona,
enquanto Beth, procura uma carona.
Atrav´es do perfil de Jack, cadastrou-se uma rota (R), sa´ındo da Avenida Afonso Pena,
5100 e chegando `a Avenida Afonso Pena, 1. Trata-se de um percurso de aproximadamente
4 quilˆometros, segundo o Google Maps (Figura 35).
Figura 35: Rota utilizada nos testes testes
Em seguida, foram realizadas quatro buscas por caronas, atrav´es do perfil de Beth.
Os parˆametros de entrada est˜ao listados na Tabela 3.
Tabela 3: Parˆametros de buscas por caronas
# Local de sa´ıda Local de chegada
1 Rua Ramalhete, 100 Rua dos Tupinamb´as, 500
2 Rua dos Tupinamb´as, 500 Rua Ramalhete, 100
3 Av. Afonso Pena, 1500 Rua dos Tupinamb´as, 500
4 Av. Bandeirantes, 800 Rua Espirito Santo, 800
Fonte: Autor da pesquisa, 2010
Os mesmos testes foram realizados nos sites Bigoo (www.bigoo.com.br) e Caroneiros
(www.caroneiros.com.br). Nesses sites, foram criadas as contas para Jack e Beth, man-
tendo seus pap´eis de motorista e passageira, respectivamente. Para as buscas realizadas
42
no Carro Cheio e Caroneiros, foi definido um raio de abrangˆencia de 500 metros. No
Bigoo esse parˆametro n˜ao estava dispon´ıvel.
Cada teste, numerado de 1 a 4, procurou avaliar uma caracter´ıstica diferente, nos
sitemas. As caracter´ısticas avaliadas foram as seguintes:
• Teste 1: avalia se o mecanismo utiliza coordenadas geogr´aficas na busca, uma vez
que os locais de sa´ıda e de chegada de Beth s˜ao pr´oximos aos de Jack, mas n˜ao
cont´em as mesmas palavras-chave.
• Teste 2: avalia se o mecanismo ´e capaz de considerar o sentido da rota do motorista.
• Teste 3: avalia se o mecanismo ´e capaz de considerar pontos intermedi´arios na rota
do motorista.
• Teste 4: avalia como o mecanismo trata casos nos quais Beth est´a relativamente
longe do ponto mais pr´oximo a Jack.
4.2 Avalia¸c˜ao dos Resultados
Ap´os a realiza¸c˜ao dos testes, observou-se que o Carro Cheio retornou respostas corre-
tas para as quatro consultas realizadas. O site Bigoo retornou uma resposta incorreta para
o teste 2. A rota encontrada pelo Bigoo era percorrida no sentido inverso ao da consulta
realizada. J´a o site Caroneiros n˜ao encontrou a rota de Jack na terceira consulta. Ap´os
refazer a terceira consulta ampliando o raio para 2 quilˆometros, a rota foi encontrada.
Isso leva a acreditar que o site Caroneiros armazena apenas as coordenadas de origem e
destino, na rota do motorista.
Dentre os trˆes sistemas testados, o Carro Cheio ´e o ´unico que indica ao passageiro os
locais nos quais ele deve embarcar e desembarcar (Figura 36).
Figura 36: Tela do aplicativo: resultado do Teste 3
43
Como se vˆe, na Figura 36, o Carro Cheio foi impreciso ao sugerir o local para em-
barque, no teste 3. Ainda que tenha encontrado corretamente a rota, a resposta diz a
Beth para embarcar a 173 metros, na Av. Afonso Pena, 1433. Sabe-se que Beth poderia
embarcar logo `a frente de seu endere¸co de sa´ıda, a menos de 100 metros. Essa imprecis˜ao
deve-se ao fato de que as rotas n˜ao s˜ao gravadas com todas as suas coordenadas. Como
citado na se¸c˜ao 3.4.2, as rotas s˜ao gravadas apenas com as coordenadas de in´ıcio e fim de
cada segmento da Polilinha.
Atrav´es do teste 4, foi poss´ıvel validar a integra¸c˜ao do Carro Cheio com o transporte
coletivo de Belo Horizonte. Nesse teste, o endere¸co de sa´ıda de Beth (Av. Bandeirantes,
800) est´a h´a mais de 1 quilˆometro de distˆancia do ponto mais pr´oximo a Jack. Nesse caso,
o Carro Cheio foi capaz de sugerir o ˆonibus 9106 a Beth, para que ela se encontre com
Jack pr´oximo `a Av. Bandeirantes, 1944. A Figura 37 apresenta a resposta para o teste 4.
Figura 37: Tela do aplicativo: resultado do Teste 4
Na Figura 37, vˆe-se a janela de representa¸c˜ao gr´afica da carona sugerida. Na janela
´e apontado o local de origem de Beth e seu caminho at´e Jack. Arrastando a tela do
mapa, seria poss´ıvel ver o restante do trajeto, al´em do ponto de desembarque de Beth.
Complementando, no teste 4, tanto o Bigoo quanto o Caroneiros n˜ao encontraram a rota
de Jack.
44
5 Conclus˜ao
Neste trabalho foi realizada a pesquisa e desenvolvimento do aplicativo Carro Cheio.
Atrav´es do Carro Cheio, procurou-se alcan¸car o objetivo de se fornecer um sistema efi-
ciente para combinar caronas atrav´es do Orkut. Ainda, tentou-se suprir no Carro Cheio,
as deficiˆencias encontradas em outros sistemas com o mesmo prop´osito. A avalia¸c˜ao dos
resultados foi feita por meio de testes direcionados, realizados pelo autor da pesquisa.
Dessa forma, os resultados obtidos nos testes e comparativos realizados entre o Carro
Cheio, Bigoo e Caroneiros n˜ao foram suficientes para afirmar que o Carro Cheio surge
como o melhor sistema de caronas, dentre os trˆes. Para afirmar isso, seria necess´ario sub-
meter os trˆes sistemas a testes mais abrangentes, com uma massa significativa de usu´arios,
e avaliar suas impress˜oes.
Por outro lado, atrav´es dos testes, foi poss´ıvel verificar caracter´ısticas onde o Carro
Cheio, de fato, conseguiu suprir deficiˆencias dos outros sistemas. Ainda, segundo os
testes, o Carro Cheio atingiu os objetivos propostos neste trabalho: integrar-se a rede
social Orkut; permitir o cadastro de rotas detalhando seu trajeto; realizar buscas de rotas
atrav´es de coordenadas geogr´aficas; e integrar resultados com informa¸c˜oes do transporte
coletivo de Belo Horizonte.
Vale ressaltar, entretanto, alguns estudos que podem ser realizados futuramente, para
tornar o aplicativo mais eficiente. Uma avalia¸c˜ao de usabilidade poderia apontar medidas
a serem tomadas para tornar o uso do aplicativo mais intuitivo. Al´em disso, o formul´ario
de cadastro de rotas pode ser ampliado com mais informa¸c˜oes. Com rela¸c˜ao a heur´ıstica
de busca, pode-se se estudar a integra¸c˜ao dos resultados com o transporte ferrovi´ario.
Al´em disso, pode-se melhorar a precis˜ao das buscas atrav´es do uso de interpola¸c˜ao dos
pontos das rotas. Por fim, o uso de agentes inteligentes em vers˜oes futuras, pode trazer
novas funcionalidades ao aplicativo.
45
Referˆencias
ABREU, N. R. de; BALDANZA, R. F.; SETTE, R. de S. Comunidades virtuais como
ambiente potencializador de estrat´egias mercadol´ogicas: Locus de informa¸c˜oes e troca de
experiˆencias. Perspectivas em Ciˆencia da Informa¸c˜ao, v. 13, n. 3, p. 116-136, set./dez.
2008.
AJAX. In: WIKIP´EDIA: a enciclop´edia livre. Wikimedia, 2006. Dispon´ıvel em
http://pt.wikipedia.org/wiki/AJAX (programa¸c~ao). Acesso em: 01 maio de 2010.
AGˆENCIA MINAS. Projeto Melhorar incentiva a carona solid´aria em Minas. Minas
Gerais, 2009. Dispon´ıvel em http://www.agenciaminas.mg.gov.br/component/
controlemultimidia/noticiaid=26804. Acesso em 01 maio 2010.
ALEXA. Top Sites in Brazil. Dispon´ıvel em http://www.alexa.com/topsites/coun-
tries/BR. Acesso em 01 may 2010.
BARGH, J.; MCKENNA, K. The internet and social life. The Annual Review of
Psychology, v. 55, p. 573-590, feb. 2004.
BELO HORIZONTE. Estat´ısticas e Mapas / Demografia. Dispon´ıvel em
http://portalpbh.pbh.gov.br/pbh/ecp/comunidade.do?app=estatisticas.
Acesso em 01 maio 2010.
BHTRANS, Empresa de Transportes e Trˆansito de Belo Horizonte. Apresenta¸c˜ao
sobre mobilidade urbana e acessibilidade. Semin´ario de Consolida¸c˜ao da Rede Cidades
Interativas: Mobilidade Urbana, Acessibilidade e Governo Eletrˆonico. Natal, RN, mar.
2008.
BIGOO. Bigoo. Dispon´ıvel em http://www.bigoo.com.br/. Acesso em 01 novembro
2010.
BOYD, D. M.; ELLISON, N. B. Social network sites: Definition, history, and scholarship.
Journal of Computer-Mediated Communication, v. 13, n. 1, article 11, 2005.
BRASIL. Desenvolvimento Sustent´avel – Responsabilidade e compromisso de todos.
Governo do Brasil. Dispon´ıvel em http://www.cop15brasil.gov.br/pt-BR/. Acesso
em 01 maio 2010.
BUYUKKOKTEN, O.; ADAMIC, L. A.; AIDAR, E. A social network caught in the
Web. First Monday, v. 8, n. 6, june 2003.
CARONEIROS. Caroneiros.com - Encontrei aqui sua carona!. Dispon´ıvel em
http://www.caroneiros.com/. Acesso em 01 novembro 2010.
46
COSTA, R. Por um novo conceito de comunidade: redes sociais, comunidades pessoais
e inteligˆencia coletiva. Interface - Comunica¸c˜ao, Sa´ude, Educa¸c˜ao, v.9, n.17, p.235-248,
mar./ago. 2005.
CHADWICK, B. Bill Chadwick’s Google Maps Demos. Dispon´ıvel em
http://www.bdcc.co.uk/Gmaps/BdccGmapBits.htm. Acesso em 01 maio 2010.
DENATRAN, Departamento Nacional de Trˆansito. Frota de ve´ıculos. Dispon´ıvel em
http://www.denatran.gov.br/frota.htm. Acesso em 01 maio 2010.
ELLISON, N. B.; STEINFIELD, C.; C.LAMPE. The benefits of facebook “friends”:
social capital and college students use of online social network sites. Journal of
Computer-Mediated Communication, v. 12, n. 4, article 1, 2007.
´EPOCA. O poder e o risco das redes sociais. Globo, n. 628, p. 79-113, maio 2010.
F´ORMULA DE HAVERSINE. In: WIKIP´EDIA: a enciclop´edia livre. Wikimedia, 2006.
Dispon´ıvel em pt.wikipedia.org/wiki/F´ormula de Haversine. Acesso em: 01 maio
de 2010.
GOOGLE. Referˆencia da API do Google Maps. Dispon´ıvel em
http://code.google.com/intl/pt-BR/apis/maps/documentation/javascript/v2/
reference.html. Acesso em 01 de maio 2010.
GOVERNO DE S˜AO PAULO. Mutir˜ao da carona incentiva transporte solid´ario.
Dispon´ıvel em http://www.saopaulo.sp.gov.br/spnoticias/lenoticia.php?id=
95276. Acesso em 01 maio 2010.
IBGE, Instituto Brasileiro de Geografia e Estat´ıstica. Contagem da popula¸c˜ao 2007.
Dispon´ıvel em http://www.ibge.com.br/home/estatistica/populacao/
contagem2007/. Acesso em 01 maio 2010.
INFO EXAME. Gadgets verdes. Abril, p. 32-48, ago. 2009.
JQUERY. The write less, do more, Javascript library Dispon´ıvel em
http://www.jquery.com. Acesso em: 01 maio de 2010.
JSON. In: WIKIP´EDIA: a enciclop´edia livre. Wikimedia, 2006. Dispon´ıvel em
http://pt.wikipedia.org/wiki/JSON. Acesso em: 01 maio de 2010.
JUNGBLUT, A. L. A heterogenia do mundo on-line: Algumas reflex˜oes sobre
virtualiza¸c˜ao, comunica¸c˜ao mediada por computador e ciberespa¸co. Horizontes
Antropol´ogicos, Porto Alegre, RS, n. 21, p. 97-121, jan./jun. 2004.
KAVANAUGH, A. et al. Community networks: Where off-line communities meet on-line.
Journal of Computer-Mediated Communication, v. 10, n. 4, 2005.
KUMAR, R.; NOVAK, J.; TOMKIMS, A. Structure and evolution of online social
networks. 12th ACM SIGKDD International Conference on Knowledge Discovery and
Data Mining, Philadelphia, EUA, aug. 2006.
MARTELETO, R. M.; SILVA, A. B. de Oliveira e. Redes e capital social: o enfoque da
informa¸c˜ao para o desenvolvimento local. Ciˆencia da Informa¸c˜ao, Bras´ılia, v. 33, n. 3,
set./dez. 2004.
47
NOBRE, C. A. Aquecimento global e o papel do Brasil. Ciˆencia Hoje, Rio de Janeiro, v.
36, n. 211, p. 38-40, dez. 2004.
OPENSOCIAL. Opensocial JavaScript API Reference. Dispon´ıvel em
http://wiki.opensocial.org/index.php?title=JavaScript API Reference.
Acesso em 01 de maio 2010.
ORKUT. Orkut developer home. Developer’s Guide: JavaScript. Dispon´ıvel em
http://code.google.com/intl/en-US/apis/orkut/docs/orkutdevguide/orkutdev-
guide-0.8.html. Acesso em 01 de maio 2010.
PLANMOB-BH. Plano de Mobilidade Urbana de Belo Horizonte. Dispon´ıvel em
http://www.planmobbh.com.br/. Acesso em 01 maio 2010.
ROCHA, A. C. B. et al. Gerenciamento da mobilidade: Experiˆencias em Bogot´a, Londres
e alternativas p´os-modernas. Pluris 2006 Congresso Luso Brasileiro para o planejamento
urbano, regional, integrado e sustent´avel, Portugal, 2006.
SOUDERS, S. Even Faster Web Sites. O’Reilly, ed. 1, june 2009.
WILLIAMS, M. Google Maps API Tutorial. Dispon´ıvel em
http://econym.org.uk/gmap/. Acesso em 01 maio 2010.

Mais conteúdo relacionado

Destaque

Masa rotunda "Environmental education"
Masa rotunda "Environmental education"Masa rotunda "Environmental education"
Masa rotunda "Environmental education"Asociatia Andrei
 
Primeiro encontro infalivel
Primeiro encontro infalivelPrimeiro encontro infalivel
Primeiro encontro infalivelrenato marques
 
Representation
RepresentationRepresentation
Representationabz9298
 
Property Sales and Rentals
Property Sales and RentalsProperty Sales and Rentals
Property Sales and RentalsOubaas Olifant
 
F107 – Accounting for Interim Dividend
F107 – Accounting for Interim DividendF107 – Accounting for Interim Dividend
F107 – Accounting for Interim DividendFIROZ KHAN
 
Brady_Deborah_Resume
Brady_Deborah_ResumeBrady_Deborah_Resume
Brady_Deborah_ResumeDeborah Brady
 
Concorso Allievi Agenti Polizia di Stato 2016 - Bando
Concorso Allievi Agenti Polizia di Stato 2016 - BandoConcorso Allievi Agenti Polizia di Stato 2016 - Bando
Concorso Allievi Agenti Polizia di Stato 2016 - BandoConcorsando.it
 

Destaque (10)

Masa rotunda "Environmental education"
Masa rotunda "Environmental education"Masa rotunda "Environmental education"
Masa rotunda "Environmental education"
 
Instagram
InstagramInstagram
Instagram
 
Primeiro encontro infalivel
Primeiro encontro infalivelPrimeiro encontro infalivel
Primeiro encontro infalivel
 
ted talk
ted talkted talk
ted talk
 
Representation
RepresentationRepresentation
Representation
 
Property Sales and Rentals
Property Sales and RentalsProperty Sales and Rentals
Property Sales and Rentals
 
F107 – Accounting for Interim Dividend
F107 – Accounting for Interim DividendF107 – Accounting for Interim Dividend
F107 – Accounting for Interim Dividend
 
Brady_Deborah_Resume
Brady_Deborah_ResumeBrady_Deborah_Resume
Brady_Deborah_Resume
 
Resume_pdf
Resume_pdfResume_pdf
Resume_pdf
 
Concorso Allievi Agenti Polizia di Stato 2016 - Bando
Concorso Allievi Agenti Polizia di Stato 2016 - BandoConcorso Allievi Agenti Polizia di Stato 2016 - Bando
Concorso Allievi Agenti Polizia di Stato 2016 - Bando
 

Semelhante a Carro Cheio: Aplicativo para formação de caronas

Rich Internet Applications com clientes offline utilizando Gears
Rich Internet Applications com clientes offline utilizando GearsRich Internet Applications com clientes offline utilizando Gears
Rich Internet Applications com clientes offline utilizando GearsEduardo Cereto Carvalho
 
Relatório de Projecto de Licenciatura
Relatório de Projecto de LicenciaturaRelatório de Projecto de Licenciatura
Relatório de Projecto de LicenciaturaJoel Carvalho
 
Implementation of a Participatory Sensing Solution to Collect Data About Pave...
Implementation of a Participatory Sensing Solution to Collect Data About Pave...Implementation of a Participatory Sensing Solution to Collect Data About Pave...
Implementation of a Participatory Sensing Solution to Collect Data About Pave...Eduardo Carrara de Araujo
 
Trabalho de conclusão de curso
Trabalho de conclusão de cursoTrabalho de conclusão de curso
Trabalho de conclusão de cursoRafael Bitencourt
 
Disponibilização de Informações Geográficas em um Ambiente Computacional Util...
Disponibilização de Informações Geográficas em um Ambiente Computacional Util...Disponibilização de Informações Geográficas em um Ambiente Computacional Util...
Disponibilização de Informações Geográficas em um Ambiente Computacional Util...Victor Hugo Moura
 
Iptables
IptablesIptables
IptablesTiago
 
Animação Foto-Realista de Fluidos Utilizando Métodos Lagrangeanos
Animação Foto-Realista de Fluidos Utilizando Métodos LagrangeanosAnimação Foto-Realista de Fluidos Utilizando Métodos Lagrangeanos
Animação Foto-Realista de Fluidos Utilizando Métodos LagrangeanosJoão Vicente P. Reis Fo.
 
Design de Informação: Interface web para infográfico sobre a Balneabilidade n...
Design de Informação: Interface web para infográfico sobre a Balneabilidade n...Design de Informação: Interface web para infográfico sobre a Balneabilidade n...
Design de Informação: Interface web para infográfico sobre a Balneabilidade n...Patricia Prado
 
Relatorio Bic Schoolsenses@Internet
Relatorio Bic Schoolsenses@InternetRelatorio Bic Schoolsenses@Internet
Relatorio Bic Schoolsenses@InternetAntonio Nascimento
 
2014 kira aplicacao_tecnicas_mineracao
2014 kira aplicacao_tecnicas_mineracao2014 kira aplicacao_tecnicas_mineracao
2014 kira aplicacao_tecnicas_mineracaoWosley Arruda
 
Intro redes
Intro redesIntro redes
Intro redesTiago
 
tccfinal
tccfinaltccfinal
tccfinalrjunkes
 
Nuki's Brechó: Sistema Colaborativo em um Cenário de Moda Sustentável - Anusk...
Nuki's Brechó: Sistema Colaborativo em um Cenário de Moda Sustentável - Anusk...Nuki's Brechó: Sistema Colaborativo em um Cenário de Moda Sustentável - Anusk...
Nuki's Brechó: Sistema Colaborativo em um Cenário de Moda Sustentável - Anusk...Anuska Rehn
 
Dissertação de Mestrado - Planejamento para Serviços Web Semânticos
Dissertação de Mestrado - Planejamento para Serviços Web SemânticosDissertação de Mestrado - Planejamento para Serviços Web Semânticos
Dissertação de Mestrado - Planejamento para Serviços Web SemânticosJuliana Chahoud
 
Pim i terminais de consulta copa 2014_olímpiadas 2016(rev final)_11 05 2013
Pim i terminais de consulta copa 2014_olímpiadas 2016(rev  final)_11 05 2013Pim i terminais de consulta copa 2014_olímpiadas 2016(rev  final)_11 05 2013
Pim i terminais de consulta copa 2014_olímpiadas 2016(rev final)_11 05 2013Cesar Jardim
 
Sistema de informação ao usuário da rede de transporte público (ônibus) atrav...
Sistema de informação ao usuário da rede de transporte público (ônibus) atrav...Sistema de informação ao usuário da rede de transporte público (ônibus) atrav...
Sistema de informação ao usuário da rede de transporte público (ônibus) atrav...Renato Arbex
 
Monografia Computação na Névoa
Monografia Computação na NévoaMonografia Computação na Névoa
Monografia Computação na NévoaBruno Oliveira
 

Semelhante a Carro Cheio: Aplicativo para formação de caronas (20)

Rich Internet Applications com clientes offline utilizando Gears
Rich Internet Applications com clientes offline utilizando GearsRich Internet Applications com clientes offline utilizando Gears
Rich Internet Applications com clientes offline utilizando Gears
 
Relatório de Projecto de Licenciatura
Relatório de Projecto de LicenciaturaRelatório de Projecto de Licenciatura
Relatório de Projecto de Licenciatura
 
Implementation of a Participatory Sensing Solution to Collect Data About Pave...
Implementation of a Participatory Sensing Solution to Collect Data About Pave...Implementation of a Participatory Sensing Solution to Collect Data About Pave...
Implementation of a Participatory Sensing Solution to Collect Data About Pave...
 
Dm ivo costa_2009_ant
Dm ivo costa_2009_antDm ivo costa_2009_ant
Dm ivo costa_2009_ant
 
Trabalho de conclusão de curso
Trabalho de conclusão de cursoTrabalho de conclusão de curso
Trabalho de conclusão de curso
 
Disponibilização de Informações Geográficas em um Ambiente Computacional Util...
Disponibilização de Informações Geográficas em um Ambiente Computacional Util...Disponibilização de Informações Geográficas em um Ambiente Computacional Util...
Disponibilização de Informações Geográficas em um Ambiente Computacional Util...
 
Iptables
IptablesIptables
Iptables
 
Animação Foto-Realista de Fluidos Utilizando Métodos Lagrangeanos
Animação Foto-Realista de Fluidos Utilizando Métodos LagrangeanosAnimação Foto-Realista de Fluidos Utilizando Métodos Lagrangeanos
Animação Foto-Realista de Fluidos Utilizando Métodos Lagrangeanos
 
Design de Informação: Interface web para infográfico sobre a Balneabilidade n...
Design de Informação: Interface web para infográfico sobre a Balneabilidade n...Design de Informação: Interface web para infográfico sobre a Balneabilidade n...
Design de Informação: Interface web para infográfico sobre a Balneabilidade n...
 
Relatorio Bic Schoolsenses@Internet
Relatorio Bic Schoolsenses@InternetRelatorio Bic Schoolsenses@Internet
Relatorio Bic Schoolsenses@Internet
 
2014 kira aplicacao_tecnicas_mineracao
2014 kira aplicacao_tecnicas_mineracao2014 kira aplicacao_tecnicas_mineracao
2014 kira aplicacao_tecnicas_mineracao
 
Intro redes
Intro redesIntro redes
Intro redes
 
2014 Monografia Final
2014 Monografia Final2014 Monografia Final
2014 Monografia Final
 
tccfinal
tccfinaltccfinal
tccfinal
 
ink2canvas
ink2canvasink2canvas
ink2canvas
 
Nuki's Brechó: Sistema Colaborativo em um Cenário de Moda Sustentável - Anusk...
Nuki's Brechó: Sistema Colaborativo em um Cenário de Moda Sustentável - Anusk...Nuki's Brechó: Sistema Colaborativo em um Cenário de Moda Sustentável - Anusk...
Nuki's Brechó: Sistema Colaborativo em um Cenário de Moda Sustentável - Anusk...
 
Dissertação de Mestrado - Planejamento para Serviços Web Semânticos
Dissertação de Mestrado - Planejamento para Serviços Web SemânticosDissertação de Mestrado - Planejamento para Serviços Web Semânticos
Dissertação de Mestrado - Planejamento para Serviços Web Semânticos
 
Pim i terminais de consulta copa 2014_olímpiadas 2016(rev final)_11 05 2013
Pim i terminais de consulta copa 2014_olímpiadas 2016(rev  final)_11 05 2013Pim i terminais de consulta copa 2014_olímpiadas 2016(rev  final)_11 05 2013
Pim i terminais de consulta copa 2014_olímpiadas 2016(rev final)_11 05 2013
 
Sistema de informação ao usuário da rede de transporte público (ônibus) atrav...
Sistema de informação ao usuário da rede de transporte público (ônibus) atrav...Sistema de informação ao usuário da rede de transporte público (ônibus) atrav...
Sistema de informação ao usuário da rede de transporte público (ônibus) atrav...
 
Monografia Computação na Névoa
Monografia Computação na NévoaMonografia Computação na Névoa
Monografia Computação na Névoa
 

Carro Cheio: Aplicativo para formação de caronas

  • 1. Pontif´ıcia Universidade Cat´olica de Minas Gerais Bacharelado em Sistemas de Informa¸c˜ao Trabalho de Conclus˜ao de Curso Carro Cheio: Um Aplicativo Para Forma¸c˜ao de Caronas em Redes Sociais Como Forma de Favorecer a Mobilidade Urbana em Belo Horizonte Fernando de Figueiredo Torres Belo Horizonte Dezembro 2010
  • 2. Fernando de Figueiredo Torres Carro Cheio: Um Aplicativo Para Forma¸c˜ao de Caronas em Redes Sociais Como Forma de Favorecer a Mobilidade Urbana em Belo Horizonte Trabalho apresentado ao Instituto de Ciˆencias Exatas e Inform´atica da Pontif´ıcia Universidade Cat´olica de Minas Gerais como requisito parcial a obten¸c˜ao da gradua¸c˜ao em Bacharelado em Sistemas de Informa¸c˜ao Orientador: Fabio Tirelo Pontif´ıcia Universidade Cat´olica de Minas Gerais Instituto de Ciˆencias Exatas e Inform´atica Belo Horizonte Dezembro 2010
  • 3. Trabalho de Conclus˜ao de Curso sob o t´ıtulo “Carro Cheio: Um Aplicativo Para Forma¸c˜ao de Caronas em Redes Sociais Como Forma de Favorecer a Mobilidade Urbana em Belo Horizonte”, do Instituto de Ciˆencias Exatas e Inform´atica da Pontif´ıcia Universidade Cat´olica de Minas Gerais, Belo Horizonte, dezembro 2010. Prof. Fabio Tirelo Orientador Pontif´ıcia Universidade Cat´olica de Minas Gerais Instituto de Ciˆencias Exatas e Inform´atica Prof. Paulo C´esar do Amaral Pereira Examinador Pontif´ıcia Universidade Cat´olica de Minas Gerais Instituto de Ciˆencias Exatas e Inform´atica Prof. Zenilton Kleber Gon¸calves do Patroc´ınio J´unior Examinador Pontif´ıcia Universidade Cat´olica de Minas Gerais Instituto de Ciˆencias Exatas e Inform´atica
  • 4. Acho que nossas chances n˜ao parecem boas hoje, mas a ´unica forma de falhar, para mim, ´e apenas n˜ao tentando. Gary Kasparov
  • 5. Agradecimentos A realiza¸c˜ao deste trabalho s´o foi poss´ıvel devido `a ajuda que tive, direta e indireta- mente, de v´arias pessoas, ao longo dessa jornada. No in´ıcio, tudo come¸cou com uma id´eia, enviei para o professor Fabio Tirelo, que prontamente se interessou em orientar o meu trabalho, e ao qual agrade¸co pela orienta¸c˜ao, incentivo, e comprometimento demonstrado em nossas reuni˜oes. Durante as centenas de horas investidas nesta pesquisa, contei com a excepcional ajuda do Google, que me ofereceu condi¸c˜oes de encontrar todas as informa¸c˜oes que precisei, al´em de disponibilizar o uso de sua API do Google Maps, para toda a comunidade de desenvolvedores ao redor do Mundo. Muitos dos problemas que encontrei durante o aprendizado da API do Google Maps, s´o foram solucionados gra¸cas `a boa vontade de Mark Williams e Bill Chadwick, que um dia disponibilizaram seus experimentos na Internet, servindo de ´otimos tutoriais. Agrade¸co tamb´em `aqueles que, por vezes, me proporcionaram momentos de distra¸c˜ao, para a renova¸c˜ao das id´eias. Aos meus amigos, obrigado por me tirarem da frente do computador em alguns (poucos, ´e verdade) s´abados.
  • 6. Resumo A mobilidade urbana ´e uma importante ´area de estudos da administra¸c˜ao p´ublica cujo papel ´e proporcionar o irrestrito deslocamento de pessoas e ve´ıculos no espa¸co da cidade. A necessidade de pol´ıticas de mobilidade urbana aumenta `a medida que aumenta, tamb´em, a disputa pelo espa¸co urbano, decorrente do crescimento anual da frota de ve´ıculos. Entretanto, ´e fundamental a iniciativa e o comprometimento da popula¸c˜ao para o sucesso desse processo. Diante disso, este trabalho estuda a pr´atica do compartilhamento do carro, ou as “caronas”, com o objetivo de contribuir para a diminui¸c˜ao de ve´ıculos circulando nas vias da cidade, bem como a diminui¸c˜ao de pessoas utilizando o transporte coletivo. A pesquisa realizada se concentrou em dados da cidade de Belo Horizonte, Minas Gerais. Para atingir os objetivos deste trabalho, foi desenvolvido o “Carro Cheio” – um aplicativo para a rede social Orkut – que possibilita aos seus usu´arios divulgarem e encontrarem vagas de carona. Atrav´es do Carro Cheio, os usu´arios do Orkut podem combinar caronas com pessoas com as quais j´a mant´em contato, sendo uma op¸c˜ao mais segura em rela¸c˜ao aos demais sites de carona. Ainda, o Carro Cheio busca rotas com proximidade de coordenadas geogr´aficas e utiliza informa¸c˜oes sobre as linhas de ˆonibus de Belo Horizonte em suas respostas. Palavras-chave: Redes sociais. Mobilidade urbana. API Opensocial. API Google Maps.
  • 7. Lista de Figuras 1 Composi¸c˜ao da frota em BH, em dez. 2009 . . . . . . . . . . . . . . . . p. 12 2 Queda na velocidade do transporte p´ublico em BH, entre 2002 e 2006 . p. 13 3 Crescimento da frota em BH, entre 2002 e 2006 . . . . . . . . . . . . . p. 13 4 Presen¸ca de usu´arios brasileiros nas principais redes sociais (em milh˜oes) p. 19 5 Modelo e fluxo de dados de um aplicativo social . . . . . . . . . . . . . p. 20 6 Arquitetura da aplica¸c˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . p. 23 7 Diagrama do modelo de dados do aplicativo . . . . . . . . . . . . . . . p. 24 8 P´agina da BHTRANS com a rela¸c˜ao das linhas de ˆonibus de Belo Horizonte p. 25 9 P´agina de itiner´arios no site da BHTRANS . . . . . . . . . . . . . . . . p. 26 10 Trecho do XML de resposta do servi¸co de geocodifica¸c˜ao do Google . . p. 26 11 Diagrama de casos de uso . . . . . . . . . . . . . . . . . . . . . . . . . p. 27 12 P´agina de registro no Orkut sandbox . . . . . . . . . . . . . . . . . . . p. 28 13 Conte´udo inicial do descritor do aplicativo . . . . . . . . . . . . . . . . p. 28 14 P´agina de submiss˜ao do aplicativo . . . . . . . . . . . . . . . . . . . . . p. 29 15 P´agina de confirma¸c˜ao dos dados . . . . . . . . . . . . . . . . . . . . . p. 29 16 Processo de desenvolvimento do aplicativo . . . . . . . . . . . . . . . . p. 29 17 Tela do aplicativo: oferecer carona . . . . . . . . . . . . . . . . . . . . . p. 30 18 Tela do aplicativo: desambigua¸c˜ao de locais . . . . . . . . . . . . . . . p. 31 19 Tela do aplicativo: desenho da rota do motorista . . . . . . . . . . . . . p. 32 20 Transi¸c˜ao de estados para a modifica¸c˜ao da rota . . . . . . . . . . . . . p. 33 21 Tela do aplicativo: salvar uma nova rota . . . . . . . . . . . . . . . . . p. 33 22 Registros na tabela rota passos . . . . . . . . . . . . . . . . . . . . . p. 34
  • 8. 23 Representa¸c˜ao gr´afica dos dados de uma rota . . . . . . . . . . . . . . . p. 34 24 Tela do aplicativo: janela de busca de rotas . . . . . . . . . . . . . . . p. 35 25 Fluxo de dados durante a busca por rotas . . . . . . . . . . . . . . . . p. 35 26 Fun¸c˜ao de c´alculo da distˆancia linear entre dois pontos na Terra . . . . p. 36 27 Heur´ıstica de busca: cen´ario hipot´etico . . . . . . . . . . . . . . . . . . p. 36 28 Heur´ıstica de busca: primeira itera¸c˜ao . . . . . . . . . . . . . . . . . . p. 37 29 Heur´ıstica de busca: segunda itera¸c˜ao . . . . . . . . . . . . . . . . . . . p. 37 30 Heur´ıstica de busca: busca por ˆonibus . . . . . . . . . . . . . . . . . . . p. 38 31 Heur´ıstica de busca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 38 32 Tela do aplicativo: enviar pedido de carona . . . . . . . . . . . . . . . . p. 39 33 Tela do aplicativo: visualizar, aceitar e recusar pedidos . . . . . . . . . p. 39 34 Tela do aplicativo: avaliar usu´ario . . . . . . . . . . . . . . . . . . . . . p. 40 35 Rota utilizada nos testes testes . . . . . . . . . . . . . . . . . . . . . . p. 41 36 Tela do aplicativo: resultado do Teste 3 . . . . . . . . . . . . . . . . . . p. 42 37 Tela do aplicativo: resultado do Teste 4 . . . . . . . . . . . . . . . . . . p. 43
  • 9. Lista de Tabelas 1 Descri¸c˜ao das tabelas do modelo de dados . . . . . . . . . . . . . . . . p. 24 2 Vis˜ao geral dos casos de uso do aplicativo . . . . . . . . . . . . . . . . p. 27 3 Parˆametros de buscas por caronas . . . . . . . . . . . . . . . . . . . . . p. 41
  • 10. Lista de Abreviaturas AJAX Asynchronous Javascript + XML. API Application Programming Interface. CSS Cascading Style Sheet. DENATRAN Departamento Nacional de Trˆansito. FTP File Transfer Protocol. HTML Hypertext Markup Language. HTTP Hypertext Transfer Protocol. IBGE Instituto Brasileiro de Geografia e Estat´ıstica. PIB Produto Interno Bruto. XML Extensible Markup Language.
  • 11. Sum´ario 1 Introdu¸c˜ao p. 12 1.1 Motiva¸c˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 14 1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 15 1.3 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 15 2 Revis˜ao da Literatura p. 17 2.1 Mobilidade Urbana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 17 2.2 Redes Sociais On-line . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 18 2.3 API Opensocial 0.8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 20 2.4 JQuery 1.2.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 21 2.5 API Javascript Google Maps 2.0 . . . . . . . . . . . . . . . . . . . . . . p. 21 2.6 Plataforma LAMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 22 3 Metodologia p. 23 3.1 Escolha das Tecnologias Apropriadas . . . . . . . . . . . . . . . . . . . p. 23 3.2 Desenho do Modelo de Dados . . . . . . . . . . . . . . . . . . . . . . . p. 24 3.3 Obten¸c˜ao dos Itiner´arios das Linhas de ˆOnibus de BH . . . . . . . . . . p. 24 3.4 Implementa¸c˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 27 3.4.1 Orkut sandbox . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 28 3.4.2 Cadastrar rotas . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 30 3.4.3 Buscar rotas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 34 3.4.3.1 Fluxo de dados da busca por rotas . . . . . . . . . . . p. 35
  • 12. 3.4.3.2 C´alculo da distˆancia linear entre dois pontos na Terra . p. 36 3.4.3.3 Heur´ıstica de busca por rotas . . . . . . . . . . . . . . p. 36 3.4.4 Demais Casos de Uso . . . . . . . . . . . . . . . . . . . . . . . . p. 38 4 Resultados p. 41 4.1 Prepara¸c˜ao do Ambiente de Testes . . . . . . . . . . . . . . . . . . . . p. 41 4.2 Avalia¸c˜ao dos Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . p. 42 5 Conclus˜ao p. 44 Referˆencias p. 45
  • 13. 12 1 Introdu¸c˜ao A cidade de Belo Horizonte (BH), fundada em 1897, foi a primeira capital planejada do pa´ıs, inicialmente projetada para 200 mil habitantes. Mais de um s´eculo ap´os a sua funda¸c˜ao, a capital atingiu uma popula¸c˜ao aproximada de 2,5 milh˜oes de habitantes, tendo o 4o. maior PIB do Brasil (IBGE, 2007). Em rela¸c˜ao ao trˆansito, BH terminou o ano de 2009 com uma frota de 1,2 milh˜oes de ve´ıculos, composta principalmente por autom´oveis (82%) e motocicletas (13%), conforme mostrado na Figura 1. Esse n´umero revela uma propor¸c˜ao aproximada de um ve´ıculo para cada dois habitantes. Para se fazer uma compara¸c˜ao, a cidade de S˜ao Paulo, cujos problemas de trˆansito s˜ao constantemente citados na m´ıdia, possui a mesma propor¸c˜ao (IBGE, 2007; DENATRAN, 2010). Figura 1: Composi¸c˜ao da frota em BH, em dez. 2009 Fonte: DENATRAN, 2010 Com a facilidade cada vez maior em se adquirir um ve´ıculo, mais pessoas tˆem trocado o uso do transporte p´ublico pelo transporte particular. A princ´ıpio, podemos imaginar que essa troca representa ganho na qualidade de vida desses cidad˜aos. Entretanto, uma vis˜ao mais ampla mostra que essa taxa de aumento da frota, por ser muito mais alta que a capacidade do Estado em criar infraestruturas que a suporte, traz consequˆencias negativas `a qualidade da mobilidade urbana e ao meio ambiente. Um estudo, feito pela Empresa de Transportes e Trˆansito de Belo Horizonte (BH-
  • 14. 13 TRANS, 2008), analisou a velocidade m´edia do transporte p´ublico nos hor´arios de pico da manh˜a e da tarde, em BH. Esse estudo mostra que entre 2002 e 2006 houve uma queda da velocidade em 6% no pico da manh˜a, e em 4,9% no pico da tarde (Figura 2). Considerando o mesmo per´ıodo, vˆe-se na Figura 3 o n´umero acumulado de novos ve´ıculos adicionados `a frota na cidade por categoria. Uma an´alise das Figuras 2 e 3 produz fortes ind´ıcios de que o crescimento da frota de autom´oveis tem grande responsabilidade na degrada¸c˜ao da qualidade do trˆansito. Figura 2: Queda na velocidade do transporte p´ublico em BH, entre 2002 e 2006 Fonte: BHTRANS, 2008 Figura 3: Crescimento da frota em BH, entre 2002 e 2006 Fonte: DENATRAN, 2010 O aumento no consumo de autom´oveis n˜ao se d´a apenas pela sua utilidade como meio de transporte. Na atualidade, o autom´ovel ´e considerado objeto de desejo e status social. Ainda que os servi¸cos de transporte p´ublico sejam melhorados, fica dif´ıcil desestimular o consumo e o uso do autom´ovel. Passa a ser necess´ario, ent˜ao, estimular o uso consciente do autom´ovel particular, transformando-no em um agente em prol da mobilidade urbana sustent´avel. O uso consciente do autom´ovel consiste em certas medidas que, se tomadas podem colaborar para uma melhoria na qualidade do transporte e do meio ambiente de forma geral. Essas medidas v˜ao desde a escolha por ve´ıculos com combust´ıveis menos poluentes at´e a mudan¸ca da vis˜ao individualista no uso do autom´ovel para uma vis˜ao coletiva. Nesse sentido, este trabalho foca a pr´atica da carona solid´aria. Os impactos da carona solid´aria na mobilidade urbana tendem a ser muito positivos. Um motorista que leve pessoas a pontos compreendidos em seu trajeto, pode ajudar a diminuir o n´umero de usu´arios do transporte p´ublico naquele dia. De forma an´aloga, propriet´arios de autom´oveis poderiam se revezar para irem juntos ao trabalho, diminuindo o n´umero de autom´oveis nas ruas. Apesar de todo o benef´ıcio da carona solid´aria, quest˜oes culturais e de seguran¸ca s˜ao barreiras a serem vencidas. Em nossa sociedade, h´a receios associados `a pr´atica da carona;
  • 15. 14 por exemplo, ´e comum ensinar a crian¸cas que n˜ao se deve aceitar caronas de estranhos. Considerando-se todo o cen´ario descrito, este trabalho estudou uma poss´ıvel solu¸c˜ao para o problema de se formar grupos de caronas, levando-se em conta as barreiras sociais e culturais encontradas nesse processo. Al´em disso, foram analisadas as formas j´a utilizadas para o mesmo prop´osito e suas limita¸c˜oes. A solu¸c˜ao proposta deve ser abrangente de forma a alcan¸car o maior n´umero de pessoas em um ambiente virtual (on-line). Ainda, deve oferecer boas alternativas para as limita¸c˜oes encontradas em outros mecanismos. Para tanto, estudou-se o ambiente das redes sociais como ponto central da solu¸c˜ao. 1.1 Motiva¸c˜ao Existem muitos fatores que dificultam a tarefa de encontrar e oferecer caronas. Por meio da comunica¸c˜ao verbal direta geram-se muitos ru´ıdos, pois ´e necess´ario abordar todos os indiv´ıduos do grupo e question´a-los sobre sua inten¸c˜ao em oferecer ou utilizar caronas. Al´em disso, s˜ao necess´arias algumas intera¸c˜oes repetitivas entre as partes para verificar quest˜oes de trajeto, paradas e vagas dispon´ıveis. De outra forma, o uso de quadros de avisos em ´areas de circula¸c˜ao tamb´em apresenta problemas. Sabe-se que as pessoas nem sempre lˆeem quadros de avisos, e nem sempre os an´uncios disponibilizam todas as informa¸c˜oes que seriam necess´arias. Tamb´em, manter o quadro atualizado ´e trabalhoso. Quando se opta por listas de discuss˜ao on-line, tamb´em surgem alguns problemas. Conversas iniciadas na lista podem acabar em conversas externas e os membros da lista podem n˜ao saber do estado atual de cada membro com rela¸c˜ao `as suas caronas. As pessoas geralmente n˜ao recorrem ao hist´orico de listas de discuss˜ao antes de enviar uma mensagem. Isso gera muitas mensagens repetitivas e, com isso, muitos usu´arios tendem a abandonar a lista devido ao grande tr´afego de e-mails em suas caixas postais. Uma alternativa `as abordagens tradicionais consiste no uso de sites de redes de caro- nas (BIGOO, 2010; CARONEIROS, 2010). Esses mecanismos se mostram mais eficientes do que as formas citadas anteriormente, por´em obrigam o usu´ario a se cadastrar e utilizar mais um site para um fim espec´ıfico. Al´em disso, pode ser que amigos que j´a se relacionem em uma rede social, optem por entrar em sites de caronas diferentes. Considerando-se as funcionalidades das redes de caronas dispon´ıveis atualmente, as formas como as buscas s˜ao realizadas tamb´em podem n˜ao ser t˜ao eficientes, pois encontram caronas baseadas nas localidades de origem e destino, sem considerar outras informa¸c˜oes como as coor-
  • 16. 15 denadas geogr´aficas ao longo de toda a rota do motorista e potencial passageiro. Al´em disso, n˜ao usam informa¸c˜oes de transporte coletivo para sugerir respostas que possam ser satisfat´orias aos seus usu´arios. Os problemas aqui levantados nos levam a propor uma solu¸c˜ao alternativa, que se beneficie das redes sociais j´a populares e amplamente utilizadas, agregando-lhes uma nova funcionalidade. Com essa abordagem, espera-se manter os usu´arios em um ambiente a que j´a estejam familiarizados, sem obrig´a-los a migrar para um novo ambiente e constru´ırem uma nova rede social. 1.2 Objetivos O objetivo geral deste trabalho ´e criar um meio eficiente para que indiv´ıduos possam combinar caronas no ambiente de uma rede social, por meio do desenvolvimento de um aplicativo integrado a esse ambiente. A rede social escolhida, nesse caso, foi o Orkut. Espera-se que os usu´arios do Orkut adicionem o aplicativo aos seus perfis e, a partir disso, possam interagir com outros usu´arios que tamb´em possuam o aplicativo. Dessa maneira, ser´a poss´ıvel cadastrar viagens detalhando seus trajetos e pontos de parada. Ser´a poss´ıvel, tamb´em encontrar caronas com base em coordenadas geogr´aficas, al´em de poderem solicitar, aceitar ou recusar pedidos de carona. No caso de caronas realizadas, os usu´arios poder˜ao se avaliar, atribuindo opini˜oes com rela¸c˜ao `as suas experiˆencias. Deseja-se ainda, combinar ofertas de caronas com informa¸c˜oes do transporte p´ublico de BH. Com isso, quando n˜ao houver rotas que passem pr´oximas ao passageiro, ser´a poss´ıvel sugerir viagens compostas por caronas e ˆonibus. 1.3 Justificativa Podemos associar a pr´atica de caronas `a solidariedade e confian¸ca, praticadas na maioria das vezes entre pessoas com h´abitos semelhantes, tais como ir `a mesma faculdade ou `a mesma regi˜ao da cidade. Portanto, caronas tˆem um potencial maior de ocorrer entre pessoas de um mesmo grupo social. Com base nesta id´eia, escolhemos a rede social Orkut como ambiente para a im- planta¸c˜ao do aplicativo de caronas, uma vez que nessa rede j´a est˜ao formados la¸cos de afinidade e confian¸ca entre seus usu´arios. Al´em disso, 72% dos brasileiros que usam redes
  • 17. 16 sociais (26 milh˜oes de usu´arios) est˜ao no Orkut (´EPOCA, 2010), o que o torna um dos trˆes sites mais populares da Internet brasileira (ALEXA, 2010). Outra justificativa para a abordagem escolhida ´e que ela pode se apresentar como uma mudan¸ca de paradigma com rela¸c˜ao aos sites de caronas existentes. Enquanto nas outras solu¸c˜oes “o usu´ario deve ir at´e aonde o aplicativo est´a”, nesta abordagem “o aplicativo vai aonde o usu´ario j´a est´a”. Isso permite que o usu´ario utilize um novo recurso em um ambiente que lhe ´e familiar.
  • 18. 17 2 Revis˜ao da Literatura 2.1 Mobilidade Urbana Segundo a BHTRANS (2008), mobilidade urbana ´e o conjunto de deslocamentos de pessoas e bens, com base nos desejos e necessidades de acesso ao espa¸co urbano, por meio da utiliza¸c˜ao dos diversos modos de transporte. O conceito de “gerenciamento da mobilidade” tamb´em ´e tratado por Rocha et al. (2006), como a busca de um equil´ıbrio mais est´avel entre a oferta de infraestrutura de transportes e o atendimento adequado da demanda por viagens (deslocamentos). Esse campo de estudos surgiu nos Estados Unidos com a crise de energia de 1973, para mitigar problemas decorrentes da escassez de derivados de petr´oleo (ROCHA et al., 2006 p. 4 apud BLACK, 2001). O aumento populacional e o aumento da frota nas cidades causam uma disputa maior pelos espa¸cos urbanos, que n˜ao crescem na mesma propor¸c˜ao. A perda de tempo, a falta de lugar para estacionar e a irrita¸c˜ao que os congestionamentos causam s˜ao reflexos ne- gativos do aumento da frota. Ainda, a polui¸c˜ao causada pelos ve´ıculos tamb´em aumenta, causando danos tanto ao meio ambiente quanto a sa´ude da popula¸c˜ao. V´arias cidades no mundo estudam pol´ıticas e a¸c˜oes para melhorias na qualidade de vida da popula¸c˜ao por meio de uma mobilidade urbana sustent´avel. A palavra sustent´avel aqui, extende o conceito de mobilidade urbana considerando “[...] a realiza¸c˜ao desses des- locamentos sem comprometimento do meio ambiente, das ´areas e das atividades urbanas, al´em do pr´oprio transporte” (BHTRANS, 2008). Pode-se citar Londres, uma das cidades com plano de gerenciamento de mobilidade mais difundido e consolidado, possuindo as seguintes estrat´egias: campanhas de conscien- tiza¸c˜ao sobre viagens; ciclismo e caminhada; ped´agio urbano; ˆonibus e tramway (ˆonibus el´etrico) gr´atis para menores de 16 anos; dirija de outra maneira (drive another way) e zonas de baixa emiss˜ao. Para o objetivo deste trabalho, destaca-se o compartilhamento do carro (car polling), que ´e uma das medidas compreendidas na estrat´egia “dirija de outra
  • 19. 18 maneira” (ROCHA et al., 2006). Tal medida permite que dois ou mais usu´arios usufruam do conforto de um mesmo autom´ovel reduzindo o congestionamento e a polui¸c˜ao. Recentemente, em S˜ao Paulo, foram realizadas campanhas educativas para incentivar a “carona solid´aria”. Nessas a¸c˜oes, realizadas pela Secretaria do Meio Ambiente, moto- ristas que viajavam sozinhos recebiam a “multa legal”, uma interven¸c˜ao l´udica feita por monitores, atores e volunt´arios. O objetivo era fixar a id´eia da importˆancia de se usar o ve´ıculo de forma mais consciente (GOVERNO DE S˜AO PAULO, 2008). Em Belo Horizonte, a Prefeitura Municipal e a BHTRANS realizam o projeto PlanMob- BH (Plano de Mobilidade Urbana de Belo Horizonte). O PlanMob-BH faz parte do pro- cesso de planejamento da mobilidade urbana de Belo Horizonte para 2020. O objetivo do projeto ´e promover melhor qualidade de vida e desenvolvimento da cidade, susten- tado nos princ´ıpios de: acessbilidade, seguran¸ca, eficiˆencia, qualidade de vida, dinamismo econˆomico, a¸c˜ao integrada e inclus˜ao social. Dentre as diretrizes que o projeto visa aten- der, pode-se destacar: considerar o modo a p´e como priorit´ario; garantir o deslocamento das pessoas em um transporte coletivo de qualidade; democratizar o uso do sistema vi´ario, inclusive com medidas de restri¸c˜ao do uso do autom´ovel, quando necess´ario; construir pol´ıticas de estacionamento e distribui¸c˜ao de mercadorias; estimular o uso de transporte n˜ao motorizado, especialmente bicicletas; e por fim, garantir a todos, idependentemente da capacidade de pagamento ou locomo¸c˜ao, o direito de se deslocar e usufrir da cidade com autonomia e seguran¸ca (PLANMOB-BH, 2010). 2.2 Redes Sociais On-line Redes sociais on-line podem ser definidas como um servi¸co Web que permite in- div´ıduos constru´ırem um perfil p´ublico ou semi-p´ublico dentro desses sistemas, articulados a uma lista de outros usu´arios com os quais compartilham o mesmo ambiente e algumas conex˜oes, percorrendo suas listas de conex˜oes e outras feitas por novos usu´arios dentro do sistema (BOYD; ELLISON, 2005). Uma em cada sete pessoas no planeta frequenta pelo menos uma rede social na In- ternet. As comunidades formadas por sites como Orkut, Facebook e Twitter j´a alcan¸cam quase a soma de 1 bilh˜ao de usu´arios. Nesses ambientes virtuais, seus “habitantes” se relacionam discutindo opini˜oes, compartilhando fotos, publicando an´uncios, jogando, e at´e mesmo procurando novos amigos. A Figura 4 traz um panorama da distribui¸c˜ao dos usu´arios brasileiros entre as principais redes sociais da atualidade, onde o Orkut com
  • 20. 19 26%, Twitter com 9,8% e Facebook com 9,6% aparecem como as trˆes redes mais utilizadas (´EPOCA, 2010). Figura 4: Presen¸ca de usu´arios brasileiros nas principais redes sociais (em milh˜oes) Fonte: ´EPOCA, 2010 V´arios tˆem sido os trabalhos publicados com foco no estudo de redes sociais. Pesqui- sadores de diversas ´areas do conhecimento tˆem se interessado por entender a dinˆamica das redes de pessoas, mostrando a importˆancia desse mecanismo de rela¸c˜oes interpessoais na vida moderna (BUYUKOKTEN et al. 2003; KUMAR et al. 2006). Para os prop´ositos deste trabalho, o aspecto mais importante ´e observar a capacidade das redes sociais em disseminar e transformar o acesso a informa¸c˜ao, colaborando para que os subgrupos de indiv´ıduos contidos nelas possam aumentar seu capital social. Utiliza-se o sentido de capital social observado por Costa (2005): Essa no¸c˜ao poderia ser entendida como: a capacidade de intera¸c˜ao dos indiv´ıduos, seu potencial para interagir com os que est˜ao a sua volta, com seus parentes, amigos, colegas de trabalho, [...]. Capital social sig- nificaria aqui a capacidade de os indiv´ıduos produzirem suas pr´oprias redes, suas comunidades pessoais (COSTA, 2005 p. 239 apud BURT, 2005; LIN, 2005; NARAYAN, 1999; PORTES, 1998; GROOTAERT, 1997; FUKUYAMA, 1996; PUTMAN, 1993; COLEMAN, 1990). Finalizando, no mesmo trabalho de Costa (2005), [...] uma comunidade virtual, quando convenientemente organizada, representa uma importante riqueza em termos de conhecimento dis- tribu´ıdo, de capacidade de a¸c˜ao e de potˆencia cooperativa (COSTA, 2005, p. 246 apud L´EVY, 2002). Todas essas pondera¸c˜oes a respeito das redes sociais certificam que s˜ao uma preciosa ferramenta de media¸c˜ao de comunica¸c˜ao entre pessoas.
  • 21. 20 2.3 API Opensocial 0.8 A especifica¸c˜ao Opensocial define uma API comum para o desenvolvimento de apli- cativos sociais que podem funcionar em diversos sites (OPENSOCIAL, 2010). Figura 5: Modelo e fluxo de dados de um aplicativo social Fonte: OPENSOCIAL, 2010 Na Figura 5, vˆe-se o modelo de um aplicativo social e seus trˆes componentes principais: cliente, container e o servidor do aplicativo. O cliente ´e a representa¸c˜ao do usu´ario navegando no aplicativo. O container, por sua vez, ´e a pr´opria rede social, nesse caso, o Orkut. O papel do container ´e guardar o descritor do aplicativo (um arquivo XML) e fornecer a capacidade de manipular seus “dados sociais”1 . Por fim, o servidor do aplicativo ´e um servidor Web, que cont´em todos os arquivos do aplicativo, como imagens, arquivos CSS, Javascript e outros. Nesse servidor tamb´em est˜ao as p´aginas respons´aveis por ler e gravar informa¸c˜oes no banco de dados do aplicativo. O ponto central para se desenvolver um aplicativo social ´e entender como ocorre o fluxo de dados entre seus componentes. Utilizando como base, ainda a Figura 5, tem-se a seguinte sequˆencia de opera¸c˜oes: 1. O cliente (usu´ario) solicita ao container a visualiza¸c˜ao de um aplicativo. Nesse momento ´e carregado o descritor do aplicativo. 2. Atrav´es de protocolo HTTP via AJAX, o container envia “dados sociais” ao servidor do aplicativo, como o c´odigo do usu´ario seguido de alguma opera¸c˜ao que ele tenha realizado, por exemplo “ofereceu uma carona de A at´e B”. 3. O servidor do aplicativo recebe os dados sociais, al´em dos dados de opera¸c˜ao e armazena essas informa¸c˜oes em seu banco de dados, retornando para o container, dados em forma de HTML, XML ou qualquer outra estrutura em formato texto. 4. O container recebe esses dados e entrega ao descritor do aplicativo, que renderiza as atualiza¸c˜oes na tela do aplicativo e exibe o resultado para o usu´ario. 1 Dados sobre perfis de usu´arios, lista de amigos, fotos e ´albuns, atualiza¸c˜ao de atividades na rede, etc.
  • 22. 21 At´e a conclus˜ao deste trabalho, o Orkut era um container homologado para a vers˜ao 0.8 da API Javascript Opensocial. 2.4 JQuery 1.2.2 JQuery ´e uma biblioteca Javascript, de uso gratuito, que re´une uma cole¸c˜ao de fun¸c˜oes que permitem aos desenvolvedores escreverem c´odigos Javascript de maneira r´apida, efi- ciente e compat´ıvel com os principais modelos de navegadores (JQUERY, 2010). Nessa biblioteca, o desenvolvedor encontra fun¸c˜oes para realizar anima¸c˜oes em ele- mentos de uma p´agina HTML; trabalhar de forma simplificada em intera¸c˜oes com AJAX ; manipular eventos; e v´arias outras utilidades. Outro benef´ıcio, al´em de agilizar o desenvolvimento de aplica¸c˜oes Web, ´e a capacidade de utilizar extens˜oes escritas e disponibilizadas por outros desenvolvedores. Atrav´es dessas extens˜oes, ´e poss´ıvel reutilizar solu¸c˜oes que resolvam problemas recorrentes em uma t´ıpica aplica¸c˜ao Web, como valida¸c˜ao de formul´arios, exibi¸c˜ao de dicas de preenchimento de campos, e muitos outros. 2.5 API Javascript Google Maps 2.0 A API Javascript Google Maps ´e disponibilizada de forma gratuita pelo Google aos desenvolvedores que desejam incorporar o Google Maps em suas p´aginas. Dentre os principais recursos fornecidos pela API pode-se destacar: • Geocodifica¸c˜ao: um servi¸co de consulta, no qual se informa um endere¸co e se recebe como resposta informa¸c˜oes detalhadas sobre tal endere¸co, inclu´ındo suas coordena- das geogr´aficas; • Caminhos: desenho de linhas sobre o mapa, informando o melhor caminho, a p´e ou de autom´ovel, entre dois ou mais pontos. Al´em disso, os caminhos contˆem diversas informa¸c˜oes ´uteis, como ruas percorridas, dire¸c˜oes a serem seguidas, tempo de viagem e distˆancia; • Visualiza¸c˜ao: permite arrastar, ampliar ou reduzir o detalhamento do mapa; • Representa¸c˜ao: permite posicionar marcadores de localidades, abrir janelas de in- forma¸c˜oes em marcadores.
  • 23. 22 Outro ponto caracter´ıstico da API Google Maps ´e seu funcionamento baseado em intera¸c˜oes via AJAX entre a aplica¸c˜ao do usu´ario e os servidores do Google, onde est´a hospedada a API. 2.6 Plataforma LAMP LAMP ´e uma sigla formada pelas letras iniciais das tecnologias Linux (sistema ope- racional), Apache (servidor Web), MySQL (sistema gerenciador de bancos de dados) e PHP2 (linguagem de programa¸c˜ao). Essa combina¸c˜ao tecnologica provˆe uma completa infraestrutura para o desenvolvimento de aplica¸c˜oes Web. O fato de ser composta por tecnologias gratuitas, faz dessa plataforma uma boa alternativa em rela¸c˜ao a tecnologias comerciais como .NET e JEE (executando sobre servidores de aplica¸c˜ao comerciais, como Websphere ou Weblogic). Ainda, apesar do L, na sigla, se referir ao sistema operacional Linux, uma aplica¸c˜ao LAMP pode ser facilmente portada para Windows ou Mac OS, com pouco ou at´e mesmo nenhum trabalho de alterar c´odigos na aplica¸c˜ao. 2 O “P” pode, `as vezes, se referir a Perl ou Python.
  • 24. 23 3 Metodologia Para se alcan¸car os objetivos deste trabalho, foi desenvolvido o aplicativo “Carro Cheio”, integrado ao Orkut. O problema pesquisado foi dividido em cinco fases: escolha das tecnologias apropriadas; desenho do modelo de dados; obten¸c˜ao dos itiner´arios das linhas de ˆonibus de BH; implementa¸c˜ao; e por fim, testes. 3.1 Escolha das Tecnologias Apropriadas Para a escolha das tecnologias a serem usadas no trabalho, consideraram-se as se- guintes restri¸c˜oes: gratuidade, boa documenta¸c˜ao, curva de aprendizado reduzido e com- patibilidade com navegadores a partir das vers˜oes: Mozilla Firefox 3.2.0, Microsoft Inter- net Explorer 7.0, Google Chrome 6.0 e Apple Safari 4.0. Figura 6: Arquitetura da aplica¸c˜ao Atrav´es do desenho da arquitetura da aplica¸c˜ao (Figura 6), vˆe-se as tecnologias ele- gidas para desenvolvimento do aplicativo “Carro Cheio”. S˜ao elas: rede social Orkut, API Javascript Opensocial, Plataforma LAMP, API Google Maps e biblioteca Javascript JQuery. O uso de cada tecnologia ser´a abordado no decorrer desse cap´ıtulo.
  • 25. 24 3.2 Desenho do Modelo de Dados O modelo de dados do aplicativo ´e exposto na Figura 7, na qual s˜ao apresentadas as entidades que o comp˜oem, bem como seus relacionamentos. Figura 7: Diagrama do modelo de dados do aplicativo Cada uma das entidades ´e descrita, brevemente, na Tabela 1. Tabela 1: Descri¸c˜ao das tabelas do modelo de dados Entidade Descri¸c˜ao usuario Armazena os usu´arios do aplicativo. Os registros s˜ao inseridos no momento que os usu´arios adicionam o aplicativo em seu perfil. rota Armazena as informa¸c˜oes sobre rotas que os usu´arios criam atrav´es do aplicativo. rota passo Armazena as coordenadas (latitude, longitude) de cada passo da rota do usu´ario, na sequˆencia em que ocorrem. carona Armazena os pedidos de carona feitos por um usu´ario. Essa entidade cruza dois usu´arios, uma rota e o passo da rota que foi solicitado. onibus Armazena o cadastro das linhas de ˆonibus, por exemplo: 1010, SC02, 80. onibus itinerarios Armazena os itiner´arios de cada linha de ˆonibus. onibus itinerarios paradas Armazena as coordenadas (latitude, longitude) de cada ponto de pa- rada do ˆonibus no itiner´ario, na sequˆencia em que ocorrem. 3.3 Obten¸c˜ao dos Itiner´arios das Linhas de ˆOnibus de BH No projeto conceitual do aplicativo foi denifido que, em algumas situa¸c˜oes, quando um usu´ario fizesse uma busca por caronas, os resultados sugeridos poderiam ser viagens mis-
  • 26. 25 tas, combinando trechos de ˆonibus e trechos de autom´ovel. Eis uma situa¸c˜ao hipot´etica, na qual viagens mistas podem ser sugeridas: • Francisco procurou por uma carona. Ele sai da Pra¸ca da Liberdade, Savassi, Belo Horizonte e deseja chegar ao campus da PUC, no bairro S˜ao Gabriel, em Belo Horizonte. • Alfredo ofereceu uma carona no aplicativo. Ele tamb´em vai para a PUC, no bairro S˜ao Gabriel. Entretanto, Alfredo sai da Pra¸ca Sete, centro de Belo Horizonte. • ´E uma distˆancia razo´avel – cerca de 1,6 quilˆometros – para Francisco ir se encontrar com Alfredo, se for `a p´e. • Nesse cen´ario hipot´etico, a busca deve ser capaz de sugerir a Francisco tomar o ˆonibus 4034 (Novo Dom Bosco / Savassi) para se encontrar com Alfredo, na Pra¸ca Sete, e irem juntos at´e o campus da PUC. Para que essa funcionalidade seja poss´ıvel, ´e necess´ario possuir uma base de dados contendo as linhas de ˆonibus de BH e seus itiner´arios completos. Esses dados foram obtidos em endere¸cos dispon´ıveis no site da Empresa de Transportes e Trˆansito de Belo Horizonte – BHTRANS. Primeiro, obteve-se o n´umero de cada linha de ˆonibus atrav´es da p´agina Quadro de hor´arios1 , ilustrada na Figura 8. Figura 8: P´agina da BHTRANS com a rela¸c˜ao das linhas de ˆonibus de Belo Horizonte Fonte: BHTRANS, 2010 Em seguida, ainda no site da BHTRANS, foi consultado o itiner´ario de cada linha, atrav´es da p´agina Itiner´ario2 . Na Figura 9, vˆe-se a p´agina com o resultado para a consulta `a linha de ˆonibus 101. Nesse momento, cada endere¸co correspondente ao ponto de parada do ˆonibus foi copiado e formatado manualmente no arquivo itinerarios.txt. 1 Dispon´ıvel em: http://servicosbhtrans.pbh.gov.br/bhtrans/servicos eletronicos/ transporte qh info.asp. 2 Dispon´ıvel em: http://servicosbhtrans.pbh.gov.br/bhtrans/servicos eletronicos/ transporte itinerario resultado.asp?linha=101.
  • 27. 26 Figura 9: P´agina de itiner´arios no site da BHTRANS Fonte: BHTRANS, 2010 Ap´os o arquivo itinerarios.txt ter sido preenchido com os itiner´arios de todas as linhas de ˆonibus, este foi processado por um programa em PHP – popula onibus.php – cuja tarefa era popular as tabelas onibus, onibus itinerarios e onibus itinerarios - paradas. Entretanto, para cada ponto de parada, foi preciso gravar a sua coordenada geogr´afica. Para isso, foi utilizado o servi¸co de geocodifica¸c˜ao do Google. Tal servi¸co ´e acessado atrav´es de uma requisi¸c˜ao HTTP, fornecendo como parˆametro o endere¸co a ser geocodificado. Por exemplo, para obter as coordenadas do primeiro ponto da linha de ˆonibus 101 – Avenida Artur Bernardes 1580 – deve-se enviar a seguinte requisi¸c˜ao ao servi¸co de geocodifica¸c˜ao: http://maps.google.com/maps/geo?output=xml&sensor=false&key=abcdefg&q= Avenida Artur Bernardes 1580, Belo Horizonte, MG, Brasil Como resposta a essa requisi¸c˜ao, o geocodificador retorna um arquivo em formato XML, contendo v´arias informa¸c˜oes a respeito do endere¸co solicitado. Para este tra- balho, ´e ´util apenas as coordenadas geogr´aficas do endere¸co, presentes entre as marca¸c˜oes <coordinates></coordinates>. Para o endere¸co Avenida Artur Bernardes 1580, tem- se longitude -43.9476279 e latitude -19.9512799, conforme ilustrado na Figura 10. Figura 10: Trecho do XML de resposta do servi¸co de geocodifica¸c˜ao do Google Fonte: GOOGLE, 2010 Ap´os processar todo o arquivo itinerarios.txt, o banco de dados foi populado com os itiner´arios de todas as linhas de ˆonibus de BH. Al´em disso, os pontos de embarque e desembarque de cada ˆonibus foram mapeados com suas coordenadas geogr´aficas.
  • 28. 27 3.4 Implementa¸c˜ao O escopo do aplicativo ´e apresentado atrav´es de um diagrama de casos de uso, visto na Figura 11. Figura 11: Diagrama de casos de uso Cada caso de uso mostrado na Figura 11 ´e descrito, brevemente, na Tabela 2, possi- bilitando uma vis˜ao geral sobre as funcionalidades do aplicativo. Adiante, nas subse¸c˜oes 3.4.2 e 3.4.3, os casos de uso cadastrar rotas e buscar rotas ser˜ao descritos em mais detalhes. Os demais casos de uso ser˜ao ilustrados na subse¸c˜ao 3.4.4, atrav´es das capturas das telas desenvolvidas para cada um. Tabela 2: Vis˜ao geral dos casos de uso do aplicativo Caso de uso Descri¸c˜ao Cadastrar rota Permite a um usu´ario, que possua autom´ovel, cadastrar as suas rotas, detalhando os percursos atrav´es de um mapa. Em seguida essas rotas ficar˜ao dispon´ıveis para serem encontradas nas buscas por caronas. Buscar rota Usu´arios interessados em encontrar uma carona, informam seus locais de sa´ıda e destino e o sistema encontra rotas ´uteis a ele. Pedir carona Quando um usu´ario encontra uma rota que lhe interesse, ele pode pedir ao motorista uma carona. O aplicativo ent˜ao envia ao moto- rista, um pedido vindo desse usu´ario com o ponto onde este deseja embarcar. Visualizar pedidos Permite ao usu´ario visualizar todos os seus pedidos. Os pedidos s˜ao dividos entre pedidos enviados e pedidos recebidos. Aceitar pedido Ao visualizar seus pedidos recebidos, um usu´ario pode aceitar um pedido. Esta a¸c˜ao equivale a aceitar um pedido de carona. Recusar pedido Ao visualizar seus pedidos recebidos, um usu´ario pode recusar um pedido. Avaliar usu´ario Permite avaliar o usu´ario positivamente ou negativamente. Cada usu´ario possui um contador de avalia¸c˜oes positivas e negativas. Antes de continuar a descri¸c˜ao da implementa¸c˜ao do aplicativo, ´e necess´ario introduzir o ambiente de testes de aplicativos do Orkut, chamado sandbox.
  • 29. 28 3.4.1 Orkut sandbox O sandbox ´e uma vers˜ao do Orkut na qual os desenvolvedores podem instalar seus aplicativos sociais e test´a-los at´e estarem prontos. Figura 12: P´agina de registro no Orkut sandbox Fonte: ORKUT, 2010 A Figura 12 mostra a p´agina de registro no sandbox. O registro deve ser feito no endere¸co http://sandbox.orkut.com/SandboxSignup.aspx. Ap´os realizar o registro, ´e poss´ıvel acessar o ambiente sandbox e realizar os testes no aplicativo. O acesso ao ambiente sandbox ´e feito no endere¸co http://sandbox.orkut.com/. O primeiro passo para implementa¸c˜ao do aplicativo foi submeter seu descritor inicial, cha- mado aplicativo.xml, contendo informa¸c˜oes b´asicas sobre autoria do aplicativo e as bibliotecas que este utilizaria. A Figura 13 lista o conte´udo do descritor do aplicativo. Figura 13: Conte´udo inicial do descritor do aplicativo Como pode-se ver na Figura 13, o descritor se divide em duas se¸c˜oes principais: <ModulePrefs /> e <Content />. Na se¸c˜ao <ModulePrefs /> devem ser informados os parˆametros de autoria e descri¸c˜ao do aplicativo. Nesta se¸c˜ao tamb´em informa-se ao container quais bibliotecas de fun¸c˜oes devem ser carregadas para o aplicativo. A se¸c˜ao
  • 30. 29 <Content /> ´e destinada a receber todo o conte´udo do aplicativo. Nela devem ser colo- cados todos os c´odigos HTML, Javascript e outros. Para submeter o descritor ao sandbox, antes foi preciso envi´a-lo para o servidor do aplicativo, atrav´es de um programa de FTP. O processo de submeter o descritor do aplicativo ´e mostrado nas Figuras 14 e 15. Figura 14: P´agina de submiss˜ao do aplicativo Fonte: ORKUT, 2010 Figura 15: P´agina de confirma¸c˜ao dos dados Fonte: ORKUT, 2010 Na Figura 14, vˆe-se a p´agina de submiss˜ao de um novo aplicativo. No campo de texto ´e informado o endere¸co p´ublico do descritor do aplicativo, no caso deste trabalho, o descritor p´ublico se encontra no endere¸co http://www.carrocheio.com/aplicativo.xml3 . Ap´os clicar no bot˜ao add application, ´e carregada a p´agina de confirma¸c˜ao, ilustrada na Figura 15. Nessa p´agina s˜ao exibidas as configura¸c˜oes informadas no descritor, como nome e e-mail do autor, nome e descri¸c˜ao do aplicativo, al´em das imagens de ´ıcone e de captura de tela. Tamb´em ´e poss´ıvel definir se o aplicativo ter´a acesso a informa¸c˜oes dos ´albuns de fotos e se suas atividades ser˜ao divulgadas aos amigos da rede social. Ap´os clicar no bot˜ao save e confirmar a instala¸c˜ao do aplicativo, este tornou-se dis- pon´ıvel na lista de aplicativos do desenvolvedor. A partir da instala¸c˜ao, o aplicativo entra em processo de desenvolvimento, descrito na Figura 16. Figura 16: Processo de desenvolvimento do aplicativo 3 Foi feito o registro do dom´ınio carrocheio.com e a contrata¸c˜ao da hospedagem, para viabilizar a infraestrutura necess´aria ao desenvolvimento da pesquisa.
  • 31. 30 O processo de desenvolvimento consiste nas seguintes etapas: s˜ao feitas altera¸c˜oes no c´odigo fonte do aplicativo, na esta¸c˜ao de trabalho do desenvolvedor. Os arquivos, modificados e acrescentados ao projeto, s˜ao enviados para o servidor do aplicativo atrav´es de um programa de FTP (1). No sandbox, o pesquisador recarrega4 o aplicativo para visualizar as altera¸c˜oes (2). O sandbox se comunica com o servidor do aplicativo para obter a vers˜ao mais nova do descritor. Al´em disso, tamb´em faz a requisi¸c˜ao de imagens, arquivos Javascript, CSS e outros (3). Ap´os uma vis˜ao geral do processo de desenvolvimento no Orkut sandbox, ser˜ao des- critos em mais detalhes os casos de uso cadastrar rotas e buscar rotas. 3.4.2 Cadastrar rotas Cadastrar uma rota ´e o mesmo que oferecer uma carona. Quando um usu´ario cadastra uma rota, ele est´a descrevendo um caminho que percorre de autom´ovel. Para cadastrar uma rota, o usu´ario deve escolher a op¸c˜ao oferecer carona, na barra de menus do aplicativo. Em seguida, ser´a apresentada ao usu´ario a tela ilustrada na Figura 17. Figura 17: Tela do aplicativo: oferecer carona Na Figura 17, observa-se os seguintes elementos: campos local de partida e local de chegada, bot˜oes tra¸car rota e salvar esta rota, e finalmente, um mapa para 4 Recarregar significa atualizar a tela do navegador com o aplicativo carregado na barra de endere¸cos.
  • 32. 31 exibir e ajustar a rota. Os locais de partida e de chegada s˜ao de preenchimento obrigat´orio. O usu´ario, en- tretanto, pode inform´a-los em diversos formatos, por exemplo: “Afonso Pena, 1000, Belo Horizonte”, “Pra¸ca da Liberdade, Belo Horizonte”, “Est´adio Mineir˜ao, Belo Horizonte”. A rota ´e desenhada no mapa com base nas coordenadas dos locais de partida e de che- gada. Portanto, para obter tais coordenadas, ´e preciso submeter os locais informados pelo usu´ario a um servi¸co de geocodifica¸c˜ao. Como j´a visto na se¸c˜ao 3.3, neste trabalho utilizou-se o servi¸co de geocodifica¸c˜ao do Google Maps. Alguns locais podem gerar ambiguidade. Se informado “Cristiano Machado, Belo Horizonte”, ser˜ao encontradas v´arias respostas para este local. Figura 18: Tela do aplicativo: desambigua¸c˜ao de locais A Figura 18 ilustra esse caso. Nela, vˆe-se que ao clicar em tra¸car rota, foi encontrada uma ocorrˆencia para “Pra¸ca da Liberdade, Belo Horizonte”, informada como local de chegada. Entretanto, observando a Figura, vˆe-se que o aplicativo solicita ao usu´ario que escolha o local de partida, dentre as seis op¸c˜oes retornadas pelo geocodificador. A rota n˜ao ´e tra¸cada no mapa at´e que o usu´ario clique em uma das op¸c˜oes apresentadas. Supondo que o usu´ario escolha a quarta op¸c˜ao – Ave Cristiano Machado, Cidade Nova, Belo Horizonte – a rota ´e, ent˜ao, tra¸cada no mapa (Figura 19). Observando a Figura 19, vˆe-se que ao tra¸car uma rota no mapa, surgem trˆes novos elementos na tela do aplicativo:
  • 33. 32 Figura 19: Tela do aplicativo: desenho da rota do motorista 1. Barra de status: cont´em informa¸c˜oes sobre a distˆancia percorrida no caminho, al´em do tempo que seria gasto para percorrˆe-la (considerando viagem de autom´ovel). 2. Polilinha: uma linha cont´ınua composta de v´arios segmentos. Cada in´ıcio e fim de segmento possui uma coordenada geogr´afica associada. 3. Marcadores: s˜ao ´ıcones que determinam marcos em uma polilinha. No caso de rotas rec´em criadas, marcam o in´ıcio e o fim do trajeto. Rotas modificadas pelo usu´ario podem conter marcadores intermedi´arios, determinando desvios. O caminho desenhado no mapa ´e determinado pela API Google Maps, atrav´es do m´etodo loadFromWaypoints(waypoints:Array), da classe GDirections. Este m´etodo recebe como parˆametro uma matriz, contendo dois ou mais pares de coordenadas (waypoints), e desenha a polilinha sobreposta ao mapa. A rota mostrada na Figura 19 ´e obtida com a seguinte chamada de m´etodo: var rota = new GDirections(); rota.loadFromWaypoints([[-19.88892,-43.92916], [-19.932207,-43.9380159]]); Nem sempre a rota desenhada pela API Google Maps corresponde ao caminho que o usu´ario percorre. Nesse caso, ´e preciso permitir ao usu´ario modificar a rota, movendo pontos da polilinha para marcar os desvios necess´arios. A API 2.0 do Google Maps n˜ao
  • 34. 33 possui m´etodos nativos para arrastar e soltar v´ertices da polilinha. A Figura 20 ´e utilizada para demonstrar como foi implementada a funcionalidade de modifica¸c˜ao de rotas. Figura 20: Transi¸c˜ao de estados para a modifica¸c˜ao da rota Na Figura 20, observa-se um trecho do mapa em quatro estados diferentes. No estado 1, o mapa observa os movimentos do cursor do mouse sobre sua superf´ıcie. A cada desloca- mento do cursor, ´e calculada sua distˆancia5 em rela¸c˜ao a polilinha. Se a distˆancia calculada estiver abaixo de um valor arbitrado, o mapa passa para o estado 2. No estado 2, ´e exibido um marcador tempor´ario sobre o v´ertice da polilinha mais pr´oximo ao cursor. O estado 3 representa o marcador tempor´ario sendo arrastado pela superf´ıcie do mapa. Ao ser solto, o marcador inicia o estado 4. No estado 4, a coordenada do marcador tempor´ario ´e inserida na matriz de waypoints. Em seguida, o m´etodo loadFromWaypoints(waypoints:Array) ´e chamado para redesenhar a rota. Para salvar a rota, deve-se clicar no bot˜ao salvar esta rota. Em seguida, a janela salvar uma nova rota ser´a exibida para o usu´ario (Figura 21). Figura 21: Tela do aplicativo: salvar uma nova rota Nessa janela, o usu´ario deve informar um t´ıtulo para a rota, al´em dos dias e hor´arios em que repete o trajeto. Ao clicar no bot˜ao concluir, a rota ´e finalmente gravada no banco de dados. Uma rota ´e gravada da seguinte maneira: ´e inserido um registro na tabela rota, com o c´odigo do usu´ario, o t´ıtulo da rota e suas informa¸c˜oes de dias e hor´arios. 5 Esse c´alculo ´e realizado pela biblioteca Javascript BdccGeo.js (CHADWICK, 2007).
  • 35. 34 Na tabela rota passo s˜ao inseridos registros relacionados `a rota criada. Cada registro armazena a coordenada referente a um v´ertice da polilinha (Figura 22). Figura 22: Registros na tabela rota passos A Figura 22 mostra os oito primeiros passos de uma rota. Na Figura, vˆe-se a coluna id rota. A coluna id rota relaciona um passo a uma rota. Nesse caso, os passos s˜ao relacionados `a rota de n´umero 26. As colunas lat e lon se referem `a latitude e `a longitude do passo. Por fim, a coluna passo final recebe o valor 1 se for o ´ultimo passo da rota. A coluna passo final ´e ´util para o m´etodo de busca de caronas, apresentada na se¸c˜ao a seguir. 3.4.3 Buscar rotas Nesta se¸c˜ao ser´a apresentado o m´etodo utilizado para buscar rotas. Como visto, na se¸c˜ao 3.4.2, uma rota ´e uma sequˆencia de passos, realizados para se cumprir um trajeto. Tamb´em foi visto que os passos s˜ao armazenados no banco de dados com suas coordenadas geogr´aficas. A Figura 23 representa esse conceito graficamente. Figura 23: Representa¸c˜ao gr´afica dos dados de uma rota
  • 36. 35 3.4.3.1 Fluxo de dados da busca por rotas Para encontrar ofertas de caronas, o usu´ario deve acessar a op¸c˜ao pedir carona, no menu de op¸c˜oes do aplicativo (Figura 24). Figura 24: Tela do aplicativo: tela de janela de busca de rotas Na janela de busca de rotas h´a trˆes campos que devem ser informados pelo usu´ario: local de sa´ıda; local de destino; e a distˆancia m´axima que se deseja caminhar at´e o embarque e o destino. Ao acionar o bot˜ao buscar, ocorre o fluxo de dados ilustrado na Figura 25. Figura 25: Fluxo de dados durante busca por rotas Observando a Figura 25, as setas numeradas de um a quatro indicam a seguinte sequˆencia de opera¸c˜oes: 1. Os locais de sa´ıda e de chegada s˜ao enviados ao servi¸co de geocodifica¸c˜ao do Google Maps, via Javascript e HTTP. 2. O servi¸co de geocodifica¸c˜ao do Google Maps retorna a geocodifica¸c˜ao dos locais, contendo suas coordenadas geogr´aficas. 3. As coordenadas geogr´aficas dos locais de sa´ıda e de chegada s˜ao enviadas como parˆametros para a p´agina de busca de rotas, no servidor do aplicativo. Esse processo tamb´em ocorre via Javascript e HTTP.
  • 37. 36 4. A p´agina de busca de rotas responde com um objeto em formato JSON, contendo as rotas encontradas ou contendo uma rota vazia, no caso de n˜ao encontrar nenhuma rota compat´ıvel. 3.4.3.2 C´alculo da distˆancia linear entre dois pontos na Terra Na busca por rotas, ´e necess´ario calcular a distˆancia linear entre dois pontos na Terra, dadas as suas latitudes e longitudes. Para esse prop´osito, utilizou-se a F´ormula de Haversine6 , a qual foi mapeada em uma fun¸c˜ao escrita em linguagem PHP mostrada na Figura 26. Figura 26: Fun¸c˜ao de c´alculo da distˆancia linear entre dois pontos na Terra 3.4.3.3 Heur´ıstica de busca por rotas A Figura 27 a seguir, mostra um cen´ario hipot´etico. Figura 27: Heur´ıstica de busca: cen´ario hipot´etico Nesse cen´ario, h´a quatro rotas cadastradas no banco de dados. Essas rotas s˜ao re- presentadas na Figura 27 atrav´es dos segmentos A-A’, B-B’, C-C’, D-D’. O sentido de 6 A f´ormula de Haversine ´e uma importante equa¸c˜ao usada em navega¸c˜ao, fornecendo distˆancias entre dois pontos de uma esfera a partir de suas latitudes e longitudes. (F´ORMULA DE HAVERSINE, 2010)
  • 38. 37 cada rota ´e denotado por uma letra (A), como ponto de origem; e uma letra seguida de ap´ostrofo (A’), como ponto de chegada. A necessidade do usu´ario ´e representada pelos pontos I, como local de partida, e F, como local de chegada. Por fim, os c´ırculos r in- dicam a distˆancia m´axima que o usu´ario deseja andar at´e o embarque ou at´e o seu local de chegada. A distˆancia m´axima ser´a citada como d max, no decorrer da apresenta¸c˜ao da heur´ıstica. Na primeira itera¸c˜ao, a heur´ıstica procura por rotas que possuam algum passo a uma distˆancia menor que d max, em rela¸c˜ao ao ponto de chegada do usu´ario (F). Para todas as rotas encontradas, utiliza-se apenas o passo com a menor distˆancia at´e F. Ap´os a primeira itera¸c˜ao, s˜ao encontradas as rotas B-B’, C-C’ e D-D’, conforme ilustrado na Figura 28. Figura 28: Heur´ıstica de busca: primeira itera¸c˜ao A segunda itera¸c˜ao ´e feita entre as rotas encontradas na primeira itera¸c˜ao. Nessa itera¸c˜ao, a heur´ıstica seleciona rotas que possuam um passo `a uma distˆancia m´axima de 2d max7 do ponto I8 . Al´em disso, o passo deve ser anterior ao passo encontrado na primeira itera¸c˜ao. Essa restri¸c˜ao elimina a rota C-C’ das respostas (Figura 29). Figura 29: Heur´ıstica de busca: segunda itera¸c˜ao 7 A raz˜ao de se ampliar a distˆancia m´axima ´e encontrar rotas mais distantes, mas que possam ser alcan¸cadas de ˆonibus. 8 Para simplificar a Heur´ıstica escolheu-se o ponto I.
  • 39. 38 Observando a Figura 29, percebe-se que a rota D-D’ atende a necessidade do usu´ario. A heur´ıstica considera, ent˜ao, a rota D-D’ como ´otima. Entretanto, a rota B-B’ possui um ponto de embarque a uma distˆancia maior do que d max. Para essa rota, a heur´ıstica consulta a base de dados de itiner´arios de ˆonibus e procura por alguma linha que passe pr´oximo ao ponto I, chegando pr´oximo ao ponto B. Se a heur´ıstica n˜ao encontrar uma linha de ˆonibus, a rota ´e descartada. Caso contr´ario, a rota ´e mantida no conjunto de respotas e o ˆonibus encontrado ´e inclu´ıdo na resposta, gerando uma rota mista (Figura 30). Figura 30: Heur´ıstica de busca: busca por ˆonibus Na Figura 30, o segmento pontilhado O-O’, representa o trecho a ser cumprido em uma viagem de ˆonibus, chegando pr´oximo ao ponto de embarque, na rota B-B’. A heur´ıstica pode ser expressa na forma de um diagrama, conforme a Figura 31. Figura 31: Heur´ıstica de busca 3.4.4 Demais Casos de Uso Nesta se¸c˜ao s˜ao ilustradas as telas dos seguintes casos de uso: pedir carona, visualizar pedidos, aprovar pedido, recusar pedido e avaliar usu´ario.
  • 40. 39 O caso de uso pedir carona ´e ilustrado atrav´es da Figura 32, na qual pode-se ver a janela de pedido de carona. Essa janela se abre no momento em que o usu´ario escolhe a op¸c˜ao pedir carona, na tela de busca de caronas (Figura 36). Figura 32: Tela do aplicativo: enviar pedido de carona Na Figura 33 ´e ilustrada a tela correspondente aos seguintes casos de uso: visualizar pedidos, aceitar pedidos e recusar pedidos. Vˆe-se, na tela, o agrupamento dos pedidos entre pedidos enviados e pedidos recebidos (aba que aparece ativa). Ainda, na Fi- gura 33, observa-se a indica¸c˜ao do local no qual o passageiro deseja embarcar, e as op¸c˜oes aceitar e recusar pedido. Figura 33: Tela do aplicativo: visualizar, aceitar e recusar pedidos Na Figura 34 ´e apresentada a tela para o caso de uso avaliar usu´ario. Nota- se a rela¸c˜ao de todas as rotas cadastradas pelo motorista. Uma rota, em espec´ıfico, aparece expandida, relacionando seus passageiros (nesse caso, Jack). Atrav´es dos ´ıcones polegar para cima e polegar para baixo, o motorista pode classificar o passageiro positivamente ou negativamente. O ´ıcone lupa, abre a janela com informa¸c˜oes sobre o usu´ario em quest˜ao, contendo quantas classifica¸c˜oes positivas e negativas ele possui. Do ponto de vista do passageiro, pode-se classificar os motoristas com os quais viaja
  • 41. 40 acessando a aba Como passageiro, na qual estar˜ao dispon´ıveis as mesmas opera¸c˜oes. Figura 34: Tela do aplicativo: avaliar usu´ario
  • 42. 41 4 Resultados Neste cap´ıtulo, s˜ao apresentados os resultados obtidos nos testes realizados no apli- cativo Carro Cheio. Para a avalia¸c˜ao a sua eficiˆencia, seus resultados foram comparados aos resultados dos mesmos testes, realizados em sistemas similares. 4.1 Prepara¸c˜ao do Ambiente de Testes Para se testar o Carro Cheio, adicionou-se o aplicativo a dois perfis de usu´arios no Orkut. Considere, como exemplo os usu´arios de Jack e Beth. Jack oferece uma carona, enquanto Beth, procura uma carona. Atrav´es do perfil de Jack, cadastrou-se uma rota (R), sa´ındo da Avenida Afonso Pena, 5100 e chegando `a Avenida Afonso Pena, 1. Trata-se de um percurso de aproximadamente 4 quilˆometros, segundo o Google Maps (Figura 35). Figura 35: Rota utilizada nos testes testes Em seguida, foram realizadas quatro buscas por caronas, atrav´es do perfil de Beth. Os parˆametros de entrada est˜ao listados na Tabela 3. Tabela 3: Parˆametros de buscas por caronas # Local de sa´ıda Local de chegada 1 Rua Ramalhete, 100 Rua dos Tupinamb´as, 500 2 Rua dos Tupinamb´as, 500 Rua Ramalhete, 100 3 Av. Afonso Pena, 1500 Rua dos Tupinamb´as, 500 4 Av. Bandeirantes, 800 Rua Espirito Santo, 800 Fonte: Autor da pesquisa, 2010 Os mesmos testes foram realizados nos sites Bigoo (www.bigoo.com.br) e Caroneiros (www.caroneiros.com.br). Nesses sites, foram criadas as contas para Jack e Beth, man- tendo seus pap´eis de motorista e passageira, respectivamente. Para as buscas realizadas
  • 43. 42 no Carro Cheio e Caroneiros, foi definido um raio de abrangˆencia de 500 metros. No Bigoo esse parˆametro n˜ao estava dispon´ıvel. Cada teste, numerado de 1 a 4, procurou avaliar uma caracter´ıstica diferente, nos sitemas. As caracter´ısticas avaliadas foram as seguintes: • Teste 1: avalia se o mecanismo utiliza coordenadas geogr´aficas na busca, uma vez que os locais de sa´ıda e de chegada de Beth s˜ao pr´oximos aos de Jack, mas n˜ao cont´em as mesmas palavras-chave. • Teste 2: avalia se o mecanismo ´e capaz de considerar o sentido da rota do motorista. • Teste 3: avalia se o mecanismo ´e capaz de considerar pontos intermedi´arios na rota do motorista. • Teste 4: avalia como o mecanismo trata casos nos quais Beth est´a relativamente longe do ponto mais pr´oximo a Jack. 4.2 Avalia¸c˜ao dos Resultados Ap´os a realiza¸c˜ao dos testes, observou-se que o Carro Cheio retornou respostas corre- tas para as quatro consultas realizadas. O site Bigoo retornou uma resposta incorreta para o teste 2. A rota encontrada pelo Bigoo era percorrida no sentido inverso ao da consulta realizada. J´a o site Caroneiros n˜ao encontrou a rota de Jack na terceira consulta. Ap´os refazer a terceira consulta ampliando o raio para 2 quilˆometros, a rota foi encontrada. Isso leva a acreditar que o site Caroneiros armazena apenas as coordenadas de origem e destino, na rota do motorista. Dentre os trˆes sistemas testados, o Carro Cheio ´e o ´unico que indica ao passageiro os locais nos quais ele deve embarcar e desembarcar (Figura 36). Figura 36: Tela do aplicativo: resultado do Teste 3
  • 44. 43 Como se vˆe, na Figura 36, o Carro Cheio foi impreciso ao sugerir o local para em- barque, no teste 3. Ainda que tenha encontrado corretamente a rota, a resposta diz a Beth para embarcar a 173 metros, na Av. Afonso Pena, 1433. Sabe-se que Beth poderia embarcar logo `a frente de seu endere¸co de sa´ıda, a menos de 100 metros. Essa imprecis˜ao deve-se ao fato de que as rotas n˜ao s˜ao gravadas com todas as suas coordenadas. Como citado na se¸c˜ao 3.4.2, as rotas s˜ao gravadas apenas com as coordenadas de in´ıcio e fim de cada segmento da Polilinha. Atrav´es do teste 4, foi poss´ıvel validar a integra¸c˜ao do Carro Cheio com o transporte coletivo de Belo Horizonte. Nesse teste, o endere¸co de sa´ıda de Beth (Av. Bandeirantes, 800) est´a h´a mais de 1 quilˆometro de distˆancia do ponto mais pr´oximo a Jack. Nesse caso, o Carro Cheio foi capaz de sugerir o ˆonibus 9106 a Beth, para que ela se encontre com Jack pr´oximo `a Av. Bandeirantes, 1944. A Figura 37 apresenta a resposta para o teste 4. Figura 37: Tela do aplicativo: resultado do Teste 4 Na Figura 37, vˆe-se a janela de representa¸c˜ao gr´afica da carona sugerida. Na janela ´e apontado o local de origem de Beth e seu caminho at´e Jack. Arrastando a tela do mapa, seria poss´ıvel ver o restante do trajeto, al´em do ponto de desembarque de Beth. Complementando, no teste 4, tanto o Bigoo quanto o Caroneiros n˜ao encontraram a rota de Jack.
  • 45. 44 5 Conclus˜ao Neste trabalho foi realizada a pesquisa e desenvolvimento do aplicativo Carro Cheio. Atrav´es do Carro Cheio, procurou-se alcan¸car o objetivo de se fornecer um sistema efi- ciente para combinar caronas atrav´es do Orkut. Ainda, tentou-se suprir no Carro Cheio, as deficiˆencias encontradas em outros sistemas com o mesmo prop´osito. A avalia¸c˜ao dos resultados foi feita por meio de testes direcionados, realizados pelo autor da pesquisa. Dessa forma, os resultados obtidos nos testes e comparativos realizados entre o Carro Cheio, Bigoo e Caroneiros n˜ao foram suficientes para afirmar que o Carro Cheio surge como o melhor sistema de caronas, dentre os trˆes. Para afirmar isso, seria necess´ario sub- meter os trˆes sistemas a testes mais abrangentes, com uma massa significativa de usu´arios, e avaliar suas impress˜oes. Por outro lado, atrav´es dos testes, foi poss´ıvel verificar caracter´ısticas onde o Carro Cheio, de fato, conseguiu suprir deficiˆencias dos outros sistemas. Ainda, segundo os testes, o Carro Cheio atingiu os objetivos propostos neste trabalho: integrar-se a rede social Orkut; permitir o cadastro de rotas detalhando seu trajeto; realizar buscas de rotas atrav´es de coordenadas geogr´aficas; e integrar resultados com informa¸c˜oes do transporte coletivo de Belo Horizonte. Vale ressaltar, entretanto, alguns estudos que podem ser realizados futuramente, para tornar o aplicativo mais eficiente. Uma avalia¸c˜ao de usabilidade poderia apontar medidas a serem tomadas para tornar o uso do aplicativo mais intuitivo. Al´em disso, o formul´ario de cadastro de rotas pode ser ampliado com mais informa¸c˜oes. Com rela¸c˜ao a heur´ıstica de busca, pode-se se estudar a integra¸c˜ao dos resultados com o transporte ferrovi´ario. Al´em disso, pode-se melhorar a precis˜ao das buscas atrav´es do uso de interpola¸c˜ao dos pontos das rotas. Por fim, o uso de agentes inteligentes em vers˜oes futuras, pode trazer novas funcionalidades ao aplicativo.
  • 46. 45 Referˆencias ABREU, N. R. de; BALDANZA, R. F.; SETTE, R. de S. Comunidades virtuais como ambiente potencializador de estrat´egias mercadol´ogicas: Locus de informa¸c˜oes e troca de experiˆencias. Perspectivas em Ciˆencia da Informa¸c˜ao, v. 13, n. 3, p. 116-136, set./dez. 2008. AJAX. In: WIKIP´EDIA: a enciclop´edia livre. Wikimedia, 2006. Dispon´ıvel em http://pt.wikipedia.org/wiki/AJAX (programa¸c~ao). Acesso em: 01 maio de 2010. AGˆENCIA MINAS. Projeto Melhorar incentiva a carona solid´aria em Minas. Minas Gerais, 2009. Dispon´ıvel em http://www.agenciaminas.mg.gov.br/component/ controlemultimidia/noticiaid=26804. Acesso em 01 maio 2010. ALEXA. Top Sites in Brazil. Dispon´ıvel em http://www.alexa.com/topsites/coun- tries/BR. Acesso em 01 may 2010. BARGH, J.; MCKENNA, K. The internet and social life. The Annual Review of Psychology, v. 55, p. 573-590, feb. 2004. BELO HORIZONTE. Estat´ısticas e Mapas / Demografia. Dispon´ıvel em http://portalpbh.pbh.gov.br/pbh/ecp/comunidade.do?app=estatisticas. Acesso em 01 maio 2010. BHTRANS, Empresa de Transportes e Trˆansito de Belo Horizonte. Apresenta¸c˜ao sobre mobilidade urbana e acessibilidade. Semin´ario de Consolida¸c˜ao da Rede Cidades Interativas: Mobilidade Urbana, Acessibilidade e Governo Eletrˆonico. Natal, RN, mar. 2008. BIGOO. Bigoo. Dispon´ıvel em http://www.bigoo.com.br/. Acesso em 01 novembro 2010. BOYD, D. M.; ELLISON, N. B. Social network sites: Definition, history, and scholarship. Journal of Computer-Mediated Communication, v. 13, n. 1, article 11, 2005. BRASIL. Desenvolvimento Sustent´avel – Responsabilidade e compromisso de todos. Governo do Brasil. Dispon´ıvel em http://www.cop15brasil.gov.br/pt-BR/. Acesso em 01 maio 2010. BUYUKKOKTEN, O.; ADAMIC, L. A.; AIDAR, E. A social network caught in the Web. First Monday, v. 8, n. 6, june 2003. CARONEIROS. Caroneiros.com - Encontrei aqui sua carona!. Dispon´ıvel em http://www.caroneiros.com/. Acesso em 01 novembro 2010.
  • 47. 46 COSTA, R. Por um novo conceito de comunidade: redes sociais, comunidades pessoais e inteligˆencia coletiva. Interface - Comunica¸c˜ao, Sa´ude, Educa¸c˜ao, v.9, n.17, p.235-248, mar./ago. 2005. CHADWICK, B. Bill Chadwick’s Google Maps Demos. Dispon´ıvel em http://www.bdcc.co.uk/Gmaps/BdccGmapBits.htm. Acesso em 01 maio 2010. DENATRAN, Departamento Nacional de Trˆansito. Frota de ve´ıculos. Dispon´ıvel em http://www.denatran.gov.br/frota.htm. Acesso em 01 maio 2010. ELLISON, N. B.; STEINFIELD, C.; C.LAMPE. The benefits of facebook “friends”: social capital and college students use of online social network sites. Journal of Computer-Mediated Communication, v. 12, n. 4, article 1, 2007. ´EPOCA. O poder e o risco das redes sociais. Globo, n. 628, p. 79-113, maio 2010. F´ORMULA DE HAVERSINE. In: WIKIP´EDIA: a enciclop´edia livre. Wikimedia, 2006. Dispon´ıvel em pt.wikipedia.org/wiki/F´ormula de Haversine. Acesso em: 01 maio de 2010. GOOGLE. Referˆencia da API do Google Maps. Dispon´ıvel em http://code.google.com/intl/pt-BR/apis/maps/documentation/javascript/v2/ reference.html. Acesso em 01 de maio 2010. GOVERNO DE S˜AO PAULO. Mutir˜ao da carona incentiva transporte solid´ario. Dispon´ıvel em http://www.saopaulo.sp.gov.br/spnoticias/lenoticia.php?id= 95276. Acesso em 01 maio 2010. IBGE, Instituto Brasileiro de Geografia e Estat´ıstica. Contagem da popula¸c˜ao 2007. Dispon´ıvel em http://www.ibge.com.br/home/estatistica/populacao/ contagem2007/. Acesso em 01 maio 2010. INFO EXAME. Gadgets verdes. Abril, p. 32-48, ago. 2009. JQUERY. The write less, do more, Javascript library Dispon´ıvel em http://www.jquery.com. Acesso em: 01 maio de 2010. JSON. In: WIKIP´EDIA: a enciclop´edia livre. Wikimedia, 2006. Dispon´ıvel em http://pt.wikipedia.org/wiki/JSON. Acesso em: 01 maio de 2010. JUNGBLUT, A. L. A heterogenia do mundo on-line: Algumas reflex˜oes sobre virtualiza¸c˜ao, comunica¸c˜ao mediada por computador e ciberespa¸co. Horizontes Antropol´ogicos, Porto Alegre, RS, n. 21, p. 97-121, jan./jun. 2004. KAVANAUGH, A. et al. Community networks: Where off-line communities meet on-line. Journal of Computer-Mediated Communication, v. 10, n. 4, 2005. KUMAR, R.; NOVAK, J.; TOMKIMS, A. Structure and evolution of online social networks. 12th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, Philadelphia, EUA, aug. 2006. MARTELETO, R. M.; SILVA, A. B. de Oliveira e. Redes e capital social: o enfoque da informa¸c˜ao para o desenvolvimento local. Ciˆencia da Informa¸c˜ao, Bras´ılia, v. 33, n. 3, set./dez. 2004.
  • 48. 47 NOBRE, C. A. Aquecimento global e o papel do Brasil. Ciˆencia Hoje, Rio de Janeiro, v. 36, n. 211, p. 38-40, dez. 2004. OPENSOCIAL. Opensocial JavaScript API Reference. Dispon´ıvel em http://wiki.opensocial.org/index.php?title=JavaScript API Reference. Acesso em 01 de maio 2010. ORKUT. Orkut developer home. Developer’s Guide: JavaScript. Dispon´ıvel em http://code.google.com/intl/en-US/apis/orkut/docs/orkutdevguide/orkutdev- guide-0.8.html. Acesso em 01 de maio 2010. PLANMOB-BH. Plano de Mobilidade Urbana de Belo Horizonte. Dispon´ıvel em http://www.planmobbh.com.br/. Acesso em 01 maio 2010. ROCHA, A. C. B. et al. Gerenciamento da mobilidade: Experiˆencias em Bogot´a, Londres e alternativas p´os-modernas. Pluris 2006 Congresso Luso Brasileiro para o planejamento urbano, regional, integrado e sustent´avel, Portugal, 2006. SOUDERS, S. Even Faster Web Sites. O’Reilly, ed. 1, june 2009. WILLIAMS, M. Google Maps API Tutorial. Dispon´ıvel em http://econym.org.uk/gmap/. Acesso em 01 maio 2010.