Read GML.
1926{
1927 xmlDocPtr xmldoc;
1928 xmlNodePtr xmlroot=NULL;
1930 bool hasz=true;
1932
1933
1934 xmlInitParser();
1935
1936 xmldoc = xmlReadMemory(xml, xml_size, NULL, NULL, 0);
1937 if (!xmldoc)
1938 {
1939 xmlCleanupParser();
1941 return NULL;
1942 }
1943
1944 xmlroot = xmlDocGetRootElement(xmldoc);
1945 if (!xmlroot)
1946 {
1947 xmlFreeDoc(xmldoc);
1948 xmlCleanupParser();
1950 return NULL;
1951 }
1952
1953 lwgeom =
parse_gml(xmlroot, &hasz, &root_srid);
1954
1955 xmlFreeDoc(xmldoc);
1956 xmlCleanupParser();
1957
1958
1960 lwgeom->
srid = root_srid;
1961
1962
1963
1964
1965
1966
1967
1968
1969 if (!hasz)
1970 {
1973 lwgeom = tmp;
1974 }
1975
1976 return lwgeom;
1977}
void lwgeom_free(LWGEOM *geom)
LWGEOM * lwgeom_force_2d(const LWGEOM *geom)
Strip out the Z/M components of an LWGEOM.
#define SRID_UNKNOWN
Unknown SRID value.
static LWGEOM * parse_gml(xmlNodePtr xnode, bool *hasz, int *root_srid)
Parse GML.
static void gml_lwpgerror(char *msg, __attribute__((__unused__)) int error_code)