Parse gml srsName attribute.
Definition at line 414 of file lwgeom_in_gml.c.
417 int is_axis_order_gis_friendly;
420 bool honours_authority_axis_order =
false;
424 srsname =
gmlGetProp(node, (xmlChar *)
"srsName");
428 if (node->parent == NULL)
455 if (!strncmp((
char *) srsname,
"EPSG:", 5))
458 honours_authority_axis_order =
false;
460 else if (!strncmp((
char *) srsname,
"urn:ogc:def:crs:EPSG:", 21)
461 || !strncmp((
char *) srsname,
"urn:x-ogc:def:crs:EPSG:", 23)
462 || !strncmp((
char *) srsname,
"urn:EPSG:geographicCRS:", 23))
465 honours_authority_axis_order =
true;
467 else if (!strncmp((
char *) srsname,
468 "http://www.opengis.net/gml/srs/epsg.xml#", 40))
471 honours_authority_axis_order =
false;
476 for (p = (
char *) srsname ; *p ; p++);
477 for (--p ; *p != sep ; p--)
478 if (!isdigit(*p))
gml_lwpgerror(
"unknown spatial reference system", 5);
480 srs->
srid = atoi(++p);
490 srs->
reverse_axis = !is_axis_order_gis_friendly && honours_authority_axis_order;
#define SRID_UNKNOWN
Unknown SRID value.
static int gml_is_srs_axis_order_gis_friendly(int32_t srid)
Return 1 if the SRS definition from the authority has a GIS friendly order, that is easting,...
static xmlChar * gmlGetProp(xmlNodePtr xnode, xmlChar *prop)
Retrieve a GML property from a node or NULL otherwise Respect namespaces if presents in the node elem...
static void parse_gml_srs(xmlNodePtr xnode, gmlSrs *srs)
Parse gml srsName attribute.
static void gml_lwpgerror(char *msg, __attribute__((__unused__)) int error_code)
References gml_is_srs_axis_order_gis_friendly(), gml_lwpgerror(), gmlGetProp(), struct_gmlSrs::reverse_axis, struct_gmlSrs::srid, and SRID_UNKNOWN.
Referenced by parse_gml(), parse_gml_coll(), parse_gml_curve(), parse_gml_data(), parse_gml_line(), parse_gml_linearring(), parse_gml_mcurve(), parse_gml_mline(), parse_gml_mpoint(), parse_gml_mpoly(), parse_gml_msurface(), parse_gml_patch(), parse_gml_point(), parse_gml_polygon(), parse_gml_psurface(), parse_gml_tin(), and parse_gml_triangle().