Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyoal Pangkalan Data untuk Keputusan Bertindih Berbilang Penanda Pekeliling dengan Jejari Tertentu?

Bagaimana untuk Menyoal Pangkalan Data untuk Keputusan Bertindih Berbilang Penanda Pekeliling dengan Jejari Tertentu?

Linda Hamilton
Linda Hamiltonasal
2024-10-31 03:04:31579semak imbas

How to Query a Database for Results Overlapping Multiple Circular Markers with Specified Radii?

Mencari Pangkalan Data untuk Keputusan dalam Jejari Bertindih

Masalah:

Dalam pangkalan data dengan geografi data, anda ingin memilih hasil yang bertindih sebahagiannya berbilang penanda bulat dengan jejari yang ditentukan. Pertanyaan SQL sedia ada tidak mengenal pasti dengan tepat hasil yang bertindih berbilang penanda.

Penyelesaian:

Untuk hasil yang tepat, pernyataan SQL berikut boleh digunakan:

<code class="sql">SELECT A.user_id, A.radius_id, A.latitude, A.logitude
FROM UserA AS A, 
     (SELECT user_id, latitude, longitude 
       FROM UserB 
       WHERE user_id = 8) AS B
WHERE (POW((A.latitude-B.latitude)*111.12, 2) + POW((A.longitude - B.longitude)*111.12*cos(A.latitude), 2)) <= 4</code>

Penjelasan:

Pertanyaan ini menggunakan persamaan bulatan untuk menentukan sama ada titik tertentu (dari UserA) berada dalam jejari bulatan (ditakrifkan oleh latitud dan longitud jejari daripada UserB). Langkah-langkah berikut terlibat:

  1. Tukar latitud dan longitud kepada kilometer: Darab beza latitud dan longitud dengan 111.12 untuk menukar kepada kilometer.
  2. Kira jarak menggunakan persamaan bulatan: Kira jarak antara titik dan pusat jejari menggunakan formula diubah suai POW((A.latitud-B.latitud)*111.12, 2) POW((A.longitud - B. longitud)*111.12*cos(A.latitud), 2).
  3. Bandingkan jarak dengan jejari: Jika jarak yang dikira kurang daripada atau sama dengan jejari kuasa dua, titik jatuh dalam jejari.

Dengan menggunakan pertanyaan ini, anda boleh mengenal pasti dengan tepat hasil yang bertindih berbilang penanda bulat, walaupun bulatan bersentuhan antara satu sama lain.

Atas ialah kandungan terperinci Bagaimana untuk Menyoal Pangkalan Data untuk Keputusan Bertindih Berbilang Penanda Pekeliling dengan Jejari Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn