PostGIS  3.4.0dev-r@@SVN_REVISION@@

◆ out_gml_test_geoms()

static void out_gml_test_geoms ( void  )
static

Definition at line 371 of file cu_out_gml.c.

372 {
373  /* GML2 - Linestring */
374  do_gml2_test(
375  "LINESTRING(0 1,2 3,4 5)",
376  "<gml:LineString><gml:coordinates>0,1 2,3 4,5</gml:coordinates></gml:LineString>",
377  NULL, 0);
378 
379  /* GML3 - Linestring */
380  do_gml3_test(
381  "LINESTRING(0 1,2 3,4 5)",
382  "<gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension=\"2\">0 1 2 3 4 5</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve>",
383  NULL, 0, 0);
384 
385 
386  /* GML2 Polygon */
387  do_gml2_test(
388  "POLYGON((0 1,2 3,4 5,0 1))",
389  "<gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>0,1 2,3 4,5 0,1</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon>",
390  NULL, 0);
391 
392  /* GML3 Polygon */
393  do_gml3_test(
394  "POLYGON((0 1,2 3,4 5,0 1))",
395  "<gml:Polygon><gml:exterior><gml:LinearRing><gml:posList srsDimension=\"2\">0 1 2 3 4 5 0 1</gml:posList></gml:LinearRing></gml:exterior></gml:Polygon>",
396  NULL, 0, 0);
397 
398  /* GML2 Polygon - with internal ring */
399  do_gml2_test(
400  "POLYGON((0 1,2 3,4 5,0 1),(6 7,8 9,10 11,6 7))",
401  "<gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>0,1 2,3 4,5 0,1</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs><gml:innerBoundaryIs><gml:LinearRing><gml:coordinates>6,7 8,9 10,11 6,7</gml:coordinates></gml:LinearRing></gml:innerBoundaryIs></gml:Polygon>",
402  NULL, 0);
403 
404  /* GML3 Polygon - with internal ring */
405  do_gml3_test(
406  "POLYGON((0 1,2 3,4 5,0 1),(6 7,8 9,10 11,6 7))",
407  "<gml:Polygon><gml:exterior><gml:LinearRing><gml:posList srsDimension=\"2\">0 1 2 3 4 5 0 1</gml:posList></gml:LinearRing></gml:exterior><gml:interior><gml:LinearRing><gml:posList srsDimension=\"2\">6 7 8 9 10 11 6 7</gml:posList></gml:LinearRing></gml:interior></gml:Polygon>",
408  NULL, 0, 0);
409 
410 
411  /* GML3 Triangle */
412  do_gml3_test(
413  "TRIANGLE((0 1,2 3,4 5,0 1))",
414  "<gml:Triangle><gml:exterior><gml:LinearRing><gml:posList srsDimension=\"2\">0 1 2 3 4 5 0 1</gml:posList></gml:LinearRing></gml:exterior></gml:Triangle>",
415  NULL, 0, 0);
416 
417 
418  /* GML2 MultiPoint */
419  do_gml2_test(
420  "MULTIPOINT(0 1,2 3)",
421  "<gml:MultiPoint><gml:pointMember><gml:Point><gml:coordinates>0,1</gml:coordinates></gml:Point></gml:pointMember><gml:pointMember><gml:Point><gml:coordinates>2,3</gml:coordinates></gml:Point></gml:pointMember></gml:MultiPoint>",
422  NULL, 0);
423 
424  /* GML3 MultiPoint */
425  do_gml3_test(
426  "MULTIPOINT(0 1,2 3)",
427  "<gml:MultiPoint><gml:pointMember><gml:Point><gml:pos srsDimension=\"2\">0 1</gml:pos></gml:Point></gml:pointMember><gml:pointMember><gml:Point><gml:pos srsDimension=\"2\">2 3</gml:pos></gml:Point></gml:pointMember></gml:MultiPoint>",
428  NULL, 0, 0);
429 
430 
431  /* GML2 Multiline */
432  do_gml2_test(
433  "MULTILINESTRING((0 1,2 3,4 5),(6 7,8 9,10 11))",
434  "<gml:MultiLineString><gml:lineStringMember><gml:LineString><gml:coordinates>0,1 2,3 4,5</gml:coordinates></gml:LineString></gml:lineStringMember><gml:lineStringMember><gml:LineString><gml:coordinates>6,7 8,9 10,11</gml:coordinates></gml:LineString></gml:lineStringMember></gml:MultiLineString>",
435  NULL, 0);
436 
437  /* GML3 Multiline */
438  do_gml3_test(
439  "MULTILINESTRING((0 1,2 3,4 5),(6 7,8 9,10 11))",
440  "<gml:MultiCurve><gml:curveMember><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension=\"2\">0 1 2 3 4 5</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:curveMember><gml:curveMember><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension=\"2\">6 7 8 9 10 11</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:curveMember></gml:MultiCurve>",
441  NULL, 0, 0);
442 
443 
444  /* GML2 MultiPolygon */
445  do_gml2_test(
446  "MULTIPOLYGON(((0 1,2 3,4 5,0 1)),((6 7,8 9,10 11,6 7)))",
447  "<gml:MultiPolygon><gml:polygonMember><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>0,1 2,3 4,5 0,1</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></gml:polygonMember><gml:polygonMember><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>6,7 8,9 10,11 6,7</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></gml:polygonMember></gml:MultiPolygon>",
448  NULL, 0);
449 
450  /* GML3 MultiPolygon */
451  do_gml3_test(
452  "MULTIPOLYGON(((0 1,2 3,4 5,0 1)),((6 7,8 9,10 11,6 7)))",
453  "<gml:MultiSurface><gml:surfaceMember><gml:Polygon><gml:exterior><gml:LinearRing><gml:posList srsDimension=\"2\">0 1 2 3 4 5 0 1</gml:posList></gml:LinearRing></gml:exterior></gml:Polygon></gml:surfaceMember><gml:surfaceMember><gml:Polygon><gml:exterior><gml:LinearRing><gml:posList srsDimension=\"2\">6 7 8 9 10 11 6 7</gml:posList></gml:LinearRing></gml:exterior></gml:Polygon></gml:surfaceMember></gml:MultiSurface>",
454  NULL, 0, 0);
455 
456 
457  /* GML2 - GeometryCollection */
458  do_gml2_test(
459  "GEOMETRYCOLLECTION(POINT(0 1),LINESTRING(2 3,4 5))",
460  "<gml:MultiGeometry><gml:geometryMember><gml:Point><gml:coordinates>0,1</gml:coordinates></gml:Point></gml:geometryMember><gml:geometryMember><gml:LineString><gml:coordinates>2,3 4,5</gml:coordinates></gml:LineString></gml:geometryMember></gml:MultiGeometry>",
461  NULL, 0);
462 
463  /* GML3 - GeometryCollection */
464  do_gml3_test(
465  "GEOMETRYCOLLECTION(POINT(0 1),LINESTRING(2 3,4 5))",
466  "<gml:MultiGeometry><gml:geometryMember><gml:Point><gml:pos srsDimension=\"2\">0 1</gml:pos></gml:Point></gml:geometryMember><gml:geometryMember><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension=\"2\">2 3 4 5</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:geometryMember></gml:MultiGeometry>",
467  NULL, 0, 0);
468 
469 
470  /* GML2 - Nested GeometryCollection */
471  do_gml2_test(
472  "GEOMETRYCOLLECTION(POINT(0 1),GEOMETRYCOLLECTION(LINESTRING(2 3,4 5)))",
473  "<gml:MultiGeometry><gml:geometryMember><gml:Point><gml:coordinates>0,1</gml:coordinates></gml:Point></gml:geometryMember><gml:geometryMember><gml:MultiGeometry><gml:geometryMember><gml:LineString><gml:coordinates>2,3 4,5</gml:coordinates></gml:LineString></gml:geometryMember></gml:MultiGeometry></gml:geometryMember></gml:MultiGeometry>",
474  NULL, 0);
475 
476  /* GML3 - Nested GeometryCollection */
477  do_gml3_test(
478  "GEOMETRYCOLLECTION(POINT(0 1),GEOMETRYCOLLECTION(LINESTRING(2 3,4 5)))",
479  "<gml:MultiGeometry><gml:geometryMember><gml:Point><gml:pos srsDimension=\"2\">0 1</gml:pos></gml:Point></gml:geometryMember><gml:geometryMember><gml:MultiGeometry><gml:geometryMember><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension=\"2\">2 3 4 5</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:geometryMember></gml:MultiGeometry></gml:geometryMember></gml:MultiGeometry>",
480  NULL, 0, 0);
481 
482  /* GML2 - CircularString */
484  "CIRCULARSTRING(-2 0,0 2,2 0,0 2,2 4)",
485  "lwgeom_to_gml2: 'CircularString' geometry type not supported");
486  /* GML3 - CircularString */
487  do_gml3_test(
488  "CIRCULARSTRING(-2 0,0 2,2 0,0 2,2 4)",
489  "<gml:Curve><gml:segments><gml:ArcString><gml:posList srsDimension=\"2\">-2 0 0 2 2 0 0 2 2 4</gml:posList></gml:ArcString></gml:segments></gml:Curve>",
490  NULL, 0, 0 );
491 
492  /* GML2 - CompoundCurve */
494  "COMPOUNDCURVE(CIRCULARSTRING(0 0,1 1,1 0),(1 0,0 1))",
495  "lwgeom_to_gml2: 'CompoundCurve' geometry type not supported");
496  /* GML3 - CompoundCurve */
497 
498  do_gml3_test(
499  "COMPOUNDCURVE(CIRCULARSTRING(0 0,1 1,1 0),(1 0,0 1))",
500  "<gml:Curve><gml:segments><gml:ArcString><gml:posList srsDimension=\"2\">0 0 1 1 1 0</gml:posList></gml:ArcString><gml:LineStringSegment><gml:posList srsDimension=\"2\">1 0 0 1</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve>",
501  NULL, 0, 0 );
502 
503  /* GML2 - CurvePolygon */
505  "CURVEPOLYGON(CIRCULARSTRING(-2 0,-1 -1,0 0,1 -1,2 0,0 2,-2 0),(-1 0,0 0.5,1 0,0 1,-1 0))",
506  "lwgeom_to_gml2: 'CurvePolygon' geometry type not supported");
507 
508  /* GML3 - CurvePolygon */
509  do_gml3_test(
510  "CURVEPOLYGON(CIRCULARSTRING(-2 0,-1 -1,0 0,1 -1,2 0,0 2,-2 0),(-1 0,0 0.5,1 0,0 1,-1 0))",
511  "<gml:Polygon><gml:exterior><gml:Ring><gml:curveMember><gml:Curve><gml:segments><gml:ArcString><gml:posList srsDimension=\"2\">-2 0 -1 -1 0 0 1 -1 2 0 0 2 -2 0</gml:posList></gml:ArcString></gml:segments></gml:Curve></gml:curveMember></gml:Ring></gml:exterior><gml:interior><gml:LinearRing><gml:posList srsDimension=\"2\">-1 0 0 0.5 1 0 0 1 -1 0</gml:posList></gml:LinearRing></gml:interior></gml:Polygon>",
512  NULL, 1, 0 );
513  do_gml3_test(
514  "CURVEPOLYGON(COMPOUNDCURVE((763650.600000001 189057.100000001,7636.35 189045.199999999, 763650.548999999 189057.844000001,763650.600000001 189057.100000001)))",
515  "<gml:Polygon><gml:exterior><gml:Ring><gml:curveMember><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension=\"2\">763650.6 189057.1 7636.35 189045.2 763650.549 189057.844 763650.6 189057.1</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:curveMember></gml:Ring></gml:exterior></gml:Polygon>",
516  NULL, 7, 0 );
517 
518  /* GML2 - MultiCurve */
520  "MULTICURVE((5 5,3 5,3 3,0 3),CIRCULARSTRING(0 0,2 1,2 2))",
521  "lwgeom_to_gml2: 'MultiCurve' geometry type not supported");
522 
523  /* GML3 - MultiCurve */
524  do_gml3_test(
525  "MULTICURVE((5 5,3 5,3 3,0 3),CIRCULARSTRING(0 0,2 1,2 2))",
526  "<gml:MultiCurve><gml:curveMember><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension=\"2\">5 5 3 5 3 3 0 3</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:curveMember><gml:curveMember><gml:Curve><gml:segments><gml:ArcString><gml:posList srsDimension=\"2\">0 0 2 1 2 2</gml:posList></gml:ArcString></gml:segments></gml:Curve></gml:curveMember></gml:MultiCurve>",
527  NULL, 0, 0 );
528 
529  /* GML2 - MultiSurface */
531  "MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(-2 0,-1 -1,0 0,1 -1,2 0,0 2,-2 0),(-1 0,0 0.5,1 0,0 1,-1 0)),((7 8,10 10,6 14,4 11,7 8)))",
532  "lwgeom_to_gml2: 'MultiSurface' geometry type not supported");
533 
534  /* GML3 - MultiSurface */
535  do_gml3_test(
536  "MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(-2 0,-1 -1,0 0,1 -1,2 0,0 2,-2 0),(-1 0,0 0.5,1 0,0 1,-1 0)),((7 8,10 10,6 14,4 11,7 8)))",
537  "<gml:MultiSurface><gml:Polygon><gml:exterior><gml:Ring><gml:curveMember><gml:Curve><gml:segments><gml:ArcString><gml:posList srsDimension=\"2\">-2 0 -1 -1 0 0 1 -1 2 0 0 2 -2 0</gml:posList></gml:ArcString></gml:segments></gml:Curve></gml:curveMember></gml:Ring></gml:exterior><gml:interior><gml:LinearRing><gml:posList srsDimension=\"2\">-1 0 0 0.5 1 0 0 1 -1 0</gml:posList></gml:LinearRing></gml:interior></gml:Polygon><gml:Polygon><gml:exterior><gml:LinearRing><gml:posList srsDimension=\"2\">7 8 10 10 6 14 4 11 7 8</gml:posList></gml:LinearRing></gml:exterior></gml:Polygon></gml:MultiSurface>",
538  NULL, 1, 0 );
539 
540  /* GML2 - PolyhedralSurface */
542  "POLYHEDRALSURFACE(((0 1,2 3,4 5,0 1)))",
543  "Cannot convert PolyhedralSurface to GML2. Try ST_AsGML(3, <geometry>) to generate GML3.");
544 
545  /* GML2 - Tin */
547  "TIN(((0 1,2 3,4 5,0 1)))",
548  "Cannot convert Tin to GML2. Try ST_AsGML(3, <geometry>) to generate GML3.");
549 }
static void do_gml3_test(char *in, char *out, char *srs, int precision, int is_geodetic)
Definition: cu_out_gml.c:54
static void do_gml2_unsupported(char *in, char *out)
Definition: cu_out_gml.c:97
static void do_gml2_test(char *in, char *out, char *srs, int precision)
Definition: cu_out_gml.c:21

References do_gml2_test(), do_gml2_unsupported(), and do_gml3_test().

Referenced by out_gml_suite_setup().

Here is the call graph for this function:
Here is the caller graph for this function: