Geo::Geos::Algorithm::MinimumDiameter - Computes the minimum diameter of a Geometry
use Geo::Geos::Coordinate; use Geo::Geos::GeometryFactory; use Geo::Geos::Algorithm::MinimumDiameter qw/getMinimumRectangle/; my $c1 = Geo::Geos::Coordinate->new(1,2); my $c2 = Geo::Geos::Coordinate->new(5,2); my $c3 = Geo::Geos::Coordinate->new(5,0); my $c4 = Geo::Geos::Coordinate->new(1,0); my $gf = Geo::Geos::GeometryFactory::create(); my $lr = $gf->createLinearRing([$c1, $c2, $c3, $c4, $c1], 2); my $md1 = Geo::Geos::Algorithm::MinimumDiameter->new($lr); my $md2 = Geo::Geos::Algorithm::MinimumDiameter->new($lr, 1); $md2->getLength; # => is 2 $md2->getWidthCoordinate; # => is Geo::Geos::Coordinate->new(1,0) my $ls = $gf->createLineString([$c1, $c2], 2); my $ss = $md2->getSupportingSegment; # => isa 'Geo::Geos::Geometry' $ls->equalsExact($ss); # => success my $d = $md2->getDiameter; # => isa 'Geo::Geos::Geometry' $d->toString; # => is 'LINESTRING (1.0000000000000000 2.0000000000000000, 1.0000000000000000 0.0000000000000000)' my $r = $md2->getMinimumRectangle; # => isa 'Geo::Geos::Geometry' $r->toString; # like qr/POLYGON/; getMinimumRectangle($ls); # => isa 'Geo::Geos::Geometry'
GEOS C++ Library
geos::algorithm::MinimumDiameter
Geo::Geos
Geo::Geos::Algorithm
Ivan Baidakou <i.baydakov@crazypanda.ru>, Crazy Panda, CP Decision LTD
You may distribute this code under the same terms as Perl itself.
To install Geo::Geos, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Geo::Geos
CPAN shell
perl -MCPAN -e shell install Geo::Geos
For more information on module installation, please visit the detailed CPAN module installation guide.