Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL seleziona le coordinate all'interno dell'intervallo

Puoi usare quella che viene chiamata la formula 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";

Dove $lat e $lng sono le coordinate del tuo punto e lat/lng sono le colonne della tabella. Quanto sopra elencherà le posizioni entro un intervallo di 5 nm. Sostituisci 3959 per 6371 per cambiare in chilometri.

Questo link potrebbe essere utile:https://developers.google.com/maps/articles/phpsqlsearch_v3

Modifica:non ho visto che hai menzionato Java. Questo esempio è in PHP ma la query è ancora ciò di cui hai bisogno.