GRASS GIS 7 Programmer's Manual  7.5.svn(2018)-r72095
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
gis/distance.c File Reference

GIS Library - Distance calculation functions. More...

#include <math.h>
#include <grass/gis.h>
#include <grass/glocale.h>
Include dependency graph for gis/distance.c:

Go to the source code of this file.


int G_begin_distance_calculations (void)
 Begin distance calculations. More...
double G_distance (double e1, double n1, double e2, double n2)
 Returns distance in meters. More...
double G_distance_between_line_segments (double ax1, double ay1, double ax2, double ay2, double bx1, double by1, double bx2, double by2)
 Returns distance between two line segments in meters. More...
double G_distance_point_to_line_segment (double xp, double yp, double x1, double y1, double x2, double y2)
 Returns distance between a point and line segment in meters. More...

Detailed Description

GIS Library - Distance calculation functions.

WARNING: this code is preliminary and may be changed, including calling sequences to any of the functions defined here.

(C) 2001-2009, 2011 by the GRASS Development Team

This program is free software under the GNU General Public License (>=v2). Read the file COPYING that comes with GRASS for details.

Original author CERL

Definition in file gis/distance.c.

Function Documentation

int G_begin_distance_calculations ( void  )

Begin distance calculations.

Initializes the distance calculations. It is used both for the planimetric and latitude-longitude projections.

0 if projection has no metrix (ie. imagery)
1 if projection is planimetric
2 if projection is latitude-longitude

Definition at line 42 of file gis/distance.c.

References G_begin_geodesic_distance(), G_database_units_to_meters_factor(), G_get_ellipsoid_parameters(), G_projection(), and PROJECTION_LL.

Referenced by Gs_distance(), Vect_line_geodesic_distance(), and Vect_line_geodesic_length().

double G_distance ( double  e1,
double  n1,
double  e2,
double  n2 

Returns distance in meters.

This routine computes the distance, in meters, from x1,y1 to x2,y2. If the projection is latitude-longitude, this distance is measured along the geodesic. Two routines perform geodesic distance calculations.

e1,n1east-north coordinates of first point
e2,n2east-north coordinates of second point

Definition at line 75 of file gis/distance.c.

References G_geodesic_distance(), and PROJECTION_LL.

Referenced by G_distance_point_to_line_segment(), Gs_distance(), and Vect_line_geodesic_distance().

double G_distance_between_line_segments ( double  ax1,
double  ay1,
double  ax2,
double  ay2,
double  bx1,
double  by1,
double  bx2,
double  by2 

Returns distance between two line segments in meters.

ax1,ay1,ax2,ay2first segment
bx1,by1,bx2,by2second segment
distance value

Definition at line 91 of file gis/distance.c.

References G_distance_point_to_line_segment(), G_intersect_line_segments(), and x.

double G_distance_point_to_line_segment ( double  xp,
double  yp,
double  x1,
double  y1,
double  x2,
double  y2 

Returns distance between a point and line segment in meters.

xp,yppoint coordinates
x1,y1segment point coordinates
x2,y2segment point coordinates

Definition at line 120 of file gis/distance.c.

References _, G_distance(), G_intersect_line_segments(), G_warning(), t, and x.

Referenced by G_distance_between_line_segments().