JSFiddle - React, Tailwind, and code Playground
CSS
body
{
font: 16px/18px Arial,Sans-Serif;
}
JavaScript
var center = function (arr) {
var minX, maxX, minY, maxY;
for (var i = 0; i < arr.length; i++)
{
var x = arr[i][0], y = arr[i][1];
minX = (x < minX || minX == null) ? x : minX;
maxX = (x > maxX || maxX == null) ? x : maxX;
minY = (y < minY || minY == null) ? y : minY;
maxY = (y > maxY || maxY == null) ? y : maxY;
}
return [(minX + maxX) / 2, (minY + maxY) / 2];
};
var getCenter = function(arr)
{
var x = arr.map(function(a){return a[0]});
var y = arr.map(function(a){return a[1]});
var minX = Math.min.apply(null, x);
var maxX = Math.max.apply(null, x);
var minY = Math.min.apply(null, y);
var maxY = Math.max.apply(null, y);
return [(minX + maxX)/2, (minY + maxY)/2];
};
var getCenter2 = function (arr)
{
var x = arr.map (x => x[0]);
var y = arr.map (x => x[1]);
var cx = (Math.min (...x) + Math.max (...x)) / 2;
var cy = (Math.min (...y) + Math.max (...y)) / 2;
return [cx, cy];
}
var log = function (txt)
{
var p = document.createElement ('p');
p.appendChild (document.createTextNode (txt));
document.body.appendChild (p);
}
var coords = [
[-1.2, 5.1],
[34.3, 5.2],
[441.8, 56.9]
];
var c = center(coords);
var d = getCenter(coords);
var e = getCenter2 (coords);
log ("center: " + c);
log ("getCenter: " + d);
log ("getCenter2: " + e);