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));