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

MySQL vælg koordinater inden for rækkevidde

Du kan bruge det, der kaldes Haversine-formlen .

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

Hvor $lat og $lng er koordinaterne for dit punkt, og lat/lng er dine tabelkolonner. Ovenstående vil angive placeringerne inden for et område på 5 nm. Erstat 3959 af 6371 for at skifte til kilometer.

Dette link kunne være nyttigt:https://developers.google.com/maps/articles/phpsqlsearch_v3

Edit:Jeg så ikke, at du nævnte Java. Dette eksempel er i PHP, men forespørgslen er stadig, hvad du har brug for.



  1. Hvordan ser man CREATE VIEW-koden for en visning i PostgreSQL?

  2. Top 30 SQL Query-interviewspørgsmål, du skal praktisere i 2022

  3. Er der en postgres NÆRMESTE operatør?

  4. Designmønster til brugerdefinerede felter i relationel database