Get raster's envelope as a geometry.
706 {
707 double gt[6] = {0.0};
709
712
713 assert(env != NULL);
714 *env = NULL;
715
716
717 if (raster == NULL)
719
720
723
725 3,
726 "rt_raster_get_envelope: raster is %dx%d",
729 );
730
731
735
736
740 }
741
742 else {
745
746
748
749
751 raster,
754 gt
756 rterror(
"rt_raster_get_envelope: Could not get second point for linestring");
758 }
761
763 }
764
766 }
767 else {
772
773
775 if (!rings) {
776 rterror(
"rt_raster_get_envelope_geom: Could not allocate memory for polygon ring");
778 }
780 if (!rings[0]) {
781 rterror(
"rt_raster_get_envelope_geom: Could not construct point array");
783 }
784 pts = rings[0];
785
788 rterror(
"rt_raster_get_envelope_geom: Could not get raster envelope");
789 return err;
790 }
791
792
793
794
799
800
804
805
809
810
814
817 }
818
820}
LWGEOM * lwpoint_as_lwgeom(const LWPOINT *obj)
POINTARRAY * ptarray_construct_empty(char hasz, char hasm, uint32_t maxpoints)
Create a new POINTARRAY with no points.
LWLINE * lwline_construct(int32_t srid, GBOX *bbox, POINTARRAY *points)
LWPOINT * lwpoint_make2d(int32_t srid, double x, double y)
LWGEOM * lwline_as_lwgeom(const LWLINE *obj)
LWPOLY * lwpoly_construct(int32_t srid, GBOX *bbox, uint32_t nrings, POINTARRAY **points)
int ptarray_append_point(POINTARRAY *pa, const POINT4D *pt, int allow_duplicates)
Append a point to the end of an existing POINTARRAY If allow_duplicate is LW_FALSE,...
#define LW_TRUE
Return types for functions with status returns.
#define SRID_UNKNOWN
Unknown SRID value.
void ptarray_set_point4d(POINTARRAY *pa, uint32_t n, const POINT4D *p4d)
LWGEOM * lwpoly_as_lwgeom(const LWPOLY *obj)
POINTARRAY * ptarray_construct(char hasz, char hasm, uint32_t npoints)
Construct an empty pointarray, allocating storage and setting the npoints, but not filling in any inf...
void rterror(const char *fmt,...) __attribute__((format(printf
Wrappers used for reporting errors and info.
void * rtalloc(size_t size)
Wrappers used for managing memory.
rt_errorstate rt_raster_cell_to_geopoint(rt_raster raster, double xr, double yr, double *xw, double *yw, double *gt)
Convert an xr, yr raster point to an xw, yw point on map.
int32_t rt_raster_get_srid(rt_raster raster)
Get raster's SRID.
#define RASTER_DEBUGF(level, msg,...)
uint16_t rt_raster_get_height(rt_raster raster)
uint16_t rt_raster_get_width(rt_raster raster)
rt_errorstate rt_raster_get_envelope(rt_raster raster, rt_envelope *env)
Get raster's envelope.
void rt_raster_get_geotransform_matrix(rt_raster raster, double *gt)
Get 6-element array of raster geotransform matrix.
raster
Be careful!! Zeros function's input parameter can be a (height x width) array, not (width x height): ...