Loading...
Searching...
No Matches
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.

## Functions

int | G_begin_distance_calculations (void)
| Begin distance calculations.
double | G_distance (double e1, double n1, double e2, double n2)
| Returns distance in meters.
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.
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.

## 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.

Author
  Original author CERL

Definition in file gis/distance.c.

## Function Documentation

## G_begin_distance_calculations()

int G_begin_distance_calculations | ( | void |  | ) |

Begin distance calculations.

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

Returns
  0 if projection has no metrics (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(), and G_projection().

Referenced by Gs_distance().

## G_distance()

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.

Parameters

  [in] | e1,n1 | east-north coordinates of first point
  [in] | e2,n2 | east-north coordinates of second point

Returns
  distance

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

References G_geodesic_distance().

Referenced by G_distance_point_to_line_segment(), and Gs_distance().

## G_distance_between_line_segments()

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.

Parameters

  ax1,ay1,ax2,ay2 | first segment
  bx1,by1,bx2,by2 | second segment

Returns
  distance value

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

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

## G_distance_point_to_line_segment()

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.

Parameters

  xp,yp | point coordinates
  x1,y1 | segment point coordinates
  x2,y2 | segment point coordinates

Returns
  distance

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

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

Referenced by G_distance_between_line_segments().