Định luật hình cầu của công thức cosin
(37 và -122 là vĩ độ và kinh độ của tâm bán kính của bạn)
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) )
* cos( radians( long ) - radians(-122) ) + sin( radians(37) ) * sin(radians(lat)) ) ) AS distance
FROM myTable
HAVING distance < 50
ORDER BY distance
Tính năng
- Nhanh nhất
- Độ chính xác tương tự như Công thức Harvesine
Công thức Haversine
SELECT id, 3959 * 2 * ASIN(SQRT(POWER(SIN((37 - abs(lat)) * pi()/180 / 2), 2)
+ COS(37 * pi()/180 ) * COS(abs(lat) * pi()/180)
* POWER(SIN((-122 - long) * pi()/180 / 2), 2) )) as distance
FROM myTable
HAVING distance < 50
ORDER BY distance
Tính năng
- Nhanh
- Mạnh mẽ hơn đối với lỗi dấu chấm động
Lưu ý rằng 3959 là bán kính Trái đất tính bằng dặm . Bán kính trái đất tính bằng km (km):6371
Bạn có thể tìm thêm thông tin tại đây