17 struct Cell_head window;
21 double units_to_meters_squared;
27 double (*darea0)(double);
30static struct state *st = &state;
51 switch (st->projection = st->window.proj) {
63 st->north = st->window.north;
64 st->north_value = st->darea0(st->north);
67 st->square_meters = st->window.ns_res * st->window.ew_res;
70 st->square_meters *= (factor * factor);
71 return (factor > 0.0);
91 if (st->projection != PROJECTION_LL)
92 return st->square_meters;
94 if (row != st->next_row) {
95 st->north = st->window.north - row * st->window.ns_res;
96 st->north_value = st->darea0(st->north);
99 st->north -= st->window.ns_res;
100 south_value = st->darea0(st->north);
101 cell_area = st->north_value - south_value;
103 st->next_row = row + 1;
104 st->north_value = south_value;
124 if ((st->projection =
G_projection()) == PROJECTION_LL) {
131 st->units_to_meters_squared = factor * factor;
134 st->units_to_meters_squared = 1.0;
162 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.