Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kueri SQL geolokasi tidak menemukan lokasi yang tepat

Dalam kueri pertama Anda, saya yakin Anda telah membalikkan garis bujur dalam pengurangan. Hukum Kosinus Bulat adalah:

d = acos(sin(lat1)*sin(lat2) + cos(lat1)*cos(lat2)*cos(long2−long1))*R

Jika lat1 diganti dengan tblcity.latitude, long1 harus diganti dengan tblcity.longitude. Saya pikir Anda secara tidak sengaja mengganti long2 dalam kueri Anda. Apakah yang ini bekerja lebih baik?

SELECT tblcity.city, tblcity.latitude, tblcity.longitude, 
truncate((degrees(acos( sin(radians(tblcity.latitude)) 
* sin(radians(45.266708)) 
+ cos(radians(tblcity.latitude)) 
* cos(radians(45.266708)) 
* cos(radians(-73.616257 - tblcity.longitude) ) ) ) 
* 69.09*1.6),1) as distance 
FROM tblcity HAVING distance < 10 ORDER BY distance desc 

Saya belum memeriksa kueri kedua Anda, tapi semoga membantu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa penyisipan MySQL InnoDB sangat lambat?

  2. Node.js MySQL Membutuhkan Koneksi Persisten

  3. Bisakah saya menggunakan VARCHAR sebagai KUNCI UTAMA?

  4. Mengukur waktu kueri MySQL yang sebenarnya

  5. Bagaimana cara mendapatkan banyak catatan terhadap satu catatan berdasarkan relasi?