Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] [DÚVIDA] Ordenar lista de endereços a partir da localização atual.

Com certeza, mas é bom ter em mente essas limitações...

Lúcio Maciel
luciofm@gmail.com


2013/9/25 ttt <mrxrsd@gmail.com>
Não sabia desse detalhe, só lembrava do conceito de geohash de um projeto do Chester (cruzalinhas.com.br). É, realmente complica um pouco então, porém dependendo do público alvo dele, talvez possa ser usado. 


2013/9/25 luciofm <luciofm@gmail.com>
O mongodb tem suporte a GeoHash, mas não sei se ele trata esses corner cases..


Lúcio Maciel
luciofm@gmail.com


2013/9/25 luciofm <luciofm@gmail.com>
O GeoHash não garante que pontos próximos tenham o mesmo prefixo...

"As a consequence of the gradual precision degradation, nearby places will often (but not always) present similar prefixes. Conversely, the longer a shared prefix is, the closer the two places are."

"One limitation of the Geohash algorithm is in attempting to utilize it to find points in proximity to each other based on a common prefix. Edge case locations close to each other but on opposite sides of the Equator or a meridian can result in Geohash codes with no common prefix.[1]

Secondly a geohash essentially defines a bounding box within which a location lies, therefore two locations may be spatially very close but have different geohashes. In order to be useful to proximity searches, the surrounding eight geohashes of a geohash must be calculated and the locations matching these pulled out, therefore complicating potential usage in proximity searches.

"


Lúcio Maciel
luciofm@gmail.com


2013/9/25 ttt <mrxrsd@gmail.com>
Porém desse jeito ele precisa carregar todos os endereços do banco para memória para depois realizar o filtro, talvez o ideal seja usar geohash ou criar uma função no banco que calcula isso, talvez seja mais rápido.


2013/9/25 luciofm <luciofm@gmail.com>
Não precisa reinventar a roda

Location loc1 = localizacao do ponto 1;
Location loc2 = localizacao do ponto 2;

float distance = loc1.distanceTo(loc2);



Lúcio Maciel
luciofm@gmail.com


2013/9/24 Pedro Subutzki <Pepeu> <falecompepeu@gmail.com>

Outro dia mandei aqui o código para calcular a distância (em linha reta) em Kilometros entre 2 pontos.
O código está em C# mas é fácil de passar pra Java: https://gist.github.com/PepeuCps/6536640

Pegue a posição atual e pra cada posição do contato você calcula e depois ordena pela mais próxima.

Abraços,
Pedro Subutzki
__________________________________________
HADI - Makes SQLite in Android easy and simple
https://github.com/PepeuCps/Hadi


Em 24 de setembro de 2013 16:16, ttt <mrxrsd@gmail.com> escreveu:

Você precisa salvar no banco o ponto LatLng do endereço, depois é só fazer um cálculo simples de distância entre dois pontos LatLng. Sem salvar o latlng fica bem inviavel...

Outra abordagem pode ser utilizar salvar o geohash do endereço e fazer um starswith, ou utilizar distancia de edição


2013/9/24 Renato Filho <renatosousafilho@gmail.com>
Ola amigos, estou com uma dúvida quanto ao uso do Maps no Android. Tenho uma lista de contatos com endereços salva em um banco de dados e gostaria de saber uma forma de como ordenar esta lista de endereços de acordo com a distância delas em relação a localização atual do usuário. Alguém pode me dar uma dica de como fazer isso? 

Agradeço  a atenção.

--
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-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--
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-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--
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-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--
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-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--
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-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


--
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-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--
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-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--
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-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário