Parse gml:coord.
640 for (xyz = xnode->children ; xyz != NULL ; xyz = xyz->next)
642 if (xyz->type != XML_ELEMENT_NODE)
continue;
645 if (!strcmp((
char *) xyz->name,
"X"))
647 if (x)
gml_lwerror(
"invalid GML representation", 21);
648 c = xmlNodeGetContent(xyz);
653 else if (!strcmp((
char *) xyz->name,
"Y"))
655 if (y)
gml_lwerror(
"invalid GML representation", 22);
656 c = xmlNodeGetContent(xyz);
661 else if (!strcmp((
char *) xyz->name,
"Z"))
663 if (z)
gml_lwerror(
"invalid GML representation", 23);
664 c = xmlNodeGetContent(xyz);
671 if (!x || !y)
gml_lwerror(
"invalid GML representation", 24);
672 if (!z) *hasz =
false;
POINTARRAY * ptarray_construct_empty(char hasz, char hasm, uint32_t maxpoints)
Create a new POINTARRAY with no points.
static double parse_gml_double(char *d, bool space_before, bool space_after)
Parse a string supposed to be a double.
int ptarray_append_point(POINTARRAY *pa, const POINT4D *pt, int allow_duplicates)
Append a point to the end of an existing POINTARRAY If allow_duplicate is LW_TRUE, then a duplicate point will not be added.
POINTARRAY * ptarray_clone_deep(const POINTARRAY *ptarray)
Deep clone a pointarray (also clones serialized pointlist)
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 void gml_lwerror(char *msg, int error_code)