sql >> Base de Datos >  >> RDS >> Mysql

MySQL seleccione coordenadas dentro del rango

Puede usar lo que se llama la fórmula de Haversine .

$sql = "SELECT *, ( 3959 * acos( cos( radians(" . $lat . ") ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(" . $lng . ") ) + sin( radians(" . $lat . ") ) * sin( radians( lat ) ) ) ) AS distance FROM your_table HAVING distance < 5";

Donde $lat y $lng son las coordenadas de su punto, y lat/lng son las columnas de su tabla. Lo anterior enumerará las ubicaciones dentro de un rango de 5 nm. Reemplazar 3959 por 6371 para cambiar a kilómetros.

Este enlace podría ser útil:https://developers.google.com/maps/articles/phpsqlsearch_v3

Editar:no vi que mencionaras Java. Este ejemplo está en PHP, pero la consulta sigue siendo lo que necesita.