PostGIS  2.3.8dev-r@@SVN_REVISION@@

◆ ptarray_length_2d()

double ptarray_length_2d ( const POINTARRAY pts)

Find the 2d length of the given POINTARRAY (even if it's 3d)

Definition at line 1652 of file ptarray.c.

References getPoint2d_cp(), POINTARRAY::npoints, POINT2D::x, and POINT2D::y.

Referenced by LWGEOM_line_interpolate_point(), LWGEOM_line_substring(), lwline_length_2d(), lwline_measured_from_lwline(), lwmline_measured_from_lwmline(), lwpoly_perimeter_2d(), lwtriangle_perimeter_2d(), ptarray_length(), ptarray_locate_point(), and ptarray_substring().

1653 {
1654  double dist = 0.0;
1655  int i;
1656  const POINT2D *frm;
1657  const POINT2D *to;
1658 
1659  if ( pts->npoints < 2 ) return 0.0;
1660 
1661  frm = getPoint2d_cp(pts, 0);
1662 
1663  for ( i=1; i < pts->npoints; i++ )
1664  {
1665  to = getPoint2d_cp(pts, i);
1666 
1667  dist += sqrt( ((frm->x - to->x)*(frm->x - to->x)) +
1668  ((frm->y - to->y)*(frm->y - to->y)) );
1669 
1670  frm = to;
1671  }
1672  return dist;
1673 }
int npoints
Definition: liblwgeom.h:370
double x
Definition: liblwgeom.h:327
const POINT2D * getPoint2d_cp(const POINTARRAY *pa, int n)
Returns a POINT2D pointer into the POINTARRAY serialized_ptlist, suitable for reading from...
Definition: lwgeom_api.c:485
double y
Definition: liblwgeom.h:327
Here is the call graph for this function:
Here is the caller graph for this function: