table of contents
Boost::Geometry::Utils(3pm) | User Contributed Perl Documentation | Boost::Geometry::Utils(3pm) |
NAME¶
Boost::Geometry::Utils - Bindings for the Boost Geometry library
VERSION¶
version 0.07
SYNOPSIS¶
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] ], # ]
ABSTRACT¶
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.
METHODS¶
polygon_linestring_intersection¶
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.
polygon_multi_linestring_intersection¶
Same as polygon_linestring_intersection but it accepts a multilinestring object to perform multiple clippings in a single batch.
multi_polygon_multi_linestring_intersection¶
Same as polygon_multi_linestring_intersection but it accepts a multipolygon object to perform multiple clippings in a single batch.
multi_linestring_multi_polygon_difference¶
Performs a difference between the supplied multilinestring and the supplied multipolygon. It returns a multilinestring object.
polygon_to_wkt¶
Converts one or more arrayref(s) of points to a WKT representation of a polygon (with holes).
linestring_to_wkt¶
Converts an arrayref of points to a WKT representation of a multilinestring.
wkt_to_multilinestring¶
Parses a MULTILINESTRING back to a Perl data structure.
linestring_simplify¶
Accepts an arrayref of points representing a linestring and a numeric tolerance and returns an arrayref of points representing the simplified linestring.
multi_linestring_simplify¶
Accepts an arrayref of arrayrefs of points representing a multilinestring and a numeric tolerance and returns an arrayref of arrayrefs of points representing the simplified linestrings.
point_covered_by_polygon¶
Accepts a point and an arrayref of points representing a polygon and returns true or false according to the 'cover_by' strategy.
point_covered_by_multi_polygon¶
Same as above but accepts a multipolygon arrayref.
point_within_polygon¶
Accepts a point and an arrayref of points representing a polygon and returns true or false according to the 'within' strategy.
point_within_multi_polygon¶
Same as above but accepts a multipolygon arrayref.
linestring_length¶
Returns length of a linestring.
polygon_centroid¶
Returns the centroid point of a given polygon.
linestring_centroid¶
Returns the centroid point of a given linestring.
multi_linestring_centroid¶
Returns the centroid point of a given multi_linestring.
correct_polygon¶
Corrects the orientation(s) of the given polygon.
correct_multi_polygon¶
Corrects the orientation(s) of the given multi_polygon.
polygon_area¶
Returns the area of the given polygon.
ACKNOWLEDGEMENTS¶
Thanks to mauke and mst (Matt S. Trout (cpan:MSTROUT) <mst@shadowcat.co.uk>) for their valuable help in getting this to compile under Windows (MinGW) too. Thanks to Mark Hindness for his work on data types conversion.
AUTHOR¶
Alessandro Ranellucci <aar@cpan.org>
COPYRIGHT AND LICENSE¶
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.
2024-01-20 | perl v5.40.0 |