PostGIS  2.2.7dev-r@@SVN_REVISION@@

◆ lw_dist2d_pt_ptarray()

int lw_dist2d_pt_ptarray ( const POINT2D p,

search all the segments of pointarray to see which one is closest to p1 Returns minimum distance between point and pointarray

Definition at line 1035 of file measures.c.

References DIST_MIN, DISTPTS::distance, getPoint2d_cp(), lw_dist2d_pt_pt(), lw_dist2d_pt_seg(), LW_FALSE, LW_TRUE, LWDEBUG, DISTPTS::mode, POINTARRAY::npoints, DISTPTS::tolerance, and DISTPTS::twisted.

Referenced by lw_dist2d_point_line(), and lw_dist2d_point_poly().

1036 {
1037  int t;
1038  const POINT2D *start, *end;
1039  int twist = dl->twisted;
1041  LWDEBUG(2, "lw_dist2d_pt_ptarray is called");
1043  start = getPoint2d_cp(pa, 0);
1045  if ( !lw_dist2d_pt_pt(p, start, dl) ) return LW_FALSE;
1047  for (t=1; t<pa->npoints; t++)
1048  {
1049  dl->twisted=twist;
1050  end = getPoint2d_cp(pa, t);
1051  if (!lw_dist2d_pt_seg(p, start, end, dl)) return LW_FALSE;
1053  if (dl->distance<=dl->tolerance && dl->mode == DIST_MIN) return LW_TRUE; /*just a check if the answer is already given*/
1054  start = end;
1055  }
1057  return LW_TRUE;
1058 }
int npoints
Definition: liblwgeom.h:355
int mode
Definition: measures.h:27
#define LWDEBUG(level, msg)
Definition: lwgeom_log.h:50
double tolerance
Definition: measures.h:29
#define DIST_MIN
Definition: measures.h:17
#define LW_FALSE
Definition: liblwgeom.h:62
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:472
#define LW_TRUE
Return types for functions with status returns.
Definition: liblwgeom.h:61
int lw_dist2d_pt_seg(const POINT2D *p, const POINT2D *A, const POINT2D *B, DISTPTS *dl)
lw_dist2d_comp from p to line A->B This one is now sending every occation to lw_dist2d_pt_pt Before i...
Definition: measures.c:2189
int twisted
Definition: measures.h:28
double distance
Definition: measures.h:24
int lw_dist2d_pt_pt(const POINT2D *thep1, const POINT2D *thep2, DISTPTS *dl)
Compares incomming points and stores the points closest to each other or most far away from each othe...
Definition: measures.c:2265
Here is the call graph for this function:
Here is the caller graph for this function: