1333{
1334 uint8_t *start_ptr = data_ptr;
1336 uint8_t *ordinate_ptr;
1337 uint32_t nrings = 0;
1338 uint32_t i = 0;
1339
1340 assert(data_ptr);
1341
1347
1348 data_ptr += 4;
1351 LWDEBUGF(4,
"nrings = %d", nrings);
1352 data_ptr += 4;
1353
1354 ordinate_ptr = data_ptr;
1355 if (nrings > 0)
1356 {
1359 ordinate_ptr += nrings * 4;
1360 if (nrings % 2)
1361 ordinate_ptr += 4;
1362 }
1363 else
1364 {
1367 }
1368
1369 for (i = 0; i < nrings; i++)
1370 {
1371 uint32_t npoints = 0;
1372
1373
1375 data_ptr += 4;
1376
1377
1379
1381 }
1382
1383 if (size)
1384 *size = ordinate_ptr - start_ptr;
1385
1386 return poly;
1387}
static uint32_t gserialized2_get_uint32_t(const uint8_t *loc)
POINTARRAY * ptarray_construct_reference_data(char hasz, char hasm, uint32_t npoints, uint8_t *ptlist)
Construct a new POINTARRAY, referencing to the data from ptlist.
#define FLAGS_GET_Z(flags)
void * lwalloc(size_t size)
#define FLAGS_NDIMS(flags)
#define FLAGS_GET_M(flags)
lwflags_t lwflags(int hasz, int hasm, int geodetic)
Construct a new flags bitmask.
#define SRID_UNKNOWN
Unknown SRID value.
#define LWDEBUGF(level, msg,...)