
use strict;

use Math::Geometry::Voronoi;

# load a set of points
my @points = ([1,   2],
              [1,   3],
              [2,   2],
              [0,   1],
              [0,   10],
              [0.5, 11]);
my $geo = Math::Geometry::Voronoi->new(points => \@points);
 
# compute your diagram
$geo->compute;
 
# extract features
my $lines    = $geo->lines;
my $edges    = $geo->edges;
my $vertices = $geo->vertices;
 
# build polygons
my @polygons = $geo->polygons;
#@polys = $geo->polygons(normalize_vertices => sub { sprintf("%.2f", $_[0]) });
print "n=", scalar @polygons, "\n";

for(my $i = 0 ; $i < @polygons ; $i++) {
#@polys = ( $point_index, [$lat1, $lon1], [$lat2, $lon2], ... );
	my $p = $polygons[$i];
	my $idx = $p->[0];
	print "i=$i: idx=$idx\n";
	for(my $j = 1 ; $j < @$p ; $j++) {
		my $lat = $p->[$j][0];
		my $lon = $p->[$j][0];
		print "  j=$j: ($lat, $lon)\n";
	}
}
