NAME
Geo::Geos::GeometryFactory - Supplies a set of utility methods for building Geometry objects.
SYNOPSIS
# constructors
my
$gf1
= create();
# => isa 'Geo::Geos::GeometryFactory'
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.