NAME
Geo::Geos::GeometryFactory - Supplies a set of utility methods for building Geometry objects.
SYNOPSIS
use Geo::Geos::GeometryFactory qw/create/;
# constructors
my $gf1 = create(); # => isa 'Geo::Geos::GeometryFactory'
use Geo::Geos::PrecisionModel;
my $pm = Geo::Geos::PrecisionModel->new(TYPE_FLOATING_SINGLE);
my $gf2 = Geo::Geos::GeometryFactory::create($pm); # => isa 'Geo::Geos::GeometryFactory'
$gf2->getPrecisionModel; # => isa 'Geo::Geos::PrecisionModel'
my $srid = 3857;
my $gf3 = Geo::Geos::GeometryFactory::create($pm, 3857); # => isa 'Geo::Geos::GeometryFactory'
$gf3->getSRID; # => 3857
use Geo::Geos::Envelope;
my $gf = Geo::Geos::GeometryFactory::create;
$gf->toGeometry(Geo::Geos::Envelope->new(1, 2, 3, 4)); # => isa 'Geo::Geos::Geometry'
# geometry constructors
$gf->createEmptyGeometry; # => isa 'Geo::Geos::Geometry'
$gf->createGeometryCollection; # => isa 'Geo::Geos::GeometryCollection'
my $c = Geo::Geos::Coordinate->new(1,2);
$gf->createPoint; # => isa 'Geo::Geos::Point'
$gf->createPoint($c); # => isa 'Geo::Geos::Point'
$gf->createPoint([$c], 2); # => isa 'Geo::Geos::Point'
my $c1 = Geo::Geos::Coordinate->new(1,2);
my $c2 = Geo::Geos::Coordinate->new(5,2);
$gf->createMultiPoint; # => isa 'Geo::Geos::MultiPoint'
$gf->createMultiPoint([$c1, $c2], 2); # => isa 'Geo::Geos::MultiPoint'
$gf->createLineString; # => isa 'Geo::Geos::LineString'
$gf->createLineString([$c1, $c2], 2); # => isa 'Geo::Geos::LineString'
my $c11 = Geo::Geos::Coordinate->new(1,2);
my $c12 = Geo::Geos::Coordinate->new(5,2);
my $c21 = Geo::Geos::Coordinate->new(10,2);
my $c22 = Geo::Geos::Coordinate->new(15,2);
my $l1 = $gf->createLineString([$c11, $c21], 2);
my $l2 = $gf->createLineString([$c21, $c22], 2);
$gf->createMultiLineString; # => isa 'Geo::Geos::MultiLineString'
$gf->createMultiLineString([$l1, $l2]); # => isa 'Geo::Geos::MultiLineString'
my $cr1 = Geo::Geos::Coordinate->new(1,2);
my $cr2 = Geo::Geos::Coordinate->new(5,2);
my $cr3 = Geo::Geos::Coordinate->new(5,0);
my $cr4 = Geo::Geos::Coordinate->new(1,0);
$gf->createLinearRing; # => isa 'Geo::Geos::LinearRing'
$gf->createLinearRing([$cr1, $cr2, $cr3, $cr4, $cr1], 2); # => isa 'Geo::Geos::LinearRing'
my $lr = $gf->createLinearRing([$cr1, $cr2, $cr3, $cr4, $cr1], 2);
$gf->createPolygon; # => isa 'Geo::Geos::Polygon'
$gf->createPolygon($lr); # => isa 'Geo::Geos::Polygon'
my $cr2_1 = Geo::Geos::Coordinate->new(10,2);
my $cr2_2 = Geo::Geos::Coordinate->new(15,2);
my $cr2_3 = Geo::Geos::Coordinate->new(15,0);
my $cr2_4 = Geo::Geos::Coordinate->new(10,0);
my $lr2 = $gf->createLinearRing([$cr2_1, $cr2_2, $cr2_3, $cr2_4, $cr2_1], 2);
my $p1 = $gf->createPolygon($lr);
my $p2 = $gf->createPolygon($lr2);
$gf->createMultiPolygon; # => isa 'Geo::Geos::MultiPolygon'
$gf->createMultiPolygon([$p1, $p2]); # => isa 'Geo::Geos::MultiPolygon'
SEE ALSO (C++ classes docs)
geos::geom::GeometryFactory
SEE ALSO
Geo::Geos::Prep::GeometryFactory
AUTHOR
Ivan Baidakou <i.baydakov@crazypanda.ru>, Crazy Panda, CP Decision LTD
LICENSE
You may distribute this code under the same terms as Perl itself.