Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mencari Latitud dan Longitud Terdekat dalam Radius Diberi Menggunakan SQL?

Bagaimana untuk Mencari Latitud dan Longitud Terdekat dalam Radius Diberi Menggunakan SQL?

Barbara Streisand
Lepaskan: 2025-01-18 15:56:10
asal
696 orang telah melayarinya

How to Find the Nearest Latitude and Longitude within a Given Radius Using SQL?

Cari latitud dan longitud terdekat menggunakan pertanyaan SQL

Apabila bekerja dengan data geospatial, anda selalunya perlu mendapatkan semula rekod berdasarkan jaraknya dari titik tertentu. Ini boleh dicapai dengan menggunakan pertanyaan SQL yang mengira jarak antara dua titik dan mendapatkan semula rekod yang berada dalam radius yang ditentukan.

Andaikan jadual pangkalan data mengandungi koordinat latitud dan longitud pelbagai lokasi. Untuk latitud dan longitud tertentu, kami ingin mendapatkan semula rekod dengan latitud dan longitud yang paling hampir. Walau bagaimanapun, jika jarak antara titik tertentu dan rekod yang diambil melebihi ambang yang ditetapkan, rekod itu tidak boleh diambil semula.

Untuk melakukan ini, kita boleh menggunakan pertanyaan SQL berikut:

<code class="language-sql">SELECT latitude, longitude, SQRT(
    POW(69.1 * (latitude - [startlat]), 2) +
    POW(69.1 * ([startlng] - longitude) * COS(latitude / 57.3), 2)) AS distance
FROM TableName HAVING distance < 25 ORDER BY distance</code>
Salin selepas log masuk

Dalam pertanyaan ini, [startlat] dan [startlng] mewakili latitud dan longitud bagi titik tertentu. Lajur distance menggunakan formula Haversine untuk mengira jarak antara titik tertentu dan setiap rekod dalam jadual. Klausa HAVING menapis rekod yang jaraknya melebihi 25 (ambang yang ditentukan). Akhir sekali, klausa ORDER BY mengisih hasil mengikut jarak, mengembalikan rekod dengan latitud dan longitud terdekat terlebih dahulu.

Pertanyaan ini membolehkan mendapatkan semula lokasi berdekatan dengan cekap, memastikan hasil yang dikembalikan berada dalam julat jarak yang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Latitud dan Longitud Terdekat dalam Radius Diberi Menggunakan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan