JSFiddle - React, Tailwind, and code Playground

by igos

JavaScript

var data = [{"lat":49.6073936999041,"lng":19.9479478597641},{"lat":49.60797770789782,"lng":19.9479478597641},{"lat":49.60797770789782,"lng":19.94930505752563},{"lat":49.6073936999041,"lng":19.94930505752563}]


function GetCenterFromDegrees(dataPoints)
{
    var $num_coords = dataPoints.length;

    var $X = 0.0;
    var $Y = 0.0;
    var $Z = 0.0;
    data.forEach(function($coord)
    {
        var $lat = $coord.lat * Math.PI / 180;
        var $lon = $coord.lng * Math.PI / 180;

        var $a = Math.cos($lat) * Math.cos($lon);
        var $b = Math.cos($lat) * Math.sin($lon);
        var $c = Math.sin($lat);

        $X += $a;
        $Y += $b;
        $Z += $c;
    });

    $X /= $num_coords;
    $Y /= $num_coords;
    $Z /= $num_coords;

    var $lon = Math.atan2($Y, $X);
    var $hyp = Math.sqrt($X * $X + $Y * $Y);
    var $lat = Math.atan2($Z, $hyp);

    return [$lat * 180 / Math.PI, $lon * 180 / Math.PI];
}

console.log(GetCenterFromDegrees(data2));