Read GML.
1891{
1892 xmlDocPtr xmldoc;
1893 xmlNodePtr xmlroot=NULL;
1895 bool hasz=true;
1897
1898
1899 xmlInitParser();
1900
1901 xmldoc = xmlReadMemory(xml, xml_size, NULL, NULL, 0);
1902 if (!xmldoc)
1903 {
1904 xmlCleanupParser();
1906 return NULL;
1907 }
1908
1909 xmlroot = xmlDocGetRootElement(xmldoc);
1910 if (!xmlroot)
1911 {
1912 xmlFreeDoc(xmldoc);
1913 xmlCleanupParser();
1915 return NULL;
1916 }
1917
1918 lwgeom =
parse_gml(xmlroot, &hasz, &root_srid);
1919
1920 xmlFreeDoc(xmldoc);
1921 xmlCleanupParser();
1922
1923
1925 lwgeom->
srid = root_srid;
1926
1927
1928
1929
1930
1931
1932
1933
1934 if (!hasz)
1935 {
1938 lwgeom = tmp;
1939 }
1940
1941 return lwgeom;
1942}
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)