sql >> Databasteknik >  >> RDS >> Mysql

Få resultat från mysql baserat på latitud longitud

Du kan beräkna ett avstånd med en sfärisk lag för cosinus :

SELECT DEGREES(ACOS(SIN(RADIANS(clients.latitude)) * SIN(RADIANS(schools.latitude)) + 
                    COS(RADIANS(clients.latitude)) * COS(RADIANS(schools.latitude)) 
                                                   * COS(RADIANS(clients.longitude 
                                                               – schools.longitude)))) 
       * 60 * 1.1515 * 1.609344 AS distance
FROM clients, schools HAVING distance < $radius

RADIANS(X) - grader till radianer
ACOS(X ) - bågcosinus för X, det vill säga värdet vars cosinus är X
GRADER(X) - radianer till grader

60 - minuter i en grad
1,1515 - miles i en nautisk mil
1,609344 - kilometer på en mil




  1. Vad är det bästa sättet att infoga och uppdatera en enradstabell i MySQL?

  2. INSERT COMMAND ::FEL:kolumnvärdet finns inte

  3. Det går inte att skicka text till MySQL med Infoga i

  4. Hur man skapar en korstabellsfråga i designvy i Access