« Tagasi postituste lehele

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