Calculate all the points distance (Geolocation) in Km

PHOTO EMBED

Thu Jun 29 2023 08:43:39 GMT+0000 (Coordinated Universal Time)

Saved by @edsonjorgef1 #php

<?php
// Enter your code here, enjoy!
// function calculateDistance($lat1, $lon1, $lat2, $lon2) {
//     // approximate radius of Earth in km
//     $R = 6371.0;

//     // convert degrees to radians
//     $lat1 = deg2rad($lat1);
//     $lon1 = deg2rad($lon1);
//     $lat2 = deg2rad($lat2);
//     $lon2 = deg2rad($lon2);

//     // calculate the differences in latitude and longitude
//     $dlat = $lat2 - $lat1;
//     $dlon = $lon2 - $lon1;

//     // apply the Haversine formula
//     $a = sin($dlat / 2) ** 2 + cos($lat1) * cos($lat2) * sin($dlon / 2) ** 2;
//     $c = 2 * atan2(sqrt($a), sqrt(1 - $a));

//     // calculate the distance
//     $distance = $R * $c;

//     return $distance;
// }

// // Array of coordinates
// $coordinates = array(
//     array(-14.537804, 40.672439, "NA1"),  // NA1
//     array(-14.532698, 40.674953, "NA2"),  // NA2
//     array(-14.529319, 40.675874, "NA3"),  // NA3
//     array(-14.523059, 40.675931, "NA4"),  // NA4
//     array(-14.459071, 40.674796, "NB5"),  // NB5
//     array(-14.460408, 40.678548, "NB6"),  // NB6
//     array(-14.461540, 40.680757, "NB7")   // NB7
// );

// // Calculate distances between points
// $pointCount = count($coordinates);
// for ($i = 0; $i < $pointCount - 1; $i++) {
//     $coord1 = $coordinates[$i];
//     $coord2 = $coordinates[$i + 1];
    
//     $j = $i + 1;

//     $lat1 = $coord1[0];
//     $lon1 = $coord1[1];
//     $lat2 = $coord2[0];
//     $lon2 = $coord2[1];

//     $distance = calculateDistance($lat1, $lon1, $lat2, $lon2);
//     echo "Distance between point {$coord1[2]} and point {$coord2[2]}: {$distance} km\n";
// }


function calculateDistance($lat1, $lon1, $lat2, $lon2) {
    // approximate radius of Earth in km
    $R = 6371.0;

    // convert degrees to radians
    $lat1 = deg2rad($lat1);
    $lon1 = deg2rad($lon1);
    $lat2 = deg2rad($lat2);
    $lon2 = deg2rad($lon2);

    // calculate the differences in latitude and longitude
    $dlat = $lat2 - $lat1;
    $dlon = $lon2 - $lon1;

    // apply the Haversine formula
    $a = sin($dlat / 2) ** 2 + cos($lat1) * cos($lat2) * sin($dlon / 2) ** 2;
    $c = 2 * atan2(sqrt($a), sqrt(1 - $a));

    // calculate the distance
    $distance = $R * $c;

    return $distance;
}

// Array of coordinates
$coordinates = array(
    array(-14.537804, 40.672439, 'NA1'),
    array(-14.532698, 40.674953, 'NA2'),
    array(-14.529319, 40.675874, 'NA3'),
    array(-14.523059, 40.675931, 'NA4'),
    array(-14.459071, 40.674796, 'NB5'),
    array(-14.460408, 40.678548, 'NB6'),
    array(-14.461540, 40.680757, 'NB7')
);

// Calculate distances between each point
$pointCount = count($coordinates);
for ($i = 0; $i < $pointCount - 1; $i++) {
    $coord1 = $coordinates[$i];
    $lat1 = $coord1[0];
    $lon1 = $coord1[1];

    for ($j = $i + 1; $j < $pointCount; $j++) {
        $coord2 = $coordinates[$j];
        $lat2 = $coord2[0];
        $lon2 = $coord2[1];

        $distance = calculateDistance($lat1, $lon1, $lat2, $lon2);
        echo "Distance between point {$coord1[2]} and point {$coord2[2]}: {$distance} km\n";
    }
}

content_copyCOPY