/* Parser access routines */
extern char *lwgeom_to_ewkt(LWGEOM *lwgeom);
-extern SERIALIZED_LWGEOM *lwgeom_from_ewkt(char *wkt_input);
extern char *lwgeom_to_hexwkb(LWGEOM *lwgeom, unsigned int byteorder);
extern LWGEOM *lwgeom_from_ewkb(uchar *ewkb, size_t ewkblen);
extern uchar *lwgeom_to_ewkb(LWGEOM *lwgeom, char byteorder, size_t *ewkblen);
extern char *serialized_lwgeom_to_ewkt(uchar *serialized);
+extern SERIALIZED_LWGEOM *serialized_lwgeom_from_ewkt(char *wkt_input);
extern char *serialized_lwgeom_to_hexwkb(uchar *serialized, unsigned int byteorder, size_t *size);
extern char *serialized_lwgeom_to_ewkb(uchar *serialized, unsigned int byteorder, size_t *size);
}
-/*
- * Make a LWGEOM object from a WKT input string
- */
-SERIALIZED_LWGEOM *
-lwgeom_from_ewkt(char *wkt_input)
-{
- SERIALIZED_LWGEOM *serialized_form = parse_lwg(wkt_input,
- lwalloc, lwerror);
-
-
- LWDEBUGF(2, "lwgeom_from_ewkt with %s",wkt_input);
-
- if (serialized_form == NULL)
- {
- lwerror("lwgeom_from_ewkt:: couldnt parse!");
- return NULL;
- }
-
- return serialized_form;
-}
-
/*
* Return an alloced string
*/
hexewkb[hexewkblen] = '\0';
/* Rely on grammar parser to construct a LWGEOM */
- serialized_lwgeom = lwgeom_from_ewkt(hexewkb);
+ serialized_lwgeom = serialized_lwgeom_from_ewkt(hexewkb);
/* Free intermediate HEXified representation */
lwfree(hexewkb);
* the function input is already serialized, e.g. some input and output functions
*/
+/*
+ * Make a serialzed LWGEOM object from a WKT input string
+ */
+SERIALIZED_LWGEOM *
+serialized_lwgeom_from_ewkt(char *wkt_input)
+{
+ SERIALIZED_LWGEOM *serialized_form = parse_lwg(wkt_input,
+ lwalloc, lwerror);
+
+
+ LWDEBUGF(2, "serialized_lwgeom_from_ewkt with %s",wkt_input);
+
+ if (serialized_form == NULL)
+ {
+ lwerror("serialized_lwgeom_from_ewkt:: couldnt parse!");
+ return NULL;
+ }
+
+ return serialized_form;
+}
+
/*
* Return an alloced string
*/
Datum LWGEOM_in(PG_FUNCTION_ARGS)
{
char *str = PG_GETARG_CSTRING(0);
- SERIALIZED_LWGEOM *serialized_lwgeom;
- LWGEOM *lwgeom;
- PG_LWGEOM *ret;
+ SERIALIZED_LWGEOM *serialized_lwgeom;
+ LWGEOM *lwgeom;
+ PG_LWGEOM *ret;
/* will handle both HEXEWKB and EWKT */
- serialized_lwgeom = lwgeom_from_ewkt(str);
+ serialized_lwgeom = serialized_lwgeom_from_ewkt(str);
lwgeom = lwgeom_deserialize(serialized_lwgeom->lwgeom);
- ret = pglwgeom_serialize(lwgeom);
+ ret = pglwgeom_serialize(lwgeom);
lwgeom_release(lwgeom);
if ( is_worth_caching_pglwgeom_bbox(ret) )
POSTGIS_DEBUGF(3, "in parse_WKT_lwgeom with input: '%s'",wkt);
- serialized_lwgeom = lwgeom_from_ewkt(wkt);
+ serialized_lwgeom = serialized_lwgeom_from_ewkt(wkt);
lwgeom = lwgeom_deserialize(serialized_lwgeom->lwgeom);
ret = pglwgeom_serialize(lwgeom);
POSTGIS_DEBUGF(3, "wkt: [%s]", wkt);
- serialized_lwgeom = lwgeom_from_ewkt(wkt);
+ serialized_lwgeom = serialized_lwgeom_from_ewkt(wkt);
lwgeom = lwgeom_deserialize(serialized_lwgeom->lwgeom);
if ( lwgeom->SRID != -1 || TYPE_GETZM(lwgeom->type) != 0 )
pglwgeom_from_ewkb(uchar *ewkb, size_t ewkblen)
{
PG_LWGEOM *ret;
- SERIALIZED_LWGEOM *serialized_lwgeom;
+ SERIALIZED_LWGEOM *serialized_lwgeom;
char *hexewkb;
size_t hexewkblen = ewkblen*2;
int i;
}
hexewkb[hexewkblen] = '\0';
- serialized_lwgeom = lwgeom_from_ewkt(hexewkb);
+ serialized_lwgeom = serialized_lwgeom_from_ewkt(hexewkb);
- ret = (PG_LWGEOM *)palloc(serialized_lwgeom->size + VARHDRSZ);
- SET_VARSIZE(ret, serialized_lwgeom->size + VARHDRSZ);
+ ret = (PG_LWGEOM *)palloc(serialized_lwgeom->size + VARHDRSZ);
+ SET_VARSIZE(ret, serialized_lwgeom->size + VARHDRSZ);
memcpy(VARDATA(ret), serialized_lwgeom->lwgeom, serialized_lwgeom->size);
lwfree(hexewkb);