Rumah > Artikel > pangkalan data > Bagaimana untuk Mengira Jarak dalam Jejari Menggunakan Latitud dan Longitud dalam PHP?
Mengira Jarak dari Latitud dan Longitud
Dalam senario ini, anda sedang mencari untuk menentukan titik dalam radius 15 batu dari koordinat yang dimasukkan pengguna. Untuk mencapai matlamat ini, anda boleh memanfaatkan formula matematik untuk mengira jarak.
Pertimbangkan fungsi PHP berikut:
<code class="php">function get_distance($latitude1, $longitude1, $latitude2, $longitude2, $unit = 'Mi') { // Calculate the angle difference $theta = $longitude1 - $longitude2; // Calculate the distance $distance = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta))); // Convert to degrees $distance = acos($distance); $distance = rad2deg($distance); // Convert to miles or kilometers $distance = $distance * 60 * 1.1515; // Round the distance return (round($distance,2)); }</code>
Sebagai alternatif, anda boleh menggunakan pertanyaan pangkalan data untuk mencapai ini:
<code class="sql">$query = "SELECT *,(((acos(sin((".$latitude."*pi()/180)) * sin((`Latitude`*pi()/180))+cos((".$latitude."*pi()/180)) * cos((`Latitude`*pi()/180)) * cos(((".$longitude."- `Longitude`)* pi()/180))))*180/pi())*60*1.1515 ) as distance FROM `MyTable` HAVING distance > ".$distance.";</code>
Atas ialah kandungan terperinci Bagaimana untuk Mengira Jarak dalam Jejari Menggunakan Latitud dan Longitud dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!