Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mengira Jarak Antara Dua Kod Pos dalam PHP?

Bagaimana untuk Mengira Jarak Antara Dua Kod Pos dalam PHP?

Patricia Arquette
Patricia Arquetteasal
2024-11-02 07:38:29780semak imbas

How to Calculate Distance Between Two Zip Codes in PHP?

Menentukan Jarak Antara Kod Pos dalam PHP

Permintaan pengguna untuk mengira jarak antara dua kod zip memerlukan menggunakan pangkalan data kod zip dan latitud dan longitud yang sepadan. Panduan ini menyediakan penyelesaian dalam PHP berdasarkan medan data yang disediakan:

Penyelesaian:

Untuk mengira jarak antara dua poskod, langkah berikut boleh diambil:

  1. Sertai nilai latitud dan longitud bagi dua kod zip menggunakan medan pangkalan data yang ditentukan (LATITUDE dan LONGITUDE) untuk setiap kod pos.
  2. Kira jarak Haversine menggunakan formula berikut:
<code class="php">function calc_distance($point1, $point2)
{
    $radius      = 3958;      // Earth's radius (miles)
    $deg_per_rad = 57.29578;  // Number of degrees/radian (for conversion)

    $distance = ($radius * pi() * sqrt(
                ($point1['lat'] - $point2['lat'])
                * ($point1['lat'] - $point2['lat'])
                + cos($point1['lat'] / $deg_per_rad)  // Convert these to
                * cos($point2['lat'] / $deg_per_rad)  // radians for cos()
                * ($point1['long'] - $point2['long'])
                * ($point1['long'] - $point2['long'])
        ) / 180);

    return $distance;  // Returned using the units used for $radius.
}</code>

Kod ini menggunakan pemalar jejari Bumi (3958 batu) dan menukar nilai latitud dan longitud kepada radian untuk pengiraan jarak yang tepat.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Jarak Antara Dua Kod Pos dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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