17 struct Cell_head window;
21 double units_to_meters_squared;
27 double (*darea0)(double);
30static struct state *st = &state;
52 switch (st->projection = st->window.proj) {
64 st->north = st->window.north;
65 st->north_value = st->darea0(st->north);
68 st->square_meters = st->window.ns_res * st->window.ew_res;
71 st->square_meters *= (factor * factor);
72 return (factor > 0.0);
92 if (st->projection != PROJECTION_LL)
93 return st->square_meters;
95 if (row != st->next_row) {
96 st->north = st->window.north - row * st->window.ns_res;
97 st->north_value = st->darea0(st->north);
100 st->north -= st->window.ns_res;
101 south_value = st->darea0(st->north);
102 cell_area = st->north_value - south_value;
104 st->next_row = row + 1;
105 st->north_value = south_value;
125 if ((st->projection =
G_projection()) == PROJECTION_LL) {
132 st->units_to_meters_squared = factor * factor;
135 st->units_to_meters_squared = 1.0;
163 if (st->projection == PROJECTION_LL)
double G_area_of_cell_at_row(int row)
Cell area in specified row.
int G_begin_cell_area_calculations(void)
Begin cell area calculations.
double G_area_of_polygon(const double *x, const double *y, int n)
Area in square meters of polygon.
int G_begin_polygon_area_calculations(void)
Begin polygon area calculations.
double G_darea0_on_ellipsoid(double lat)
Calculate integral for area between two latitudes.
void G_begin_zone_area_on_ellipsoid(double a, double e2, double s)
Begin area calculations for ellipsoid.
void G_begin_ellipsoid_polygon_area(double a, double e2)
Begin area calculations.
double G_ellipsoid_polygon_area(const double *lon, const double *lat, int n)
Area of lat-long polygon.
double G_planimetric_polygon_area(const double *x, const double *y, int n)
Calculates planimetric polygon area.
void G_begin_zone_area_on_sphere(double r, double s)
Initialize calculations for sphere.
double G_darea0_on_sphere(double lat)
Calculates integral for area between two latitudes.
int G_get_ellipsoid_parameters(double *a, double *e2)
get ellipsoid parameters
void G_get_set_window(struct Cell_head *window)
Get the current working window (region)
int G_projection(void)
Query cartographic projection.
double G_database_units_to_meters_factor(void)
Conversion to meters.