Mencari Titik dalam Bulatan Menggunakan Sambungan Ruang MySQL
Latar Belakang
Pelanjutan spatial MySQL membenarkan pengguna untuk memanipulasi dan menganalisis data spatial yang disimpan dalam pangkalan data MySQL. Satu tugas biasa ialah mengenal pasti titik yang terletak dalam bulatan tertentu. Senario ini sering ditemui dalam aplikasi seperti perkhidmatan berasaskan lokasi dan analisis geospatial.
Menggunakan Fungsi Jarak MySQL untuk Latitud dan Longitud
Maklumat Dihentikan:
Persoalan pada mulanya menyatakan bahawa sambungan spatial MySQL tidak menyokong pengiraan jarak latitud dan longitud. Walau bagaimanapun, maklumat ini sudah lapuk. Mulai MySQL 5.7, sambungan spatial menyokong pengiraan jarak Euclidean antara titik yang ditakrifkan menggunakan koordinat latitud dan longitud.
Contoh Pelaksanaan
Untuk memilih titik dalam bulatan menggunakan spatial MySQL sambungan, anda boleh menggunakan fungsi ST_Distance(). Fungsi ini mengira jarak antara dua titik dalam meter. Dengan mencipta bulatan maya di sekitar lokasi pengguna dengan jejari 100 meter dan menyemak sama ada jarak antara koordinat 'bendera' dan pusat bulatan berada dalam jejari ini, anda boleh menapis untuk titik dalam bulatan.
Berikut ialah contoh pertanyaan:
SELECT id, name, ST_Distance(coordinates, ST_PointFromGeoJSON('{ "type": "Point", "coordinates": [<user_longitude>, <user_latitude>] })) AS distance_in_meters FROM flags HAVING distance_in_meters <= 100 ORDER BY distance_in_meters ASC;
Pertanyaan ini mendapatkan semula semua 'bendera' dalam jarak 100 meter bulatan jejari, disusun mengikut kedekatannya dengan lokasi pengguna.
Nota Tambahan:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Mata Dalam Bulatan Menggunakan Sambungan Ruang MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!