Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Geo::Line(3)	      User Contributed Perl Documentation	  Geo::Line(3)

NAME
       Geo::Line - a sequence of connected points

INHERITANCE
	Geo::Line
	  is a Geo::Shape

	Geo::Line
	  is a Math::Polygon

SYNOPSIS
	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);

DESCRIPTION
       A 2-dimensional sequence	of connected points.  The points will be
       forced to use the same projection.

       Extends "DESCRIPTION" in	Math::Polygon.

       Extends "DESCRIPTION" in	Geo::Shape.

METHODS
       Extends "METHODS" in Math::Polygon.

       Extends "METHODS" in Geo::Shape.

   Constructors
       Extends "Constructors" in Math::Polygon.

       Extends "Constructors" in Geo::Shape.

       Geo::Line->bboxFromString($string, [$projection])
	   Create a square from	the $string.  The coordinates can be separated
	   by a	comma (preferrably), or	blanks.	 When the coordinates end on
	   NSEW, the order does	not matter, otherwise lat-long or xy order is
	   presumed.

	   This	routine	is very	smart.	It understands
	    PROJLABEL: <4 coordinates in any order, but	with NSEW>
	    ...

	   example: bbox from string

	    my $x = '5n	2n 3e e12';	  # coordinates	in any order
	    my $x = '5e	, 2n, 3n, e12';	  # coordinates	in any order
	    my $x = '2.12-23.1E, N1-4';	  # stretches
	    my $x = 'wgs84: 2-5e, 1-8n';  # starts with	projection
	    my $x = 'wgs84: e2d12' -3d,	n1, n7d12'34"';

	    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 $@;

       $obj->filled($points, %options)
       Geo::Line->filled($points, %options)
	   The $points form a ring() and the filled is part of the geometrical
	   shape.

       $obj->line($points, %options)
       Geo::Line->line($points,	%options)
	   construct a line, which will	probably not have the same begin and
	   end point.  The $points are passed as new(points), and the other
	   %options are	passed to new()	as well.

       $obj->new([%options])
       Geo::Line->new([%options])
	   When	called as instance method, the projection, ring, and filled
	   attributes are taken	from the initiator, like a clone with
	   modification.

	    -Option   --Defined	in     --Default
	     bbox	Math::Polygon	 undef
	     clockwise	Math::Polygon	 undef
	     filled			 <false>
	     points			 <data>
	     proj	Geo::Shape	 see Geo::Proj::defaultProjection()
	     ring			 <false>

	   bbox	=> ARRAY
	   clockwise =>	BOOLEAN
	   filled => BOOLEAN
	     Implies ring.  The	filled of the ring is included in the
	     geometrical shape.

	   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.
	     WARNING: in that case, the	coordinates must be in xy order.

	   proj	=> LABEL
	   ring	=> BOOLEAN
	     The first point is	the last point.	 When specified, you have to
	     make sure that this is the	case.  If ring() is used to create
	     this object, that routine will check/repair it for	you.

	   example:

	    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);

       $obj->ring($points, %options)
       Geo::Line->ring($points,	%options)
	   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 "ring"
	   does	not cover the internal.

       Geo::Line->ringFromString($string, [$projection])
	   Calls bboxFromString() and then produces a ring object from than.
	   Don't forget	the "eval" when	you call this method.

   Attributes
       Extends "Attributes" in Math::Polygon.

       Extends "Attributes" in Geo::Shape.

       $obj->geopoint($index, [$index, ..])
	   Returns the Geo::Point for the point	with the specified $index or
	   indices.

       $obj->geopoints()
	   In LIST context, this returns all points as separate	scalars: each
	   is a	Geo::Point with	projection information.	 In SCALAR context, a
	   reference to	the coordinates	is returned.

	   With	points(), you get arrays with XY coordinates returned, but
	   without the projection information.	That will be much faster, but
	   not sufficient for some uses.

       $obj->isFilled()
	   Returns a true value	is the internals of the	ring of	points are
	   declared to belong to the shape.

       $obj->isRing()
	   Returns a true value	if the sequence	of points are a	ring or
	   filled: the first point is the last.

       $obj->nrPoints()
	   Inherited, see "Attributes" in Math::Polygon

       $obj->order()
	   Inherited, see "Attributes" in Math::Polygon

       $obj->point($index, [$index,...])
	   Inherited, see "Attributes" in Math::Polygon

       $obj->points()
	   Inherited, see "Attributes" in Math::Polygon

       $obj->proj()
	   Inherited, see "Attributes" in Geo::Shape

       $obj->proj4()
	   Inherited, see "Attributes" in Geo::Shape

   Projections
       Extends "Projections" in	Geo::Shape.

       $obj->in(<$label|'utm'>)
	   Inherited, see "Projections"	in Geo::Shape

       $obj->projectOn($nick, @points)
	   Inherited, see "Projections"	in Geo::Shape

   Geometry
       Extends "Geometry" in Math::Polygon.

       Extends "Geometry" in Geo::Shape.

       $obj->area()
	   Returns the area enclosed by	the polygon.  Only useful when the
	   points are in some orthogonal projection.

       $obj->bbox()
	   The bounding	box coordinates.  These	are more useful	for rings than
	   for open line pieces.

       $obj->bboxCenter()
	   Inherited, see "Geometry" in	Geo::Shape

       $obj->bboxRing([$xmin, $ymin, $xmax, $ymax, [$proj]])
       Geo::Line->bboxRing([$xmin, $ymin, $xmax, $ymax,	[$proj]])
	   Inherited, see "Geometry" in	Geo::Shape

       $obj->beautify(%options)
	   Inherited, see "Geometry" in	Math::Polygon

       $obj->centroid()
	   Inherited, see "Geometry" in	Math::Polygon

       $obj->clip(<$xmin,$xmax,$ymin,$ymax>|$object)
	   Clip	the shape to the bounding box of $object, or the boxing
	   parameters specified.  A list of Geo::Line objects is returned if
	   anything is inside the object.

	   On the moment Math::Polygon::lineClip() and
	   Math::Polygon::fillClip1() are used to do the job.  In the future,
	   that	may change.

       $obj->clockwise()
	   Inherited, see "Geometry" in	Math::Polygon

       $obj->contains($point)
	   Inherited, see "Geometry" in	Math::Polygon

       $obj->counterClockwise()
	   Inherited, see "Geometry" in	Math::Polygon

       $obj->distance($object, [$unit])
	   Inherited, see "Geometry" in	Geo::Shape

       $obj->equal(<$other | ARRAY,[$tolerance]> | $points)
	   Inherited, see "Geometry" in	Math::Polygon

       $obj->isClockwise()
	   Inherited, see "Geometry" in	Math::Polygon

       $obj->isClosed()
	   Inherited, see "Geometry" in	Math::Polygon

       $obj->length()
	   The length of the line, only	useful in a orthogonal coordinate
	   system (projection).	 See also perimeter().

       $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 length()

       $obj->same(<$other | ARRAY,[$tolerance]>	| $points)
	   Inherited, see "Geometry" in	Math::Polygon

       $obj->startMinXY()
	   Inherited, see "Geometry" in	Math::Polygon

   Transformations
       Extends "Transformations" in Math::Polygon.

       $obj->grid(%options)
	   Inherited, see "Transformations" in Math::Polygon

       $obj->mirror(%options)
	   Inherited, see "Transformations" in Math::Polygon

       $obj->move(%options)
	   Inherited, see "Transformations" in Math::Polygon

       $obj->resize(%options)
	   Inherited, see "Transformations" in Math::Polygon

       $obj->rotate(%options)
	   Inherited, see "Transformations" in Math::Polygon

       $obj->simplify(%options)
	   Inherited, see "Transformations" in Math::Polygon

   Clipping
       Extends "Clipping" in Math::Polygon.

       $obj->fillClip1($box)
	   Inherited, see "Clipping" in	Math::Polygon

       $obj->lineClip($box)
	   Inherited, see "Clipping" in	Math::Polygon

   Display
       Extends "Display" in Math::Polygon.

       Extends "Display" in Geo::Shape.

       $obj->deg2dm($degrees, $pos, $neg)
       Geo::Line->deg2dm($degrees, $pos, $neg)
	   Inherited, see "Display" in Geo::Shape

       $obj->deg2dms($degrees, $pos, $neg)
       Geo::Line->deg2dms($degrees, $pos, $neg)
	   Inherited, see "Display" in Geo::Shape

       $obj->dms2deg($dms)
       Geo::Line->dms2deg($dms)
	   Inherited, see "Display" in Geo::Shape

       $obj->string()
	   Inherited, see "Display" in Math::Polygon

       $obj->toString([$projection])
	   Returns a string representation of the line,	which is also used for
	   stringification.  The old method named "string" is deprecated.

OVERLOAD
       Extends "OVERLOAD" in Geo::Shape.

       overload: '""' (stringification)
	   Inherited, see "OVERLOAD" in	Geo::Shape

       overload: 'bool'	(truth value)
	   Inherited, see "OVERLOAD" in	Geo::Shape

DIAGNOSTICS
       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 (ring() or new(ring)).

       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.

       Error: in() not implemented for a $class
       Error: perimeter	requires a ring	of points

SEE ALSO
       This module is part of Geo-Point	distribution version 0.96, built on
       January 21, 2014. Website: http://perl.overmeer.net/geo/	All modules in
       this suite: "Geo::Point", "Geo::Proj4", "Geo::WKT", "Math::Polygon",
       "Geo::GML", "Geo::ISO19139", "Geo::EOP",	"Geo::Format::Envisat",	and
       "Geo::Format::Landsat".

       Please post questions or	ideas to the mailinglist at
       http://geo-perl@list.hut.fi

LICENSE
       Copyrights 2005-2014 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
       http://www.perl.com/perl/misc/Artistic.html

perl v5.24.1			  2014-01-21			  Geo::Line(3)

NAME | INHERITANCE | SYNOPSIS | DESCRIPTION | METHODS | OVERLOAD | DIAGNOSTICS | SEE ALSO | LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Geo::Line&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help