Parse GML.
1849 xmlNodePtr xa = xnode;
1852 while (xa != NULL && (xa->type != XML_ELEMENT_NODE
1855 if (xa == NULL)
gml_lwpgerror(
"invalid GML representation", 55);
1860 *root_srid = srs.
srid;
1863 if (!strcmp((
char *) xa->name,
"Point"))
1866 if (!strcmp((
char *) xa->name,
"LineString"))
1869 if (!strcmp((
char *) xa->name,
"Curve"))
1872 if (!strcmp((
char *) xa->name,
"LinearRing"))
1875 if (!strcmp((
char *) xa->name,
"Polygon"))
1878 if (!strcmp((
char *) xa->name,
"Triangle"))
1881 if (!strcmp((
char *) xa->name,
"Surface"))
1884 if (!strcmp((
char *) xa->name,
"MultiPoint"))
1887 if (!strcmp((
char *) xa->name,
"MultiLineString"))
1890 if (!strcmp((
char *) xa->name,
"MultiCurve"))
1893 if (!strcmp((
char *) xa->name,
"MultiPolygon"))
1896 if (!strcmp((
char *) xa->name,
"MultiSurface"))
1899 if (!strcmp((
char *) xa->name,
"PolyhedralSurface"))
1902 if ((!strcmp((
char *) xa->name,
"Tin")) ||
1903 !strcmp((
char *) xa->name,
"TriangulatedSurface" ))
1906 if (!strcmp((
char *) xa->name,
"MultiGeometry"))
static LWGEOM * parse_gml_triangle(xmlNodePtr xnode, bool *hasz, int *root_srid)
Parse GML Triangle (3.1.1)
static LWGEOM * parse_gml_mpoly(xmlNodePtr xnode, bool *hasz, int *root_srid)
Parse GML MultiPolygon (2.1.2, 3.1.1)
static LWGEOM * parse_gml_linearring(xmlNodePtr xnode, bool *hasz, int *root_srid)
Parse GML LinearRing (3.1.1)
static void gml_lwpgerror(char *msg, int error_code)
static void parse_gml_srs(xmlNodePtr xnode, gmlSrs *srs)
Parse gml srsName attribute.
static LWGEOM * parse_gml_point(xmlNodePtr xnode, bool *hasz, int *root_srid)
Parse GML point (2.1.2, 3.1.1)
static LWGEOM * parse_gml_tin(xmlNodePtr xnode, bool *hasz, int *root_srid)
Parse GML Tin (and TriangulatedSurface) (3.1.1)
static LWGEOM * parse_gml_coll(xmlNodePtr xnode, bool *hasz, int *root_srid)
Parse GML MultiGeometry (2.1.2, 3.1.1)
static LWGEOM * parse_gml_mcurve(xmlNodePtr xnode, bool *hasz, int *root_srid)
Parse GML MultiCurve (3.1.1)
static LWGEOM * parse_gml_msurface(xmlNodePtr xnode, bool *hasz, int *root_srid)
Parse GML MultiSurface (3.1.1)
#define SRID_UNKNOWN
Unknown SRID value.
static LWGEOM * parse_gml_mpoint(xmlNodePtr xnode, bool *hasz, int *root_srid)
Parse gml:MultiPoint (2.1.2, 3.1.1)
static LWGEOM * parse_gml_curve(xmlNodePtr xnode, bool *hasz, int *root_srid)
Parse GML Curve (3.1.1)
static bool is_gml_namespace(xmlNodePtr xnode, bool is_strict)
Return false if current element namespace is not a GML one Return true otherwise. ...
static LWGEOM * parse_gml_surface(xmlNodePtr xnode, bool *hasz, int *root_srid)
Parse GML Surface (3.1.1)
static LWGEOM * parse_gml_psurface(xmlNodePtr xnode, bool *hasz, int *root_srid)
Parse GML PolyhedralSurface (3.1.1) Nota: It's not part of SF-2.
static LWGEOM * parse_gml_mline(xmlNodePtr xnode, bool *hasz, int *root_srid)
Parse gml:MultiLineString (2.1.2, 3.1.1)
static LWGEOM * parse_gml_polygon(xmlNodePtr xnode, bool *hasz, int *root_srid)
Parse GML Polygon (2.1.2, 3.1.1)
static LWGEOM * parse_gml_line(xmlNodePtr xnode, bool *hasz, int *root_srid)
Parse GML lineString (2.1.2, 3.1.1)