Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia pessoal.
Tenho as coordenadas
<Latitude>-23.5477</Latitude>
<Longitude>-46.6359</Longitude>
Preciso pegar todos os outros pontos previamente registrados com suas respectivas coordenadas, dentro de um Raio de 5Km.
Existe alguma classe para isso?
Beraldo, devido ao fato de todas as coordenadas estarem no BD, este foi o que melhor se enquadrou em minha aplicação.
No entanto, está retornando todos os registros.
>
Dê uma olhada aqui:
Fiz a adaptação para os nomes de campos e tabela mas não funcionou.
Lembrando que os valores par Lat = 45.707809 e Long= 9.741152
SELECT *, (6371 *
acos(
cos(radians(-45.707809)) *
cos(radians(Lat)) *
cos(radians(9.741152) - radians(Longi)) +
sin(radians(-45.707809)) *
sin(radians(Lat))
)) AS distance
FROM area_sosta HAVING distance <= 5
O que sugere?
Caramba, que irada essa consulta! Não sabia que o MySQL poderia ir tão longe, haha.
Cara, pode nos enviar alguns registros de area_sosta, para fazer testes?
Ops! Devido a quantidade de registros e a falta de filtros, me perdi no retorno.
Funcionou e funcionou bonito. Ganhei 4 dias no cronograma.
Muito obrigado, Digníssimo Beraldo. :D
>
Beraldo, devido ao fato de todas as coordenadas estarem no BD, este foi o que melhor se enquadrou em minha aplicação.
No entanto, está retornando todos os registros.
Beraldo, em 22 Mar 2016 - 2:06 PM, disse:/applications/core/interface/imageproxy/imageproxy.php?img=http://forum.imasters.com.br/public/style_images/imasters-2014/snapback.png&key=1ee5f8b1ea7d62de45cfefadcc0adc7e9051efb3e387572cc8f556d8de3e8975" alt="snapback.png" />
>
Dê uma olhada aqui:
http://pt.stackoverf...=oldest#tab-top
Fiz a adaptação para os nomes de campos e tabela mas não funcionou.
Lembrando que os valores par Lat = 45.707809 e Long= 9.741152
SELECT *, (6371 *
acos(
cos(radians(-45.707809)) *
cos(radians(Lat)) *
cos(radians(9.741152) - radians(Longi)) +
sin(radians(-45.707809)) *
sin(radians(Lat))
)) AS distance
FROM area_sosta HAVING distance <= 5
O que sugere?
>
Caramba, que irada essa consulta! Não sabia que o MySQL poderia ir tão longe, haha.
Cara, pode nos enviar alguns registros de area_sosta, para fazer testes?
Maykel, A DB é extensa e com minha limitação técnica, não consigo exportar parcialmente. Mas se quiser, posso montar uma especifica para você.
Bom, já que funcionou, não precisa! Hahah, era mais para testar, e matar a curiosidade da funcionalidade!
Muito legal, e rotina muito útil nos dias de hoje!
Dê uma olhada aqui:
http://pt.stackoverflow.com/questions/55669/identificar-se-conjunto-de-coordenadas-est%C3%A1-dentro-de-um-raio-em-android
https://groups.google.com/forum/#!topic/androidbrasil-dev/ynZ1C1AT3Uo
A API do Google Maps também pode ajudar:
http://www.ehow.com.br/api-google-maps-distancia-radial-como_7611/
http://ptcomputador.com/P/javascript-programming/90806.html
https://developers.google.com/maps/documentation/javascript/3.exp/reference#Circle