App horário de onibus.

122 views
Skip to first unread message

Gabriel Malinosqui

unread,
May 28, 2013, 2:23:18 PM5/28/13
to androidb...@googlegroups.com
Galera to fazendo um app de horário de ônibus pra minha cidade, quero fazer algo pra mostrar qual o próximo ônibus que ira passar, pensei em algo que pegue a hora atual e subtraia com cada registro da tabela, como faria isso? Essa e melhor maneira? Alguem pode me dar uma dica?
Abraços!

Diogo Henrique

unread,
May 28, 2013, 2:38:09 PM5/28/13
to androidb...@googlegroups.com
Você teria que saber onde o ônibus está e a partir do ponto x e y dele fazer um algoritmo que de posse do x e y do usuário calculasse a distância entre os pontos. Com essa distância você verifica quanto tempo falta apara chegar onde o usuário está. Essa seria uma possibilidade...

Diogo Henrique
(83)87344178
Rede Sociais: 






Em 28 de maio de 2013 15:23, Gabriel Malinosqui <gabrielm...@gmail.com> escreveu:
Galera to fazendo um app de horário de ônibus pra minha cidade, quero fazer algo pra mostrar qual o próximo ônibus que ira passar, pensei em algo que pegue a hora atual e subtraia com cada registro da tabela, como faria isso? Essa e melhor maneira? Alguem pode me dar uma dica?
Abraços!

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.



Uriel Juliatti Valle

unread,
May 28, 2013, 2:42:56 PM5/28/13
to androidb...@googlegroups.com
Fala gabriel, beleza?

Cara, tome como base da sua idéia a forma que o Waze funciona (http://www.waze.com/).

Espero que isso te ajude.

Forte abraço!


2013/5/28 Diogo Henrique <diog...@gmail.com>



--
Uriel Juliatti
Web Developer / System Analyst.
Twitter: @urieljuliatti

"The only place where success comes before work is in the dictionary." - Albert Einstein

gus...@gmail.com

unread,
May 28, 2013, 2:49:16 PM5/28/13
to androidb...@googlegroups.com

Gabriel Malinosqui

unread,
May 28, 2013, 4:54:34 PM5/28/13
to androidb...@googlegroups.com
Ótimas dicas pessoal, em relação ao waze, acho fantástico porém nao sei se aqui em Bauru funcionaria, nem o próprio waze tem usuários ativos.
O exemplo do busao curitibano e perfeito, e realmente isso que queria, porém como implementar? Seria subtraindo as horas mesmo?
Obrigado pelas respostas, abraços.

Ramon Pires da Silva

unread,
May 29, 2013, 12:35:51 AM5/29/13
to androidb...@googlegroups.com
Eu acho que essa subtração só rolaria caso vc estive sem conexão com a internet para o serviço que vc quer acessar,se for o seu caso. Mas um dos pontos que ao meu ver é crucial não é apenas ter o horário,mas sim a precisão de horário em que vai passar em um determinado ponto,e é o que esse serviço online com horários teoricamente deve oferecer.

Gabriel Malinosqui

unread,
May 29, 2013, 10:01:07 AM5/29/13
to androidb...@googlegroups.com
Com certeza isso seria o ideal, porem acho que o foco correto seria mesmo poder visualizar esses horários offline, pois ate mesmo o 3g daqui e uma droga, tem alguma maneira de ter uma condição por exemplo, se tiver com rede mostrar um tipo de app se não mostrar subtraindo os horários mesmo?
O meu problema maior esta em subtrair os horários, nao vejo como.
Obrigado, abraços!

Adelson Portela

unread,
May 29, 2013, 3:40:33 PM5/29/13
to androidb...@googlegroups.com
Olá,

estou tentando criar um aplicativo parecido com o do Gabriel, mas usando a implementação que o Diogo citou. tenho uma rota e preciso calcular a distância entre o ônibus e a parada selecionada pelo usuário. Alguém sabe se existe algum algoritmo ou método, no Android ou em javascript, pra isso?


--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.





--

Adelson M. Portela

Italo Naia

unread,
May 29, 2013, 3:48:29 PM5/29/13
to androidb...@googlegroups.com
cara mas vc tem o horário q o ônibus passa em cada ponto?

se não tiver fazer isto de subtrair que vc quer não vai dar muito certo......


2013/5/29 Gabriel Malinosqui <gabrielm...@gmail.com>
Com certeza isso seria o ideal, porem acho que o foco correto seria mesmo poder visualizar esses horários offline, pois ate mesmo o 3g daqui e uma droga, tem alguma maneira de ter uma condição por exemplo, se tiver com rede mostrar um tipo de app se não mostrar subtraindo os horários mesmo?
O meu problema maior esta em subtrair os horários, nao vejo como.
Obrigado, abraços!

Gabriel Malinosqui

unread,
May 29, 2013, 8:26:45 PM5/29/13
to androidb...@googlegroups.com
Adelson acho que a melhor maneira seria algo social, por exemplo alguém setando que o onibus das 15:30 ja passou em ponto x por exemplo ai o próximo ponto ficaria aguardando em stand-by sei la, seguiria esse caminho!
E voltando a subtrair as horas, alguem sabe algo do tipo, como transformar por exemlo 22:30 em 2230? Acho que dessa maneira daria certo, porem como? kkkk
Abraços.

Adelson Portela

unread,
May 30, 2013, 6:38:57 PM5/30/13
to androidb...@googlegroups.com
Gabriel, obrigado pela ideia, mas eu queria algo que não dependesse do usuário, pois, por exemplo, no inicio teria poucos usuários e se eles não atualizassem a localização do ônibus, o calculo do sistema ficaria comprometido. Quanto a sua pergunta sobre a subtração de horários, eu uso o seguinte código System.currentTimeMillis(), que pega o horário em milissegundos. Você poderia transformar os dois horários em milissegundos e subtrair. não sei se daria certo pra você, na minha situação serviu.
Valeu pela ajuda.


--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.





--

Adelson M. Portela

Gabriel Malinosqui

unread,
May 30, 2013, 8:53:16 PM5/30/13
to androidb...@googlegroups.com
Adelson apliquei o que voce falou com a seguinte linha de raciocionio.

                          long ms = System.currentTimeMillis();
  long segundos = ms / 1000;
  long minutos = segundos / 60;
  segundos = segundos % 60;
  long horas = minutos / 60;
  minutos = minutos % 60;

 txtHora.setText( horas + ":" + minutos +":" + segundos);

O resultado era pra ser 21:52:30, porem esta resultando um valor assim 380544:52:30.
O que sera que estou fazendo de errado?
Abraços

Maicon Strey

unread,
May 30, 2013, 9:05:41 PM5/30/13
to androidb...@googlegroups.com
System.currentTimeMillis() retorna um Unix Time.
estas tuas 380544 horas representam 15856 dias ou ainda 43,44 anos.

Alguém já teve um problema parecido aqui no grupo um tempo atrás. tu podes verificar as soluções propostas aqui.




Maicon Strey
Novo Hamburgo - RS - Brasil
------------------
------------------
Linux user: #525086


2013/5/30 Gabriel Malinosqui <gabrielm...@gmail.com>

Adelson Portela

unread,
May 31, 2013, 12:23:17 AM5/31/13
to androidb...@googlegroups.com
Gabriel isso acontece porque esse método pega o tempo em milissegundos desde uma determinada data (1969 se não me engano).
No meu caso, em particular, esse método atende, mas acho que a solução apontada no post que o Maicon citou seria a melhor pra implementar.
quanto ao seu código, seguindo a sua linha de raciocínio, não deveria ter um horas = horas%60, no final?
abraços.

Lucas Xavier

unread,
May 31, 2013, 7:46:06 AM5/31/13
to androidb...@googlegroups.com
A data é 1 de jan de 1970, não?

Acho que a ideia da "rede social" busão, é ótima! :)

--
Atenciosamente,

Lucas Xavier

Marcelo Henrique

unread,
May 31, 2013, 8:07:46 AM5/31/13
to androidb...@googlegroups.com
                                              - Marcelo Henrique -
  "Se não puder se destacar pelo talento, vença pelo esforço." (Dave Weinbaum)
              "Mate o pecado antes que ele o mate." ( Richard Baxter )

Adelson Portela

unread,
May 31, 2013, 9:40:23 AM5/31/13
to androidb...@googlegroups.com
realmente Lucas, a ideia da rede social é ótima, mas no meu caso não serve muito bem. Talvez a implemente em um futuro próximo. 
Ainda estou batendo cabeça para fazer um algoritmo para calcular o tempo de embarque no ônibus, não conheço algum método da API do googlemaps em java ou javascript que me ajude. Aceito sugestões.
Abraço.

Lucas Xavier

unread,
May 31, 2013, 11:43:24 AM5/31/13
to androidb...@googlegroups.com
Você pode adicionar isso como um próximo passo :)

Criar os "locais" de check-in (que seriam os pontos de ônibus) em uma rede como o foursquare por exemplo.

A partir do check-in do usuário, tem-se uma ideia de quanto tempo o ônibus vai demorar :)

--
Atenciosamente,

Lucas Xavier
Message has been deleted

Gabriel Malinosqui

unread,
May 31, 2013, 3:30:18 PM5/31/13
to androidb...@googlegroups.com
Galera comecei a implementar o algoritmo:

 int [] horarios2 = { 0535, 0554, 0642, 0730, 0754, 818, 842, 906, 930, 1018, 1106, 1154, 1218, 1242, 1330, 1418, 1506, 
    1554, 1642, 1706, 1730, 1818, 1842, 1906, 1954, 2042, 2218, 2306};
        
        for (int i = 0; i<horarios2.length; i++){
        
        int resultado =  horarios2[i]-horaminutoi;
        
        if(resultado>0){
        
        
         txtCond.setText(hora+":"+minuto + "   "+horarios2[i]);
         txtHora.setText("Próximo onibus sai em: " + String.valueOf(resultado)+ " minuto(s)");
         //Log.i("teste", resultado.toSt);
        
        }
        
        else{
        
         txtHora.setText("Passa amanhã"+String.valueOf(resultado));
         txtCond.setText(hora+":"+minuto + "   "+horarios2[i]);
         i++;
        
        }

O problema é o seguinte, ele ta pegando o ultimo horário pra subtrair com a hora atual, mas eu quero que ele pego o primeiro que achar maior que 0, ou o resultado de menor valor. Alguém sabe como aplicar?
Abraços

Lucas Xavier

unread,
May 31, 2013, 3:31:25 PM5/31/13
to androidb...@googlegroups.com
Gabriel, pra isso é importante você estudar um pouco sobre Java e suas estruturas de controle (os laços, nesse caso)

Enfim, tenta usar do...while. Para esse caso, acho que encaixa melhor.

--
Atenciosamente,

Lucas Xavier


--

Gabriel Malinosqui

unread,
May 31, 2013, 3:40:59 PM5/31/13
to androidb...@googlegroups.com
Cara fiquei uns 6 meses parado, um tempo sem aplicar ferra tudo meu! Incrivel como to apanhando pra fazer coisas basicas! hahahaha
Obrigado pela dica, abraços!

Lucas Xavier

unread,
May 31, 2013, 3:42:59 PM5/31/13
to androidb...@googlegroups.com
Tudo bem! kkkkkk

Qualquer coisa estamos aí :)

--
Atenciosamente,

Lucas Xavier

Gabriel Malinosqui

unread,
May 31, 2013, 4:12:57 PM5/31/13
to androidb...@googlegroups.com
         Mudei para while:

               
                        int i = 0;
       while ( i <horarios2.length){
       
      int resultado =  horarios2[i]-horaminutoi;
     
      if(resultado>0){
       
       
      txtCond.setText(hora+":"+minuto + "   "+horarios2[i]);
      txtHora.setText("Próximo onibus sai em: " + String.valueOf(resultado)+ " minuto(s)");
         
        }
       
      
       
       else{
       
      txtHora.setText("Passa amanhã"+String.valueOf(resultado));
        txtCond.setText(hora+":"+minuto + "   "+horarios2[i]);
        i++;
       
     }
      
  }

Porem da erro, o erro para se eu colocar um i++; entre as duas ultimas chaves, porem ai continua do mesmo jeito que o for, percorrendo ate a ultima posição do vetor.
Abraços.

Lucas Xavier

unread,
May 31, 2013, 4:17:18 PM5/31/13
to androidb...@googlegroups.com
Haha! Cara, vou te ajudar...

Faz assim:


int i = 0;
int resultado = 0;
do {
resultado = horarios2[i] - horaminutooi;
i++;
} while (resultado <= 0)

--
Atenciosamente,

Lucas Xavier


2013/5/31 Gabriel Malinosqui <gabrielm...@gmail.com>

--

Gabriel Malinosqui

unread,
May 31, 2013, 4:20:08 PM5/31/13
to androidb...@googlegroups.com
Consegui cara, valeu!! hshashuashuas
Abraços!

Gabriel Malinosqui

unread,
May 31, 2013, 7:24:15 PM5/31/13
to androidb...@googlegroups.com
@OFF
Mudando de assunto, porem o mesmo app, galera alguém sabe de algum exemplo ultilizando o swipe com uma activity para cada aba?
Ta complicado de achar, valeu pela ajuda galera!
Abraços

Maicon Strey

unread,
Jun 2, 2013, 1:44:23 PM6/2/13
to androidb...@googlegroups.com
se mudou o assunto abra um novo tópico para ajudar quem buscar por soluções no futuro.


Maicon Strey
Novo Hamburgo - RS - Brasil
------------------
------------------
Linux user: #525086


--

Lucas Xavier

unread,
Jun 3, 2013, 12:54:26 PM6/3/13
to androidb...@googlegroups.com
Por nada, Gabriel! :)

--
Atenciosamente,

Lucas Xavier


2013/6/2 Maicon Strey <mst...@gmail.com>

Victor Pinto

unread,
Jun 4, 2013, 9:33:30 AM6/4/13
to androidb...@googlegroups.com
@Gabriel,
   Tome cuidado quando escreve um inteiro com zero na frente. Roda esse simples exemplo que você vai entender:

public static void main(String[] args) {
System.out.println(0100);
System.out.println(100);
}

  Quando você coloca o zero na frente você está escrevendo no sistema octal e não em decimal. É o mesmo conceito de escrever 0x na frente pra virar hexadecimal (0x100).


[]`s

Victor

Lucas Xavier

unread,
Jun 4, 2013, 9:44:00 AM6/4/13
to androidb...@googlegroups.com
Nesse caso acho que o ideal é criar uma Classe que encapsule hora e minutos, já que usar a classe DATE ou Calendar para isso daria um trabalho a mais.

--
Atenciosamente,

Lucas Xavier

Ramon Pires da Silva

unread,
Jun 4, 2013, 9:54:28 AM6/4/13
to androidb...@googlegroups.com
Cara ,eu recomendo usar Date ou Calendar, mais especificamente
Calendar. Se existem classes que já trabalham nativamente com
manipulação de datas da linguagem,não há necessidade de criar uma
classe só para isso, mesmo que não seja tão simples de se trabalhar. E
no final das contas isso seria uma gambiarra,totalmente fora de
padrão.
> You received this message because you are subscribed to a topic in the
> Google Groups "Android Brasil - Dev" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/androidbrasil-dev/esLpypIsnBI/unsubscribe?hl=en-US.
> To unsubscribe from this group and all its topics, send an email to

Lucas Xavier

unread,
Jun 4, 2013, 10:22:25 AM6/4/13
to androidb...@googlegroups.com
Gambiarra? Viajou hein...

É uma classe para representar os dados, no caso dele, apenas HORAS e MINUTOS. 

Facilita bastante caso ele precise trabalhar com banco de dados, assim como a depuração também!

Fora que facilita também na hora de construir operações. Por exemplo, ele poderia escrever um método de comparação mais adequado.

--
Atenciosamente,

Lucas Xavier

Ramon Pires da Silva

unread,
Jun 4, 2013, 10:35:06 AM6/4/13
to androidb...@googlegroups.com
Recriar uma api que já fornece as mesmas funções que o cara precisa é
algo desnecessário , e se a questão for persistir os dados no sqlite
não vejo qual seria o problema em usar Date ou Calendar, nesse caso
poderia ser persistido um simples timestamp . Essa sua solução seria
quase como reinventar a roda.

Em 04/06/13, Lucas Xavier<luca...@gmail.com> escreveu:

Andre Souza

unread,
Jun 4, 2013, 10:47:58 AM6/4/13
to androidb...@googlegroups.com
Eu trabalhei uma vez em java com uma lib muito boa pra lidar com essas questões de data e hora, o nome é JodaTime http://joda.sourceforge.net/. Ela tem metodos proprios pra somar horas, dias, etc etc, dai n precisei ficar me batendo pra fazer os calculos na mão =))


Tem mt material dela na internet, mas so um detalhe, nunca trabalhei com ela no Android, mas deve servir.
André Luiz de Oliveira Souza
Engenheiro da Computação
Pós-graduando em Desenvolvimento de Software com ênfase em Java Corporativo

Ramon Pires da Silva

unread,
Jun 4, 2013, 10:51:30 AM6/4/13
to androidb...@googlegroups.com
O JodaTime é excelente. Eu já pensei em usar ela no android ,mas o jar
dela ao meu ver é muito grande, talvez configurando o proguard o
tamanho diminua,mas nunca tentei.

Em 04/06/13, Andre Souza<deh.o...@gmail.com> escreveu:
> André Luiz de Oliveira Souza
> Engenheiro da Computação
> Pós-graduando em Desenvolvimento de Software com ênfase em Java Corporativo
>

Lucas Xavier

unread,
Jun 4, 2013, 11:51:08 AM6/4/13
to androidb...@googlegroups.com
O problema é que o dato que ele tem NÃO É um timestamp. :)

--
Atenciosamente,

Lucas Xavier

Wyllyam

unread,
Jun 19, 2013, 10:18:06 AM6/19/13
to androidb...@googlegroups.com
Aproveitando o tópico do Gabriel, queria saber de alguém se é possível trazer informações das linhas também.

Ex não preciso de saber o horário. Preciso saber qual linha (numero do onibus) me leva até meu destino que preciso.

Parecido com o google maps quando vc escolhe a opção onibus, mas, preciso fazer isso dentro do app.

Desde já obrigado.
Reply all
Reply to author
Forward
0 new messages