1431{
1433 char *ptr, *gmltype;
1434 uint32_t i;
1436
1437 ptr = output;
1438 gmltype="";
1439
1443
1444
1445 ptr += sprintf(ptr, "<%s%s", prefix, gmltype);
1446 if (srs) ptr += sprintf(ptr, " srsName=\"%s\"", srs);
1447 if (id) ptr += sprintf(ptr, " %sid=\"%s\"", prefix, id);
1448
1450 {
1451 ptr += sprintf(ptr, "/>");
1452 return (ptr-output);
1453 }
1454 ptr += sprintf(ptr, ">");
1455
1456 for (i=0; i<col->
ngeoms; i++)
1457 {
1458 subgeom = col->
geoms[i];
1460 {
1461 ptr += sprintf(ptr, "<%spointMember>", prefix);
1463 ptr += sprintf(ptr, "</%spointMember>", prefix);
1464 }
1466 {
1467 ptr += sprintf(ptr, "<%scurveMember>", prefix);
1469 ptr += sprintf(ptr, "</%scurveMember>", prefix);
1470 }
1472 {
1473 ptr += sprintf(ptr, "<%ssurfaceMember>", prefix);
1475 ptr += sprintf(ptr, "</%ssurfaceMember>", prefix);
1476 }
1477 }
1478
1479
1480 ptr += sprintf(ptr, "</%s%s>", prefix, gmltype);
1481
1482 return (ptr-output);
1483}
#define POINTTYPE
LWTYPE numbers, used internally by PostGIS.
static size_t asgml3_line_buf(const LWLINE *line, const char *srs, char *output, int precision, int opts, const char *prefix, const char *id)
static size_t asgml3_point_buf(const LWPOINT *point, const char *srs, char *output, int precision, int opts, const char *prefix, const char *id)
static size_t asgml3_poly_buf(const LWPOLY *poly, const char *srs, char *output, int precision, int opts, int is_patch, const char *prefix, const char *id)