=head1 NAME Geo::Surface - A surface description. =head1 INHERITANCE Geo::Surface is a Geo::Shape =head1 SYNOPSIS my $island = Geo::Surface->new($outer, $lake1, $lake2); =head1 DESCRIPTION In this context, a "surface" is defined as one filled area with possible enclosures in one projection system. =head1 METHODS =head2 Constructors =over 4 =item Geo::Surface-EB((SURFACE|(OUTER,INNER,...)), [OPTIONS]) When called as instance method, some defaults are copied from the object where the call is made upon. You may either provide a L SURFACE, or a LIST of lines. In the latter case, the first line is the OUTER polygon of the surface, and the other are all INNER enclosures: lakes. Lines are and L, L objects, or ARRAY of points. If no projection is specified, then the projection of the first Geo-encoded line will be used. -Option--Defined in--Default proj Geo::Shape see Geo::Proj::defaultProjection() =over 2 =item proj => LABEL =back =back =head2 Attributes =over 4 =item $obj-EB() Returns a LIST of enclosed polygons, converted to L objects. =item $obj-EB() Returns the outer polygon as L object. =item $obj-EB() Returns a LIST of enclosed L objects. =item $obj-EB() Returns the outer L. =item $obj-EB() See L =item $obj-EB() See L =back =head2 Projections =over 4 =item $obj-EB(LABEL|'utm') See L =item $obj-EB(NICK, POINTS) See L =back =head2 Geometry =over 4 =item $obj-EB() Returns the area enclosed by the outer polygon, minus the erea of the enclosures. Only useful when the points are in some orthogonal projection. =item $obj-EB() The bounding box of outer surface polygon. =item $obj-EB() See L =item $obj-EB([XMIN, YMIN, XMAX, YMAX, [PROJ]]) =item Geo::Surface-EB([XMIN, YMIN, XMAX, YMAX, [PROJ]]) See L =item $obj-EB(OBJECT, [UNIT]) See L =item $obj-EB() The length of the outer polygon. Only useful in a orthogonal coordinate systems. =back =head2 Display =over 4 =item $obj-EB(DEGREES, POS, NEG) =item Geo::Surface-EB(DEGREES, POS, NEG) See L =item $obj-EB(DEGREES, POS, NEG) =item Geo::Surface-EB(DEGREES, POS, NEG) See L =item $obj-EB(DMS) =item Geo::Surface-EB(DMS) See L =item $obj-EB([PROJECTION]) Returns a string representation of the line, which is also used for stringification. =back =head1 OVERLOAD =over 4 =item overload: B<'""' (stringification)>() See L =item overload: B<'bool' (truth value)>() See L =back =head1 DIAGNOSTICS =over 4 =item Warning: Geo::Line is should be filled When L objects are used to compose a surface, each of them must be filled. Representation of rivers and such do not belong in a surface description. =item Error: distance calculation not implemented between a $kind and a $kind Only a subset of all objects can be used in the distance calculation. The limitation is purely caused by lack of time to implement this. =item Error: in() not implemented for a $class =item Error: not known what to do with $component =back =head1 SEE ALSO This module is part of Geo-Point distribution version 0.94, built on December 21, 2012. Website: F All modules in this suite: L, L, L, L, L, L, L, L, and L. Please post questions or ideas to the mailinglist at F =head1 LICENSE Copyrights 2005-2012 by [Mark Overmeer]. For other contributors see ChangeLog. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See F