sql >> Databáze >  >> RDS >> Mysql

MySQL vybírá souřadnice v dosahu

Můžete použít to, co se nazývá Haversine vzorec .

$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";

Kde $lat a $lng jsou souřadnice vašeho bodu a lat/lng jsou sloupce vaší tabulky. Výše bude uveden seznam míst v rozsahu 5 nm. Nahraďte 3959 od 6371 přepnout na kilometry.

Tento odkaz by mohl být užitečný:https://developers.google.com/maps/articles/phpsqlsearch_v3

Edit:Neviděl jsem, že jsi zmínil Javu. Tento příklad je v PHP, ale dotaz je stále to, co potřebujete.



  1. Nezamýšlené vedlejší účinky – Zámky v režimu spánku

  2. MySQL TIMEDIFF() vs TIMESTAMPDIFF():Jaký je rozdíl?

  3. Kdy se výkon Distinct a Group By liší?

  4. Dotaz LISTAGG ORA-00937:není skupinová funkce jedné skupiny