code refactored and added copying of raster attributes to new raster in rt_raster_from_band

git-svn-id: http://svn.osgeo.org/postgis/trunk@7302 b70326c6-7e19-0410-871a-916f4a2858ee
This commit is contained in:
Bborie Park 2011-05-31 22:47:33 +00:00
parent 6994bf5f1f
commit 47629e9ccd

View file

@ -5192,12 +5192,22 @@ rt_raster_from_band(rt_raster raster, uint32_t *bandNums, int count) {
rt_raster_get_num_bands(raster));
/* create new raster */
rast = rt_raster_new(raster->width, raster->height);
if (!rast) {
rast = rt_raster_new(rt_raster_get_width(raster), rt_raster_get_height(raster));
if (NULL == rast) {
rterror("rt_raster_from_band: Out of memory allocating new raster\n");
return 0;
}
/* copy raster attributes */
/* scale */
rt_raster_set_scale(rast, rt_raster_get_x_scale(raster), rt_raster_get_y_scale(raster));
/* offset */
rt_raster_set_offsets(rast, rt_raster_get_x_offset(raster), rt_raster_get_y_offset(raster));
/* skew */
rt_raster_set_skews(rast, rt_raster_get_x_skew(raster), rt_raster_get_y_skew(raster));
/* srid */
rt_raster_set_srid(rast, rt_raster_get_srid(raster));
/* copy bands */
for (i = 0; i < count; i++) {
idx = bandNums[i];
@ -5480,12 +5490,13 @@ rt_raster_to_gdal_mem(rt_raster raster, char *srs,
GDALRegister_MEM();
if (NULL == *rtn_drv) {
drv = GDALGetDriverByName("MEM");
*rtn_drv = drv;
drv_gen = 1;
if (NULL == drv) {
rterror("rt_raster_to_gdal_mem: Unable to load the MEM GDAL driver\n");
return 0;
}
*rtn_drv = drv;
drv_gen = 1;
}
ds = GDALCreate(drv, "", rt_raster_get_width(raster),