pe_pcsinfo_generate

Returns the pcsinfo for a projected coordinate system.

Usage syntax

PE_PCSINFO pe_pcsinfo_generate (PE_PROJCS projcs);

Parameters
projcs An existing projected coordinate system object
Description

Returns the pcsinfo structure for a projected coordinate system. The pcsinfo structure contains information on the "look" of a projected coordinate system like whether the north and south poles are within the projection's horizon (valid area of use). The pcsinfo structure:

typedef struct pe_pcsinfo_t
{
   double central_meridian;  /* the longitude center of the pcs */
   double domain_minx;       /* the horizon extent of the pcs   */
   double domain_miny;
   double domain_maxx;
   double domain_maxy;

   unsigned int north_pole_location   : 2;  /* the location of the north pole */
   unsigned int north_pole_geometry   : 2;  /* the geometry of the north pole */
   unsigned int south_pole_location   : 2;  /* the location of the south pole */
   unsigned int south_pole_geometry   : 2;  /* the geometry of the south pole */

   unsigned int is_horizon_edge_duplicated   : 1;
   unsigned int is_horizon_convex_hull       : 1;
   unsigned int is_entire_world              : 1; 
   unsigned int is_densification_needed      : 1;
   unsigned int is_central_meridian_vertical : 1;
} *PE_PCSINFO;

The pole location and geometry enumerations are:

enum pole_location_enum 
{
   PE_POLE_OUTSIDE_BOUNDARY,  /* pole is not within the horizon */
   PE_POLE_ON_BOUNDARY,       /* pole is on edge of horizon     */
   PE_POLE_INSIDE_BOUNDARY    /* pole is within horizon         */
};

enum pole_geometry_enum
{
   PE_POLE_NONE,            /* pole is outside the horizon                      */
   PE_POLE_POINT,           /* pole is a point: transverse Mercator, Sinusoidal */
   PE_POLE_LINE_STRAIGHT,   /* pole is a straight line: Plate Carree, Eckert IV */
   PE_POLE_LINE_CURVED      /* pole is a curved line: Lambert conic */
};
Returns

On success, a pointer to a pcsinfo structure. On failure, a null pointer.

Examples
PE_PROJCS pcs1;

pcs1 = pe_factory_projcs(PE_PCS_NAD_1983_CA_V); /* State Plane California zone 5 */
PE_PCSINFO *pcs_info = pe_pcsinfo_generate(pcs1);