Mysql
 sql >> база данни >  >> RDS >> Mysql

Съвпадение на най-близката дължина/ширина

Елегантното (по-точно ) начин да направите това (но не много бързо). )

// Closest within radius of 25 Miles
// 37, -122 are your current coordinates
// To search by kilometers instead of miles, replace 3959 with 6371
SELECT feature_name, 
 ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) 
  * cos( radians( long ) - radians(-122) ) + sin( radians(37) ) 
  * sin( radians( lat ) ) ) ) AS distance 
FROM geo_features HAVING distance < 25 
ORDER BY distance LIMIT 1;

Редактиране

Това е Формула на Haversine за изчисляване на кръгово разстояние от геокоординати. Ето някои реализации на тази формула в различни платформи

R = earth’s radius (mean radius = 6,371km)
Δlat = lat2− lat1
Δlong = long2− long1
a = sin²(Δlat/2) + cos(lat1).cos(lat2).sin²(Δlong/2)
c = 2.atan2(√a, √(1−a))
d = R.c
// Note that angles need to be in radians to pass to Trigonometric functions



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Определете дали даден sql израз започва с думата SELECT

  2. Големи таблици и анализи в MySql

  3. Какви рамки да използвам, за да стартирам първия си производствен scala проект?

  4. Най-добри практики в PHP и MySQL с международни низове

  5. Система за гласуване с PHP+MySql?