PostGIS  2.5.0beta2dev-r@@SVN_REVISION@@

◆ geography_from_text()

Datum geography_from_text ( PG_FUNCTION_ARGS  )

Definition at line 553 of file geography_inout.c.

References geography_from_binary(), struct_lwgeom_parser_result::geom, gserialized_geography_from_lwgeom(), LW_FAILURE, LW_PARSER_CHECK_ALL, lwgeom_free(), lwgeom_parse_wkt(), PG_FUNCTION_INFO_V1(), LWGEOM::srid, and text_to_cstring().

Referenced by geography_as_geojson().

554 {
555  LWGEOM_PARSER_RESULT lwg_parser_result;
556  GSERIALIZED *g_ser = NULL;
557  text *wkt_text = PG_GETARG_TEXT_P(0);
558 
559  /* Extract the cstring from the varlena */
560  char *wkt = text_to_cstring(wkt_text);
561 
562  /* Pass the cstring to the input parser, and magic occurs! */
563  if ( lwgeom_parse_wkt(&lwg_parser_result, wkt, LW_PARSER_CHECK_ALL) == LW_FAILURE )
564  PG_PARSER_ERROR(lwg_parser_result);
565 
566  /* Error on any SRID != default */
567  srid_is_latlong(fcinfo, lwg_parser_result.geom->srid);
568 
569  /* Clean up string */
570  pfree(wkt);
571  g_ser = gserialized_geography_from_lwgeom(lwg_parser_result.geom, -1);
572 
573  /* Clean up temporary object */
574  lwgeom_free(lwg_parser_result.geom);
575 
576  PG_RETURN_POINTER(g_ser);
577 }
char * text_to_cstring(const text *textptr)
void lwgeom_free(LWGEOM *geom)
Definition: lwgeom.c:1144
int32_t srid
Definition: liblwgeom.h:401
#define LW_FAILURE
Definition: liblwgeom.h:78
int lwgeom_parse_wkt(LWGEOM_PARSER_RESULT *parser_result, char *wktstr, int parse_flags)
Parse a WKT geometry string into an LWGEOM structure.
Parser result structure: returns the result of attempting to convert (E)WKT/(E)WKB to LWGEOM...
Definition: liblwgeom.h:2011
GSERIALIZED * gserialized_geography_from_lwgeom(LWGEOM *lwgeom, int32 geog_typmod)
#define LW_PARSER_CHECK_ALL
Definition: liblwgeom.h:2005
Here is the call graph for this function:
Here is the caller graph for this function: