NAME

Geo::Geos::Noding::Noder - Computes all intersections between segments in a set of SegmentString.

SYNOPSIS

    use Geo::Geos::Algorithm::LineIntersector;
    use Geo::Geos::Coordinate;
    use Geo::Geos::PrecisionModel;
    use Geo::Geos::Noding::IntersectionAdder;
    use Geo::Geos::Noding::IteratedNoder;
    use Geo::Geos::Noding::NodedSegmentString;
    use Geo::Geos::Noding::ScaledNoder;
    use Geo::Geos::Noding::SimpleSnapRounder;


    my $c1 = Geo::Geos::Coordinate->new(0,1);
    my $c2 = Geo::Geos::Coordinate->new(2,1);
    my $c3 = Geo::Geos::Coordinate->new(1,0);
    my $c4 = Geo::Geos::Coordinate->new(1,2);
    my $pm = Geo::Geos::PrecisionModel->new(2.0);

    my $ss1 = Geo::Geos::Noding::NodedSegmentString->new([$c1, $c2]);
    my $ss2 = Geo::Geos::Noding::NodedSegmentString->new([$c3, $c4]);

    my $li = Geo::Geos::Algorithm::LineIntersector->new($pm);
    my $ia = Geo::Geos::Noding::IntersectionAdder->new($li);

    my $n = Geo::Geos::Noding::IteratedNoder->new($pm);  # => isa 'Geo::Geos::Noding::Noder'
    Geo::Geos::Noding::ScaledNoder->new($n, 5, 0, 0);    # => isa 'Geo::Geos::Noding::Noder'
    Geo::Geos::Noding::SimpleNoder->new($ia);            # => isa 'Geo::Geos::Noding::Noder'
    Geo::Geos::Noding::SimpleSnapRounder->new($pm);      # => isa 'Geo::Geos::Noding::Noder'

    $n->computeNodes([$ss1, $ss2]);
    my $substr = $n->getNodedSubstrings->[0];       # => isa 'Geo::Geos::Noding::SegmentString';

SEE ALSO (C++ classes docs)

GEOS C++ Library

geos::noding::Noder

SEE ALSO

Geo::Geos

Geo::Geos::Noding::IteratedNoder

Geo::Geos::Noding::SegmentString

Geo::Geos::Noding::ScaledNoder

Geo::Geos::Noding::SimpleNoder

Geo::Geos::Noding::SimpleSnapRounder

Geo::Geos::Noding::SinglePassNoder

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.