Skip to content

Commit 5d433c6

Browse files
sbrunnertbonfort
authored andcommitted
Better support of the simple features profile
Replace parts that not part of the: Geography Markup Language (GML) simple features profile Version 1.0 http://portal.opengeospatial.org/files/?artifact_id=15201&passcode=h597f3yybeu8fqxh99kh
1 parent 69e62e4 commit 5d433c6

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

Diff for: mapgml.c

+7-7
Original file line numberDiff line numberDiff line change
@@ -548,9 +548,9 @@ static int gmlWriteGeometry_GML3(FILE *stream, gmlGeometryListObj *geometryList,
548548

549549
msFree(pszGMLId);
550550

551-
msIO_fprintf(stream, "%s <gml:pointMembers>\n", tab);
552551
for(i=0; i<shape->numlines; i++) {
553552
for(j=0; j<shape->line[i].numpoints; j++) {
553+
msIO_fprintf(stream, "%s <gml:pointMember>\n", tab);
554554
pszGMLId = gmlCreateGeomId(nGMLVersion, pszFID, &id);
555555
msIO_fprintf(stream, "%s <gml:Point%s>\n", tab, pszGMLId);
556556
#ifdef USE_POINT_Z_M
@@ -562,9 +562,9 @@ static int gmlWriteGeometry_GML3(FILE *stream, gmlGeometryListObj *geometryList,
562562
msIO_fprintf(stream, "%s <gml:pos>%f %f</gml:pos>\n", tab, shape->line[i].point[j].x, shape->line[i].point[j].y);
563563
msIO_fprintf(stream, "%s </gml:Point>\n", tab);
564564
msFree(pszGMLId);
565+
msIO_fprintf(stream, "%s </gml:pointMember>\n", tab);
565566
}
566567
}
567-
msIO_fprintf(stream, "%s </gml:pointMembers>\n", tab);
568568

569569
msIO_fprintf(stream, "%s </gml:MultiPoint>\n", tab);
570570

@@ -622,8 +622,8 @@ static int gmlWriteGeometry_GML3(FILE *stream, gmlGeometryListObj *geometryList,
622622
msIO_fprintf(stream, "%s <gml:MultiCurve%s>\n", tab, pszGMLId);
623623
msFree(pszGMLId);
624624

625-
msIO_fprintf(stream, "%s <gml:curveMembers>\n", tab);
626625
for(i=0; i<shape->numlines; i++) {
626+
msIO_fprintf(stream, "%s <gml:curveMember>\n", tab);
627627
pszGMLId = gmlCreateGeomId(nGMLVersion, pszFID, &id);
628628
msIO_fprintf(stream, "%s <gml:LineString%s>\n", tab, pszGMLId); /* no srsname at this point */
629629
msFree(pszGMLId);
@@ -642,8 +642,8 @@ static int gmlWriteGeometry_GML3(FILE *stream, gmlGeometryListObj *geometryList,
642642

643643
msIO_fprintf(stream, "</gml:posList>\n");
644644
msIO_fprintf(stream, "%s </gml:LineString>\n", tab);
645+
msIO_fprintf(stream, "%s </gml:curveMember>\n", tab);
645646
}
646-
msIO_fprintf(stream, "%s </gml:curveMembers>\n", tab);
647647

648648
msIO_fprintf(stream, "%s </gml:MultiCurve>\n", tab);
649649

@@ -747,11 +747,11 @@ static int gmlWriteGeometry_GML3(FILE *stream, gmlGeometryListObj *geometryList,
747747
msIO_fprintf(stream, "%s <gml:MultiSurface%s srsName=\"%s\">\n", tab, pszGMLId, srsname_encoded);
748748
else
749749
msIO_fprintf(stream, "%s <gml:MultiSurface%s>\n", tab, pszGMLId);
750-
msFree(pszGMLId),
750+
msFree(pszGMLId);
751751

752-
msIO_fprintf(stream, "%s <gml:surfaceMembers>\n", tab);
753752
for(i=0; i<shape->numlines; i++) { /* step through the outer rings */
754753
if(outerlist[i] == MS_TRUE) {
754+
msIO_fprintf(stream, "%s <gml:surfaceMember>\n", tab);
755755

756756
/* get a list of inner rings for this polygon */
757757
innerlist = msGetInnerList(shape, i, outerlist);
@@ -807,9 +807,9 @@ static int gmlWriteGeometry_GML3(FILE *stream, gmlGeometryListObj *geometryList,
807807
msIO_fprintf(stream, "%s </gml:Polygon>\n", tab);
808808

809809
free(innerlist);
810+
msIO_fprintf(stream, "%s </gml:surfaceMember>\n", tab);
810811
}
811812
}
812-
msIO_fprintf(stream, "%s </gml:surfaceMembers>\n", tab);
813813
msIO_fprintf(stream, "%s </gml:MultiSurface>\n", tab);
814814

815815
free(outerlist);

0 commit comments

Comments
 (0)