| pe_pcsinfo_generate |
Returns the pcsinfo for a projected coordinate system.
PE_PCSINFO pe_pcsinfo_generate (PE_PROJCS projcs);
| projcs | An existing projected coordinate system object |
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 */
};
On success, a pointer to a pcsinfo structure. On failure, a null pointer.
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);