Este documento apresenta um trabalho de conclusão de curso sobre o desenvolvimento de um aplicativo chamado "Carro Cheio" para compartilhamento de caronas em redes sociais. O aplicativo foi desenvolvido para a rede social Orkut com o objetivo de contribuir para a melhoria da mobilidade urbana na cidade de Belo Horizonte. O trabalho descreve o modelo de dados, a implementação do aplicativo utilizando a API do Google Maps e do Orkut, e testes realizados para validar o funcionamento do compartilhamento de caronas e busca de rotas entre loc
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.
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.