1119{
1121 uint32_t i;
1122 char* ptr = output;
1123 int dimension=2;
1124
1126 {
1127 dimension = 3;
1128 }
1129
1130 ptr += sprintf( ptr, "<%sCurve", prefix );
1131 if (srs)
1132 {
1133 ptr += sprintf(ptr, " srsName=\"%s\"", srs);
1134 }
1135 if (id)
1136 {
1137 ptr += sprintf(ptr, " %sid=\"%s\"", prefix, id );
1138 }
1139 ptr += sprintf( ptr, ">" );
1140 ptr += sprintf( ptr, "<%ssegments>", prefix );
1141
1142 for( i = 0; i < col->
ngeoms; ++i )
1143 {
1144 subgeom = col->
geoms[i];
1146 {
1147 continue;
1148 }
1149
1151 {
1152 ptr += sprintf( ptr, "<%sLineStringSegment><%sposList", prefix, prefix );
1154 {
1155 ptr += sprintf(ptr, " srsDimension=\"%d\"", dimension);
1156 }
1157 ptr += sprintf(ptr, ">");
1159 ptr += sprintf( ptr, "</%sposList></%sLineStringSegment>", prefix, prefix );
1160 }
1162 {
1163 ptr += sprintf( ptr, "<%sArcString><%sposList" , prefix, prefix );
1165 {
1166 ptr += sprintf(ptr, " srsDimension=\"%d\"", dimension);
1167 }
1168 ptr += sprintf(ptr, ">");
1170 ptr += sprintf( ptr, "</%sposList></%sArcString>", prefix, prefix );
1171 }
1172 }
1173
1174 ptr += sprintf( ptr, "</%ssegments>", prefix );
1175 ptr += sprintf( ptr, "</%sCurve>", prefix );
1176 return ( ptr - output );
1177}
#define FLAGS_GET_Z(flags)
static size_t pointArray_toGML3(POINTARRAY *pa, char *buf, int precision, int opts)