Provided by: libproj-dev_4.8.0-2ubuntu2_amd64 bug

NAME

       pj_init - initialize cartographic projection
       pj_init_plus - initialize cartographic projection
       pj_fwd - forward cartographic projection
       pj_inv - inverse cartographic projection
       pj_transform - transform between coordinate systems
       pj_free - de-initialize projection

SYNOPSIS

       #include <proj_api.h>

       projPJ pj_init(int argc, char **argv)

       projPJ pj_init_plus(const char *defn)

       projUV pj_fwd(projUV val, projPJ proj)

       projUV pj_inv(projUV val, projPJ proj)

       int pj_transform(projPJ src_cs, projPJ dst_cs, long point_count,
                        int point_offset, double *x, double *y, double *z)

       void pj_free(projPJ proj)

DESCRIPTION

       Procedure pj_init selects and initializes a cartographic projection with its argument control parameters.
       Argc  is  the number of elements in the array of control strings argv that each contain individual carto‐
       graphic control keyword assignments (+ proj arguments).  The list must contain at least the  proj=projec‐
       tion  and Earth's radius or elliptical parameters.  If the initialization of the projection is successful
       a valid address is returned otherwise a NULL value.

       The pj_init_plus function operates similarly to pj_init but takes a single string containing the  defini‐
       tion, with each parameter prefixed with a plus sign.  For example "+proj=utm +zone=11 +ellps=WGS84".

       Once initialization is performed either forward or inverse projections can be performed with the returned
       value of pj_init used as the argument proj.  The argument structure projUV values u and v contain respec‐
       tive  longitude  and latitude or x and y.  Latitude and longitude are in radians.  If a projection opera‐
       tion fails, both elements of projUV are set to HUGE_VAL (defined in math.h).

       Note: all projections have a forward mode, but some do not have an inverse projection.  If the projection
       does not have an inverse the projPJ structure element inv will be NULL.

       The pj_transform function may be used to transform points between the two  provided  coordinate  systems.
       In  addition  to  converting between cartographic projection coordinates and geographic coordinates, this
       function also takes care of datum shifts if possible between the source and destination  coordinate  sys‐
       tem.   Unlike  pj_fwd  and pj_inv it is also allowable for the coordinate system definitions (PJ *) to be
       geographic coordinate systems (defined as +proj=latlong).  The x, y and z arrays contain the input values
       of the points, and are replaced with the output values.  The point_offset should indicate the spacing the
       of x,y,z arrays, normally 1.  The function returns zero on success, or the error number (also  in  pj_er‐
       rno) on failure.

       Memory associated with the projection may be freed with pj_free.

EXAMPLE

       The  following  program reads latitude and longitude values in decimal degrees, performs Mercator projec‐
       tion with a Clarke 1866 ellipsoid and a 33° latitude of true scale and  prints  the  projected  cartesian
       values in meters:
       #include <proj_api.h>

       main(int argc, char **argv) {
            char *args[] = { "proj=merc", "ellps=clrk66", "lat_ts=33" };
            projUV p;
            projPJ pj;

            if (!(pj = pj_init(3, args)))
               exit(1);
            while (scanf("%lf %lf", &p.v, &p.u) == 2) {
               p.u *= DEG_TO_RAD;
               p.v *= DEG_TO_RAD;
               p = pj_fwd(p, pj);
               printf("%.2f\t%.2f\n", p.u, p.v);
            }
            exit(0);
       }

LIBRARY

       libproj.a - library of projections and support procedures

SEE ALSO

       http://proj.osgeo.org/ProjAPI, proj(1),
       Cartographic  Projection  Procedures  for the UNIX Environment—A User's Manual, (Evenden, 1990, Open-file
       report 90-284).

HOME PAGE

       http://proj.osgeo.org

                                               2001/04/05 Rel. 4.4                                    PJ_INIT(3)