Get raster's envelope as a geometry.
705 {
706 double gt[6] = {0.0};
708
711
712 assert(env != NULL);
713 *env = NULL;
714
715
716 if (raster == NULL)
718
719
722
724 3,
725 "rt_raster_get_envelope: raster is %dx%d",
728 );
729
730
734
735
739 }
740
741 else {
744
745
747
748
750 raster,
753 gt
755 rterror(
"rt_raster_get_envelope: Could not get second point for linestring");
757 }
760
762 }
763
765 }
766 else {
771
772
774 if (!rings) {
775 rterror(
"rt_raster_get_envelope_geom: Could not allocate memory for polygon ring");
777 }
779 if (!rings[0]) {
780 rterror(
"rt_raster_get_envelope_geom: Could not construct point array");
782 }
783 pts = rings[0];
784
787 rterror(
"rt_raster_get_envelope_geom: Could not get raster envelope");
788 return err;
789 }
790
791
792
793
798
799
803
804
808
809
813
816 }
817
819}
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): ...