.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Geo::Line 3pm" .TH Geo::Line 3pm "2019-02-21" "perl v5.28.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Geo::Line \- a sequence of connected points .SH "INHERITANCE" .IX Header "INHERITANCE" .Vb 2 \& Geo::Line \& is a Geo::Shape \& \& Geo::Line \& is a Math::Polygon .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& my $line = Geo::Line\->new(points => [$p1, $p2]); \& my $line = Geo::Line\->line($p1, $p2); \& \& my $ring = Geo::Line\->ring($p1, $p2, $p3, $p1); \& my $ring = Geo::Line\->ring($p1, $p2, $p3); \& \& my $plane = Geo::Line\->filled($p1, $p2, $p3, $p1); \& my $plane = Geo::Line\->filled($p1, $p2, $p3); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" A 2\-dimensional sequence of connected points. The points will be forced to use the same projection. .PP Extends \*(L"\s-1DESCRIPTION\*(R"\s0 in Math::Polygon. .PP Extends \*(L"\s-1DESCRIPTION\*(R"\s0 in Geo::Shape. .SH "METHODS" .IX Header "METHODS" Extends \*(L"\s-1METHODS\*(R"\s0 in Math::Polygon. .PP Extends \*(L"\s-1METHODS\*(R"\s0 in Geo::Shape. .SS "Constructors" .IX Subsection "Constructors" Extends \*(L"Constructors\*(R" in Math::Polygon. .PP Extends \*(L"Constructors\*(R" in Geo::Shape. .ie n .IP "Geo::Line\->\fBbboxFromString\fR( $string, [$projection] )" 4 .el .IP "Geo::Line\->\fBbboxFromString\fR( \f(CW$string\fR, [$projection] )" 4 .IX Item "Geo::Line->bboxFromString( $string, [$projection] )" Create a square from the \f(CW$string\fR. The coordinates can be separated by a comma (preferably), or blanks. When the coordinates end on \s-1NSEW,\s0 the order does not matter, otherwise lat-long or xy order is presumed. .Sp This routine is very smart. It understands \s-1PROJLABEL:\s0 <4 coordinates in any order, but with \s-1NSEW\s0> ... .Sp example: bbox from string .Sp .Vb 5 \& my $x = \*(Aq5n 2n 3e e12\*(Aq; # coordinates in any order \& my $x = \*(Aq5e , 2n, 3n, e12\*(Aq; # coordinates in any order \& my $x = \*(Aq2.12\-23.1E, N1\-4\*(Aq; # stretches \& my $x = \*(Aqwgs84: 2\-5e, 1\-8n\*(Aq; # starts with projection \& my $x = \*(Aqwgs84: e2d12\*(Aq \-3d, n1, n7d12\*(Aq34"\*(Aq; \& \& my ($xmin, $ymin, $xmax, $ymax, $proj) \& = Geo::Line\->bboxFromString($x); \& \& my $p = Geo::Line\->ringFromString($x); \& \& # When parsing user applications, you probably want: \& my $p = eval { Geo::Line\->bboxFromString($x) }; \& warn $@ if $@; .Ve .ie n .IP "$obj\->\fBfilled\fR($points, %options)" 4 .el .IP "\f(CW$obj\fR\->\fBfilled\fR($points, \f(CW%options\fR)" 4 .IX Item "$obj->filled($points, %options)" .PD 0 .ie n .IP "Geo::Line\->\fBfilled\fR($points, %options)" 4 .el .IP "Geo::Line\->\fBfilled\fR($points, \f(CW%options\fR)" 4 .IX Item "Geo::Line->filled($points, %options)" .PD The \f(CW$points\fR form a \fBring()\fR and the filled is part of the geometrical shape. .ie n .IP "$obj\->\fBline\fR($points, %options)" 4 .el .IP "\f(CW$obj\fR\->\fBline\fR($points, \f(CW%options\fR)" 4 .IX Item "$obj->line($points, %options)" .PD 0 .ie n .IP "Geo::Line\->\fBline\fR($points, %options)" 4 .el .IP "Geo::Line\->\fBline\fR($points, \f(CW%options\fR)" 4 .IX Item "Geo::Line->line($points, %options)" .PD construct a line, which will probably not have the same begin and end point. The \f(CW$points\fR are passed as new(points), and the other \f(CW%options\fR are passed to \fBnew()\fR as well. .ie n .IP "$obj\->\fBnew\fR( [%options] )" 4 .el .IP "\f(CW$obj\fR\->\fBnew\fR( [%options] )" 4 .IX Item "$obj->new( [%options] )" .PD 0 .IP "Geo::Line\->\fBnew\fR( [%options] )" 4 .IX Item "Geo::Line->new( [%options] )" .PD When called as instance method, the projection, ring, and filled attributes are taken from the initiator, like a clone with modification. .Sp .Vb 7 \& \-Option \-\-Defined in \-\-Default \& bbox Math::Polygon undef \& clockwise Math::Polygon undef \& filled \& points \& proj Geo::Shape see Geo::Proj::defaultProjection() \& ring .Ve .RS 4 .ie n .IP "bbox => [$xmin,$ymin, $xmax,$ymax]" 2 .el .IP "bbox => [$xmin,$ymin, \f(CW$xmax\fR,$ymax]" 2 .IX Item "bbox => [$xmin,$ymin, $xmax,$ymax]" .PD 0 .IP "clockwise => \s-1BOOLEAN\s0" 2 .IX Item "clockwise => BOOLEAN" .IP "filled => \s-1BOOLEAN\s0" 2 .IX Item "filled => BOOLEAN" .PD Implies ring. The filled of the ring is included in the geometrical shape. .IP "points => ARRAY\-OF\-POINTS|ARRAY\-OF\-COORDINATES" 2 .IX Item "points => ARRAY-OF-POINTS|ARRAY-OF-COORDINATES" With this option, you can specify either Geo::Point objects, or coordinate pairs which will get transformed into such objects. \s-1WARNING:\s0 in that case, the coordinates must be in xy order. .IP "proj => \s-1LABEL\s0" 2 .IX Item "proj => LABEL" .PD 0 .IP "ring => \s-1BOOLEAN\s0" 2 .IX Item "ring => BOOLEAN" .PD The first point is the last point. When specified, you have to make sure that this is the case. If \fBring()\fR is used to create this object, that routine will check/repair it for you. .RE .RS 4 .Sp example: .Sp .Vb 6 \& my $point = Geo::Point\->xy(1, 2); \& my $line = Geo::Line\->new \& ( points => [$point, [3,4], [5,6], $point] \& , ring => 1 \& ); \& my $clone = $line\->new(filled => 1); .Ve .RE .ie n .IP "$obj\->\fBring\fR($points, %options)" 4 .el .IP "\f(CW$obj\fR\->\fBring\fR($points, \f(CW%options\fR)" 4 .IX Item "$obj->ring($points, %options)" .PD 0 .ie n .IP "Geo::Line\->\fBring\fR($points, %options)" 4 .el .IP "Geo::Line\->\fBring\fR($points, \f(CW%options\fR)" 4 .IX Item "Geo::Line->ring($points, %options)" .PD The first and last point will be made the same: if not yet, than a reference to the first point is appended to the list. A \*(L"ring\*(R" does not cover the internal. .ie n .IP "Geo::Line\->\fBringFromString\fR( $string, [$projection] )" 4 .el .IP "Geo::Line\->\fBringFromString\fR( \f(CW$string\fR, [$projection] )" 4 .IX Item "Geo::Line->ringFromString( $string, [$projection] )" Calls \fBbboxFromString()\fR and then produces a ring object from than. Don't forget the \f(CW\*(C`eval\*(C'\fR when you call this method. .SS "Attributes" .IX Subsection "Attributes" Extends \*(L"Attributes\*(R" in Math::Polygon. .PP Extends \*(L"Attributes\*(R" in Geo::Shape. .ie n .IP "$obj\->\fBgeopoint\fR( $index, [$index, ..] )" 4 .el .IP "\f(CW$obj\fR\->\fBgeopoint\fR( \f(CW$index\fR, [$index, ..] )" 4 .IX Item "$obj->geopoint( $index, [$index, ..] )" Returns the Geo::Point for the point with the specified \f(CW$index\fR or indices. .ie n .IP "$obj\->\fBgeopoints\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBgeopoints\fR()" 4 .IX Item "$obj->geopoints()" In \s-1LIST\s0 context, this returns all points as separate scalars: each is a Geo::Point with projection information. In \s-1SCALAR\s0 context, a reference to the coordinates is returned. .Sp With \fBpoints()\fR, you get arrays with \s-1XY\s0 coordinates returned, but without the projection information. That will be much faster, but not sufficient for some uses. .ie n .IP "$obj\->\fBisFilled\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBisFilled\fR()" 4 .IX Item "$obj->isFilled()" Returns a true value is the internals of the ring of points are declared to belong to the shape. .ie n .IP "$obj\->\fBisRing\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBisRing\fR()" 4 .IX Item "$obj->isRing()" Returns a true value if the sequence of points are a ring or filled: the first point is the last. .ie n .IP "$obj\->\fBnrPoints\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBnrPoints\fR()" 4 .IX Item "$obj->nrPoints()" Inherited, see \*(L"Attributes\*(R" in Math::Polygon .ie n .IP "$obj\->\fBorder\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBorder\fR()" 4 .IX Item "$obj->order()" Inherited, see \*(L"Attributes\*(R" in Math::Polygon .ie n .IP "$obj\->\fBpoint\fR( $index, [$index,...] )" 4 .el .IP "\f(CW$obj\fR\->\fBpoint\fR( \f(CW$index\fR, [$index,...] )" 4 .IX Item "$obj->point( $index, [$index,...] )" Inherited, see \*(L"Attributes\*(R" in Math::Polygon .ie n .IP "$obj\->\fBpoints\fR( [\s-1FORMAT\s0] )" 4 .el .IP "\f(CW$obj\fR\->\fBpoints\fR( [\s-1FORMAT\s0] )" 4 .IX Item "$obj->points( [FORMAT] )" Inherited, see \*(L"Attributes\*(R" in Math::Polygon .ie n .IP "$obj\->\fBproj\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBproj\fR()" 4 .IX Item "$obj->proj()" Inherited, see \*(L"Attributes\*(R" in Geo::Shape .ie n .IP "$obj\->\fBproj4\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBproj4\fR()" 4 .IX Item "$obj->proj4()" Inherited, see \*(L"Attributes\*(R" in Geo::Shape .SS "Projections" .IX Subsection "Projections" Extends \*(L"Projections\*(R" in Geo::Shape. .ie n .IP "$obj\->\fBin\fR( <$label|'utm'> )" 4 .el .IP "\f(CW$obj\fR\->\fBin\fR( <$label|'utm'> )" 4 .IX Item "$obj->in( <$label|'utm'> )" Inherited, see \*(L"Projections\*(R" in Geo::Shape .ie n .IP "$obj\->\fBprojectOn\fR($nick, @points)" 4 .el .IP "\f(CW$obj\fR\->\fBprojectOn\fR($nick, \f(CW@points\fR)" 4 .IX Item "$obj->projectOn($nick, @points)" Inherited, see \*(L"Projections\*(R" in Geo::Shape .SS "Geometry" .IX Subsection "Geometry" Extends \*(L"Geometry\*(R" in Math::Polygon. .PP Extends \*(L"Geometry\*(R" in Geo::Shape. .ie n .IP "$obj\->\fBarea\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBarea\fR()" 4 .IX Item "$obj->area()" Returns the area enclosed by the polygon. Only useful when the points are in some orthogonal projection. .ie n .IP "$obj\->\fBbbox\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBbbox\fR()" 4 .IX Item "$obj->bbox()" The bounding box coordinates. These are more useful for rings than for open line pieces. .ie n .IP "$obj\->\fBbboxCenter\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBbboxCenter\fR()" 4 .IX Item "$obj->bboxCenter()" Inherited, see \*(L"Geometry\*(R" in Geo::Shape .ie n .IP "$obj\->\fBbboxRing\fR( [$xmin, $ymin, $xmax, $ymax, [$proj]] )" 4 .el .IP "\f(CW$obj\fR\->\fBbboxRing\fR( [$xmin, \f(CW$ymin\fR, \f(CW$xmax\fR, \f(CW$ymax\fR, [$proj]] )" 4 .IX Item "$obj->bboxRing( [$xmin, $ymin, $xmax, $ymax, [$proj]] )" .PD 0 .ie n .IP "Geo::Line\->\fBbboxRing\fR( [$xmin, $ymin, $xmax, $ymax, [$proj]] )" 4 .el .IP "Geo::Line\->\fBbboxRing\fR( [$xmin, \f(CW$ymin\fR, \f(CW$xmax\fR, \f(CW$ymax\fR, [$proj]] )" 4 .IX Item "Geo::Line->bboxRing( [$xmin, $ymin, $xmax, $ymax, [$proj]] )" .PD Inherited, see \*(L"Geometry\*(R" in Geo::Shape .ie n .IP "$obj\->\fBbeautify\fR(%options)" 4 .el .IP "\f(CW$obj\fR\->\fBbeautify\fR(%options)" 4 .IX Item "$obj->beautify(%options)" Inherited, see \*(L"Geometry\*(R" in Math::Polygon .ie n .IP "$obj\->\fBcentroid\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBcentroid\fR()" 4 .IX Item "$obj->centroid()" Inherited, see \*(L"Geometry\*(R" in Math::Polygon .ie n .IP "$obj\->\fBclip\fR( <$xmin,$xmax,$ymin,$ymax>|$object )" 4 .el .IP "\f(CW$obj\fR\->\fBclip\fR( <$xmin,$xmax,$ymin,$ymax>|$object )" 4 .IX Item "$obj->clip( <$xmin,$xmax,$ymin,$ymax>|$object )" Clip the shape to the bounding box of \f(CW$object\fR, or the boxing parameters specified. A list of Geo::Line objects is returned if anything is inside the object. .Sp On the moment \fBMath::Polygon::lineClip()\fR and \&\fBMath::Polygon::fillClip1()\fR are used to do the job. In the future, that may change. .ie n .IP "$obj\->\fBclockwise\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBclockwise\fR()" 4 .IX Item "$obj->clockwise()" Inherited, see \*(L"Geometry\*(R" in Math::Polygon .ie n .IP "$obj\->\fBcontains\fR($point)" 4 .el .IP "\f(CW$obj\fR\->\fBcontains\fR($point)" 4 .IX Item "$obj->contains($point)" Inherited, see \*(L"Geometry\*(R" in Math::Polygon .ie n .IP "$obj\->\fBcounterClockwise\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBcounterClockwise\fR()" 4 .IX Item "$obj->counterClockwise()" Inherited, see \*(L"Geometry\*(R" in Math::Polygon .ie n .IP "$obj\->\fBdistance\fR($point)" 4 .el .IP "\f(CW$obj\fR\->\fBdistance\fR($point)" 4 .IX Item "$obj->distance($point)" Inherited, see \*(L"Geometry\*(R" in Math::Polygon .ie n .IP "$obj\->\fBdistance\fR( $object, [$unit] )" 4 .el .IP "\f(CW$obj\fR\->\fBdistance\fR( \f(CW$object\fR, [$unit] )" 4 .IX Item "$obj->distance( $object, [$unit] )" Inherited, see \*(L"Geometry\*(R" in Geo::Shape .ie n .IP "$obj\->\fBequal\fR( <$other | \e@points,[$tolerance]> | $points )" 4 .el .IP "\f(CW$obj\fR\->\fBequal\fR( <$other | \e@points,[$tolerance]> | \f(CW$points\fR )" 4 .IX Item "$obj->equal( <$other | @points,[$tolerance]> | $points )" Inherited, see \*(L"Geometry\*(R" in Math::Polygon .ie n .IP "$obj\->\fBisClockwise\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBisClockwise\fR()" 4 .IX Item "$obj->isClockwise()" Inherited, see \*(L"Geometry\*(R" in Math::Polygon .ie n .IP "$obj\->\fBisClosed\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBisClosed\fR()" 4 .IX Item "$obj->isClosed()" Inherited, see \*(L"Geometry\*(R" in Math::Polygon .ie n .IP "$obj\->\fBlength\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBlength\fR()" 4 .IX Item "$obj->length()" The length of the line, only useful in a orthogonal coordinate system (projection). See also \fBperimeter()\fR. .ie n .IP "$obj\->\fBperimeter\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBperimeter\fR()" 4 .IX Item "$obj->perimeter()" The length of the line on the ring. A check is performed that the ring is closed, but further this returns the result of \fBlength()\fR .ie n .IP "$obj\->\fBsame\fR( <$other_polygon | \e@points, [$tolerance]> | @points )" 4 .el .IP "\f(CW$obj\fR\->\fBsame\fR( <$other_polygon | \e@points, [$tolerance]> | \f(CW@points\fR )" 4 .IX Item "$obj->same( <$other_polygon | @points, [$tolerance]> | @points )" Inherited, see \*(L"Geometry\*(R" in Math::Polygon .ie n .IP "$obj\->\fBstartMinXY\fR()" 4 .el .IP "\f(CW$obj\fR\->\fBstartMinXY\fR()" 4 .IX Item "$obj->startMinXY()" Inherited, see \*(L"Geometry\*(R" in Math::Polygon .SS "Transformations" .IX Subsection "Transformations" Extends \*(L"Transformations\*(R" in Math::Polygon. .ie n .IP "$obj\->\fBgrid\fR(%options)" 4 .el .IP "\f(CW$obj\fR\->\fBgrid\fR(%options)" 4 .IX Item "$obj->grid(%options)" Inherited, see \*(L"Transformations\*(R" in Math::Polygon .ie n .IP "$obj\->\fBmirror\fR(%options)" 4 .el .IP "\f(CW$obj\fR\->\fBmirror\fR(%options)" 4 .IX Item "$obj->mirror(%options)" Inherited, see \*(L"Transformations\*(R" in Math::Polygon .ie n .IP "$obj\->\fBmove\fR(%options)" 4 .el .IP "\f(CW$obj\fR\->\fBmove\fR(%options)" 4 .IX Item "$obj->move(%options)" Inherited, see \*(L"Transformations\*(R" in Math::Polygon .ie n .IP "$obj\->\fBresize\fR(%options)" 4 .el .IP "\f(CW$obj\fR\->\fBresize\fR(%options)" 4 .IX Item "$obj->resize(%options)" Inherited, see \*(L"Transformations\*(R" in Math::Polygon .ie n .IP "$obj\->\fBrotate\fR(%options)" 4 .el .IP "\f(CW$obj\fR\->\fBrotate\fR(%options)" 4 .IX Item "$obj->rotate(%options)" Inherited, see \*(L"Transformations\*(R" in Math::Polygon .ie n .IP "$obj\->\fBsimplify\fR(%options)" 4 .el .IP "\f(CW$obj\fR\->\fBsimplify\fR(%options)" 4 .IX Item "$obj->simplify(%options)" Inherited, see \*(L"Transformations\*(R" in Math::Polygon .SS "Clipping" .IX Subsection "Clipping" Extends \*(L"Clipping\*(R" in Math::Polygon. .ie n .IP "$obj\->\fBfillClip1\fR($box)" 4 .el .IP "\f(CW$obj\fR\->\fBfillClip1\fR($box)" 4 .IX Item "$obj->fillClip1($box)" Inherited, see \*(L"Clipping\*(R" in Math::Polygon .ie n .IP "$obj\->\fBlineClip\fR($box)" 4 .el .IP "\f(CW$obj\fR\->\fBlineClip\fR($box)" 4 .IX Item "$obj->lineClip($box)" Inherited, see \*(L"Clipping\*(R" in Math::Polygon .SS "Display" .IX Subsection "Display" Extends \*(L"Display\*(R" in Math::Polygon. .PP Extends \*(L"Display\*(R" in Geo::Shape. .ie n .IP "$obj\->\fBdeg2dm\fR($degrees, $pos, $neg)" 4 .el .IP "\f(CW$obj\fR\->\fBdeg2dm\fR($degrees, \f(CW$pos\fR, \f(CW$neg\fR)" 4 .IX Item "$obj->deg2dm($degrees, $pos, $neg)" .PD 0 .ie n .IP "Geo::Line\->\fBdeg2dm\fR($degrees, $pos, $neg)" 4 .el .IP "Geo::Line\->\fBdeg2dm\fR($degrees, \f(CW$pos\fR, \f(CW$neg\fR)" 4 .IX Item "Geo::Line->deg2dm($degrees, $pos, $neg)" .PD Inherited, see \*(L"Display\*(R" in Geo::Shape .ie n .IP "$obj\->\fBdeg2dms\fR($degrees, $pos, $neg)" 4 .el .IP "\f(CW$obj\fR\->\fBdeg2dms\fR($degrees, \f(CW$pos\fR, \f(CW$neg\fR)" 4 .IX Item "$obj->deg2dms($degrees, $pos, $neg)" .PD 0 .ie n .IP "Geo::Line\->\fBdeg2dms\fR($degrees, $pos, $neg)" 4 .el .IP "Geo::Line\->\fBdeg2dms\fR($degrees, \f(CW$pos\fR, \f(CW$neg\fR)" 4 .IX Item "Geo::Line->deg2dms($degrees, $pos, $neg)" .PD Inherited, see \*(L"Display\*(R" in Geo::Shape .ie n .IP "$obj\->\fBdms2deg\fR($dms)" 4 .el .IP "\f(CW$obj\fR\->\fBdms2deg\fR($dms)" 4 .IX Item "$obj->dms2deg($dms)" .PD 0 .IP "Geo::Line\->\fBdms2deg\fR($dms)" 4 .IX Item "Geo::Line->dms2deg($dms)" .PD Inherited, see \*(L"Display\*(R" in Geo::Shape .ie n .IP "$obj\->\fBstring\fR( [\s-1FORMAT\s0] )" 4 .el .IP "\f(CW$obj\fR\->\fBstring\fR( [\s-1FORMAT\s0] )" 4 .IX Item "$obj->string( [FORMAT] )" Inherited, see \*(L"Display\*(R" in Math::Polygon .ie n .IP "$obj\->\fBtoString\fR( [$projection] )" 4 .el .IP "\f(CW$obj\fR\->\fBtoString\fR( [$projection] )" 4 .IX Item "$obj->toString( [$projection] )" Returns a string representation of the line, which is also used for stringification. The old method named \f(CW\*(C`string\*(C'\fR is deprecated. .SH "OVERLOAD" .IX Header "OVERLOAD" Extends \*(L"\s-1OVERLOAD\*(R"\s0 in Geo::Shape. .ie n .IP "overload: \fB'""""' (stringification)\fR" 4 .el .IP "overload: \fB'``''' (stringification)\fR" 4 .IX Item "overload: '""""' (stringification)" Inherited, see \*(L"\s-1OVERLOAD\*(R"\s0 in Geo::Shape .IP "overload: \fB'bool' (truth value)\fR" 4 .IX Item "overload: 'bool' (truth value)" Inherited, see \*(L"\s-1OVERLOAD\*(R"\s0 in Geo::Shape .SH "DIAGNOSTICS" .IX Header "DIAGNOSTICS" .IP "Error: area requires a ring of points" 4 .IX Item "Error: area requires a ring of points" If you think you have a ring of points (a polygon), than do specify that when that object is instantiated (\fBring()\fR or new(ring)). .ie n .IP "Error: distance calculation not implemented between a $kind and a $kind" 4 .el .IP "Error: distance calculation not implemented between a \f(CW$kind\fR and a \f(CW$kind\fR" 4 .IX 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. .ie n .IP "Error: \fBin()\fR not implemented for a $class" 4 .el .IP "Error: \fBin()\fR not implemented for a \f(CW$class\fR" 4 .IX Item "Error: in() not implemented for a $class" .PD 0 .IP "Error: perimeter requires a ring of points" 4 .IX Item "Error: perimeter requires a ring of points" .PD .SH "SEE ALSO" .IX Header "SEE ALSO" This module is part of Geo-Point distribution version 0.98, built on February 01, 2019. Website: \fIhttp://perl.overmeer.net/CPAN/\fR .SH "LICENSE" .IX Header "LICENSE" Copyrights 2005\-2019 by [Mark Overmeer]. For other contributors see ChangeLog. .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See \fIhttp://dev.perl.org/licenses/\fR