Mencari Bangunan Dalam Jejari 5 Batu melalui Koordinat
Panduan ini memperincikan cara mendapatkan semula semua bangunan dengan cekap dalam radius 5 batu dari koordinat yang diberikan.
Langkah 1: Optimumkan Storan Data
Simpan data lokasi bangunan menggunakan jenis data geometri atau geografi. Ini meningkatkan prestasi pertanyaan spatial dengan ketara dan menghalang isu penukaran jenis data.
Langkah 2: Gunakan ST_DWithin atau ST_Distance
Dua fungsi memudahkan pengiraan jarak:
ST_DWithin: Fungsi ini dengan cekap menentukan sama ada geometri jatuh dalam jarak yang ditentukan. Untuk mencari bangunan dalam jarak 5 batu dari (-4.6314, 54.0887):
SELECT name, longitude, latitude FROM building WHERE ST_DWithin('POINT(-4.6314 54.0887)'::geography, ST_MakePoint(longitude, latitude), 8046.72); -- 8046.72 meters = 5 miles
ST_Distance: Fungsi ini mengira jarak dalam meter. Tukar meter kepada batu menggunakan: distance * 0.000621371
. Untuk bangunan dalam jarak 5 batu dari (-4.6314, 54.0887):
SELECT name, longitude, latitude, ST_Distance('POINT(-4.6314 54.0887)'::geography, ST_MakePoint(longitude, latitude)) * 0.000621371 AS distance_miles FROM building WHERE distance_miles <= 5;
Langkah 3: Pertimbangan Utama
Atas ialah kandungan terperinci Bagaimana Mencari Bangunan Dalam Jejari 5 Batu Menggunakan Koordinat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!