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

MySQL Great Circle Distance (Haversine formel)

Fra Ofte stillede spørgsmål om Google-kode - Oprettelse af en Store Locator med PHP, MySQL og Google Maps :

Her er SQL-sætningen, der finder de nærmeste 20 lokationer, der er inden for en radius af 25 miles til 37, -122 koordinaten. Den beregner afstanden baseret på den pågældende rækkes bredde/længdegrad og målbredde/længdegrad, og beder derefter kun om rækker, hvor afstandsværdien er mindre end 25, sorterer hele forespørgslen efter afstand og begrænser den til 20 resultater. For at søge efter kilometer i stedet for miles skal du erstatte 3959 med 6371.

SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) 
* cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin(radians(lat)) ) ) AS distance 
FROM markers 
HAVING distance < 25 
ORDER BY distance 
LIMIT 0 , 20;


  1. SQLite primær nøgle

  2. Opret en bruger med alle rettigheder i Oracle

  3. Hent beskeder fra postkassen ved hjælp af PL/SQL Mail_Client API

  4. GDPR-overholdelse og din SQL-server