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

Rumus untuk Menghitung Kedekatan Geo

Hukum Cosinus dan Rumus Haversine akan memberikan hasil yang identik dengan asumsi mesin dengan presisi tak terbatas. Rumus Haversine lebih kuat untuk kesalahan floating point. Namun, mesin saat ini memiliki presisi ganda dari urutan 15 angka penting, dan hukum kosinus dapat bekerja dengan baik untuk Anda. Kedua rumus ini mengasumsikan bumi bulat, sedangkan solusi iteratif Vicenty (paling akurat) mengasumsikan bumi ellipsoidal (pada kenyataannya bumi bahkan bukan ellipsoid - ini adalah geoid). Beberapa referensi:http://www.movable-type. co.uk/scripts/gis-faq-5.1.html

Itu menjadi lebih baik:perhatikan garis lintang yang akan digunakan dalam hukum kosinus serta Haversine adalah garis lintang geosentris, yang berbeda dari garis lintang geodetik. Untuk bola, keduanya sama.

Mana yang paling cepat dihitung?

Urutan dari yang tercepat ke yang paling lambat adalah:hukum kosinus (5 panggilan trigonometri) -> haversine (melibatkan sqrt) -> Vicenty (harus menyelesaikan ini secara iteratif dalam for loop)

Mana yang paling akurat?

Vincentius.

Mana yang terbaik jika kecepatan dan akurasi sama-sama dipertimbangkan?

Jika domain masalah Anda sedemikian rupa sehingga untuk jarak yang Anda coba hitung, bumi dapat dianggap datar, maka Anda dapat mengerjakan (saya tidak akan memberikan perincian) rumus dalam bentuk x =kx * perbedaan bujur , y =ky * perbedaan garis lintang. Maka jarak =sqrt(dxdx + dy mati). Jika domain masalah Anda sedemikian rupa sehingga dapat diselesaikan dengan kuadrat jarak, maka Anda tidak perlu mengambil kuadrat, dan rumus ini akan secepat mungkin. Ini memiliki keuntungan tambahan bahwa Anda dapat menghitung vektor jarak - x adalah jarak ke arah timur, dan y adalah jarak ke arah utara. Jika tidak, bereksperimenlah dengan 3 dan pilih yang paling sesuai dengan situasi Anda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Alternatif pt-query-digest - Manajemen &Pemantauan Kueri MySQL dengan ClusterControl

  2. mysql secara otomatis menyimpan stempel waktu pembuatan catatan

  3. Pencarian Teks Lengkap di MySQL:Yang Baik, yang Buruk dan yang Jelek

  4. Bagaimana saya bisa mempercepat kueri MySQL dengan offset besar di klausa LIMIT?

  5. Kesalahan MYSQLi:Pengguna sudah memiliki lebih dari 'max_user_connections' koneksi aktif