Rumah > Artikel > pangkalan data > Bagaimana untuk Mendapatkan Mata Data Dalam Jejari Penanda Bertindih daripada Pangkalan Data Geospatial?
Mendapatkan Keputusan Dalam Jejari Penanda Bertindih daripada Pangkalan Data
Objektifnya adalah untuk mendapatkan titik data yang berada dalam jejari bertindih berbilang penanda dalam pangkalan data geospatial. Untuk mencapai matlamat ini, anda mesti menggunakan persamaan bulatan untuk menentukan sama ada titik terletak dalam jejari tertentu.
Mengambil kira lokasi Pengguna B sebagai pusat bulatan dan lokasi Pengguna A sebagai titik pada perimeter bulatan, persamaan itu daripada bulatan, ditukar kepada kilometer untuk ketekalan, berubah menjadi:
((x-x1)*111.12)^2 + ((y-y1)*111.12)^2 = 4 (=2^2)
di mana:
Menterjemahkan persamaan ini kepada hasil 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, 2)) <= 4
Nota: Untuk ketepatan yang dipertingkatkan, pertimbangkan untuk menggunakan (A.longitud - B.longitud)*111.12*cos(A.latitud) atau (A.longitud - B.longitud)*111.12*cos( B.latitud) bukannya (A.longitud - B.longitud)*111.12 dalam persamaan.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Mata Data Dalam Jejari Penanda Bertindih daripada Pangkalan Data Geospatial?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!