pe_loxodrome_densify_segment

Creates a densified geographic line between two geodetic points along a loxodrome

Usage syntax

int pe_loxodrome_densify_segment (double a, double e2, double lam1, double phi1, double lam2, double phi2, double coord[][2], double interval, int numpts);

Parameters
a Semimajor axis of the spheroid
e2 Eccentricity squared of the spheroid
lam1 Longitude value of the first point
phi1 Latitude value of the first point
lam2 Longitude value of the second point
phi2 Latitude value of the second point
coord[][2] Array that will contain the densified set of points
interval Maximum distance between the new points
numpts Number of points in the coord array
Description

The pe_loxodrome_densify_segment function takes a spheroid and two geodetic points and densifies the segment along a loxodrome. A loxodrome is a line of equal bearing (a straight line in a Mercator projection). Beyond setting the type of line to densify, you can specify how to densify the segment. You can set the distance between the points or the number of points in the line. If you set the interval to less than or equal to zero, the segment will be densified using the value of numpts. The number of points in the coord array will include the two endpoints. To densify the line using a distance, set the interval to a value greater than zero. In this case, the numpts parameter is the maximum number of points that can be in the coord array. If the interval value will create more points than the numpts value, the array will not be filled, and pe_loxodrome_densify_segment returns the negative of the number of points that are required. The last point at lam2, phi2 may be closer than the interval distance to the preceding point.

Set e2 to zero to calculate distances on a sphere. The geodetic coordinates are in radians. The semimajor axis (a) is usually given in meters. The interval is in the same units as the semimajor axis.

Returns

On success, pe_loxodrome_densify_segment returns the number of points in the array of points (in radians). If the parameters are defined such that the coord array is not large enough, the negative number of points required is returned. For example, if coord is allocated for 10 points, but the densified segment needs 12 points, -12 is returned.