Boost::Geometry::Utils - Bindings for the Boost Geometry library
use Boost::Geometry::Utils qw(polygon linestring polygon_linestring_intersection); my $square = [ # ccw [10, 10], [20, 10], [20, 20], [10, 20], ]; my $hole_in_square = [ # cw [14, 14], [14, 16], [16, 16], [16, 14], ]; my $polygon = polygon($square, $hole_in_square); my $linestring = linestring([ [5, 15], [30, 15] ]); my $intersection = polygon_linestring_intersection($polygon, $linestring); # $intersection is: # [ # [ [10, 15], [14, 15] ], # [ [16, 15], [20, 15] ], # ]
This module provides bindings to perform some geometric operations using the Boost Geometry library. It does not aim at providing full bindings for such library, and that's why I left the Boost::Geometry namespace free. I'm unsure about the optimal architectural for providing full bindings, but I'm interested in such a project -- so, if you have ideas please get in touch with me.
Warning: the API could change in the future.
Converts one or more arrayref(s) of points to a Boost Geometry polygon structure. Note that a Boost Geometry polygon is actually a polygon with holes.
Converts an arrayref of points to a Boost Geometry linestring.
Converts an arrayref of arrayrefs of points to a Boost Geometry multilinestring.
Performs an intersection between the supplied polygon and linestring, and returns an arrayref of linestrings (represented as arrayrefs of points). Note that such an intersection is also called clipping.
Same as polygon_linestring_intersection but it accepts a multilinestring object to perform multiple clippings in a single batch.
Converts one or more arrayref(s) of points to a WKT representation of a polygon (with holes).
Converts an arrayref of points to a WKT representation of a multilinestring.
Parses a MULTILINESTRING back to a Perl data structure.
Accepts an arrayref of points representing a linestring and a numeric tolerance and returns an arrayref of points representing the simplified linestring.
Accepts a point and an arrayref of points representing a polygon and returns true or false according to the 'cover_by' strategy.
Accepts a point and an arrayref of points representing a polygon and returns true or false according to the 'within' strategy.
Thanks to mauke and mst (Matt S. Trout (cpan:MSTROUT) <firstname.lastname@example.org>) for their valuable help in getting this to compile under Windows (MinGW) too. Thanks to Mark Hindness for his work on data types conversion.
Alessandro Ranellucci <email@example.com>
This software is copyright (c) 2013 by Alessandro Ranellucci.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.