Generate an allocated geometry string for shapefile object obj using the state parameters.
Definition at line 320 of file shp2pgsql-core.c.
321{
322
323 LWGEOM **lwmultilinestrings;
326 int dims = 0;
327 int u, v, start_vertex, end_vertex;
328 char *mem;
329 size_t mem_length;
330
331
334
336 {
338
340 }
341
342
344
345
346 for (u = 0; u < obj->
nParts; u++)
347 {
348
350
351
352
355 else
357
359
360 for (v = start_vertex; v < end_vertex; v++)
361 {
362
363 point4d.
x = obj->
padfX[v];
364 point4d.
y = obj->
padfY[v];
365
367 point4d.
z = obj->
padfZ[v];
369 point4d.
m = obj->
padfM[v];
370
372 }
373
374
376 }
377
378
380 {
382 }
383 else
384 {
385 lwgeom = lwmultilinestrings[0];
386 lwfree(lwmultilinestrings);
387 }
388
391 else
393
394 if ( !mem )
395 {
398 }
399
400
402
403
404 *geometry = mem;
405
407}
LWCOLLECTION * lwcollection_construct(uint8_t type, int32_t srid, GBOX *bbox, uint32_t ngeoms, LWGEOM **geoms)
char * lwgeom_to_hexwkb_buffer(const LWGEOM *geom, uint8_t variant)
void lwgeom_free(LWGEOM *geom)
char * lwgeom_to_wkt(const LWGEOM *geom, uint8_t variant, int precision, size_t *size_out)
WKT emitter function.
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)
LWGEOM * lwline_as_lwgeom(const LWLINE *obj)
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 FLAGS_SET_M(flags, value)
#define FLAGS_SET_Z(flags, value)
LWGEOM * lwcollection_as_lwgeom(const LWCOLLECTION *obj)
char message[SHPLOADERMSGLEN]
References _, shp_loader_state::config, FLAGS_SET_M, FLAGS_SET_Z, shp_loader_state::from_srid, shp_loader_state::has_m, shp_loader_state::has_z, LW_FALSE, lwcollection_as_lwgeom(), lwcollection_construct(), lwfree(), lwgeom_free(), lwgeom_to_hexwkb_buffer(), lwgeom_to_wkt(), lwline_as_lwgeom(), lwline_construct(), POINT4D::m, malloc(), shp_loader_state::message, MULTILINETYPE, tagSHPObject::nParts, tagSHPObject::nVertices, tagSHPObject::padfM, tagSHPObject::padfX, tagSHPObject::padfY, tagSHPObject::padfZ, tagSHPObject::panPartStart, ptarray_append_point(), ptarray_construct_empty(), SHPLOADERERR, SHPLOADERMSGLEN, SHPLOADEROK, shp_loader_config::simple_geometries, shp_loader_config::use_wkt, WKB_EXTENDED, WKT_EXTENDED, WKT_PRECISION, POINT4D::x, POINT4D::y, and POINT4D::z.
Referenced by ShpLoaderGenerateSQLRowStatement().