Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memilih Titik Dalam Bulatan Menggunakan Sambungan Ruang dan Latitud/Longitud MySQL?
Pelanjutan Spatial MySQL: Memilih Titik dalam Bulatan Berdasarkan Latitud/Longitud
Latar Belakang:
MySQL boleh menyimpan data geospatial menggunakan sambungan spatialnya. Ini membolehkan pertanyaan dan manipulasi yang cekap bagi objek spatial, termasuk titik, garisan dan poligon. Satu tugas biasa ialah memilih titik dalam jejari tertentu dari lokasi tertentu.
Menggunakan Sambungan Geospatial:
Untuk melaksanakan tugas ini, MySQL menyediakan beberapa fungsi geospatial, termasuk Penampan (), yang mewujudkan zon penampan di sekeliling titik atau garis. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa MySQL tidak menyokong pengiraan kedekatan secara asli berdasarkan latitud dan longitud.
Pendekatan Alternatif:
Untuk menentukan titik dalam bulatan berdasarkan latitud dan longitud, pendekatan yang berbeza diperlukan. Formula Jarak Bulatan Besar boleh digunakan untuk mengira jarak antara dua titik di permukaan Bumi. Ini boleh dimasukkan ke dalam pertanyaan MySQL untuk menapis titik dalam jejari tertentu.
Sampel Pertanyaan:
Pertanyaan berikut menunjukkan cara menggunakan formula Jarak Bulatan Besar untuk pilih bendera dalam radius 100 meter dari latitud dan longitud tertentu:
SELECT id, coordinates, name, r, units * DEGREES(ACOS(LEAST(1.0, COS(RADIANS(latpoint)) * COS(RADIANS(latitude)) * COS(RADIANS(longpoint) - RADIANS(longitude)) + SIN(RADIANS(latpoint)) * SIN(RADIANS(latitude))))) AS distance FROM flags JOIN ( SELECT 42.81 AS latpoint, -70.81 AS longpoint, 10.0 AS r, 69.0 AS units ) AS p ON (1=1) WHERE MbrContains(GeomFromText ( CONCAT('LINESTRING(', latpoint-(r/units),' ', longpoint-(r /(units* COS(RADIANS(latpoint)))), ',', latpoint+(r/units) ,' ', longpoint+(r /(units * COS(RADIANS(latpoint)))), ')')), coordinates)
Dalam pertanyaan ini, parameter titik lat dan titik panjang mewakili lokasi pengguna. Parameter r dan unit menentukan jejari (dalam meter) dan unit jarak setiap darjah latitud.
Pertimbangan Tambahan:
Dengan mengikuti pendekatan ini, anda boleh memilih titik dalam bulatan dengan berkesan berdasarkan latitud dan longitud, membolehkan anda mencipta aplikasi berasaskan lokasi menggunakan sambungan spatial MySQL.
Atas ialah kandungan terperinci Bagaimana untuk Memilih Titik Dalam Bulatan Menggunakan Sambungan Ruang dan Latitud/Longitud MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!