Kaart-kujutise (map) kasutamisel on tihti vaja teada saada aktiivse ala keskpunkti. Ringi puhul on see lihtne. Kuid mida teha hulknurga korral? Alljärgnev funktsioon tagastab massiivina kaks koordinaati: x ja y.
function getPolygonCentroid( coords )
{
var coords = coords.match(/\d+/g),
len = coords.length,
minX = maxX = parseInt( coords[0] ),
minY = maxY = parseInt( coords[1] ),
coord = 0;
while( len-- )
{
coord = parseInt( coords[len] );
if( len % 2 )
{
if( coord < minY )
{
minY = coord;
}
else if( coord > maxY )
{
maxY = coord;
}
} else {
if( coord < minX )
{
minX = coord;
}
else if( coord > maxX )
{
maxX = coord;
}
}
}
return [ Math.ceil( ( minX + maxX ) / 2 ),
Math.ceil( ( minY + maxY ) / 2 ) ];
}

Kommentaarid