Return 1 if the SRS definition from the authority has a GIS friendly order, that is easting,northing.
This is typically true for most projected CRS (but not all!), and this is false for EPSG geographic CRS.
426 int is_axis_order_gis_friendly, err;
428 if (SPI_OK_CONNECT != SPI_connect ())
429 lwpgerror(
"gml_is_srs_axis_order_gis_friendly: could not connect to SPI manager");
431 sprintf(query,
"SELECT srtext \
432 FROM spatial_ref_sys WHERE srid='%d'", srid);
434 err = SPI_exec(query, 1);
435 if (err < 0) lwpgerror(
"gml_is_srs_axis_order_gis_friendly: error executing query %d", err);
438 if (SPI_processed <= 0)
444 srtext = SPI_getvalue(SPI_tuptable->vals[0], SPI_tuptable->tupdesc, 1);
446 is_axis_order_gis_friendly = 1;
447 if (srtext && srtext[0] !=
'\0')
450 char* srtext_horizontal = (
char*)
malloc(strlen(srtext) + 1);
451 strcpy(srtext_horizontal, srtext);
454 ptr = strstr(srtext_horizontal,
",VERT_CS[");
458 if( strstr(srtext_horizontal,
"AXIS[") == NULL &&
459 strstr(srtext_horizontal,
"GEOCCS[") == NULL )
464 is_axis_order_gis_friendly = 0;
466 else if( strstr(srtext_horizontal,
467 "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]") != NULL )
469 is_axis_order_gis_friendly = 0;
471 else if( strstr(srtext_horizontal,
472 "AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST]") != NULL )
474 is_axis_order_gis_friendly = 0;
476 else if( strstr(srtext_horizontal,
477 "AXIS[\"geodetic latitude (Lat)\",north,ORDER[1]") != NULL )
479 is_axis_order_gis_friendly = 0;
482 free(srtext_horizontal);
486 return is_axis_order_gis_friendly;