Construct an rt_raster from a text HEXWKB representation.
409 {
411 uint8_t* wkb = NULL;
412 uint32_t wkbsize = 0;
413 uint32_t i = 0;
414
415 assert(NULL != hexwkb);
416
419
420 if (hexwkbsize % 2) {
421 rterror(
"rt_raster_from_hexwkb: Raster HEXWKB input must have an even number of characters");
422 return NULL;
423 }
424 wkbsize = hexwkbsize / 2;
425
427 if (!wkb) {
428 rterror(
"rt_raster_from_hexwkb: Out of memory allocating memory for decoding HEXWKB");
429 return NULL;
430 }
431
432
433 for (i = 0; i < wkbsize; ++i) {
434 wkb[i] =
parse_hex((
char*) & (hexwkb[i * 2]));
435 }
436
439
440 return ret;
441}
uint8_t parse_hex(char *str)
Convert a single hex digit into the corresponding char.
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.
#define RASTER_DEBUGF(level, msg,...)
void rtdealloc(void *mem)
rt_raster rt_raster_from_wkb(const uint8_t *wkb, uint32_t wkbsize)
Construct an rt_raster from a binary WKB representation.