CU_ASSERT_STRING_EQUAL(cu_wkt("POINT(100 100)",WKT_ISO), "POINT(100 100)");
CU_ASSERT_STRING_EQUAL(cu_wkt("POINT(100 100)",WKT_EXTENDED), "POINT(100 100)");
CU_ASSERT_STRING_EQUAL(cu_wkt("POINT(100 100)",WKT_SFSQL), "POINT(100 100)");
-// printf("%s\n",cu_wkt("POINT(100 100)",WKT_SFSQL));
CU_ASSERT_STRING_EQUAL(cu_wkt("POINT(100.1 100 12 12)",WKT_ISO), "POINTZM(100.1 100 12 12)");
CU_ASSERT_STRING_EQUAL(cu_wkt("POINT(100.1 100 12 12)",WKT_EXTENDED), "POINT(100.1 100 12 12)");
CU_ASSERT_STRING_EQUAL(cu_wkt("POINT(100.1 100 12 12)",WKT_SFSQL), "POINT(100.1 100)");
+ CU_ASSERT_STRING_EQUAL(cu_wkt("SRID=100;POINT(100.1 100 12 12)",WKT_SFSQL), "POINT(100.1 100)");
+ CU_ASSERT_STRING_EQUAL(cu_wkt("SRID=100;POINT(100.1 100 12 12)",WKT_EXTENDED), "SRID=100;POINT(100.1 100 12 12)");
+// printf("%s\n",cu_wkt("SRID=100;POINT(100.1 100 12 12)",WKT_EXTENDED));
+
}
static void test_wkt_linestring(void)
extern int32 lwgeom_npoints(uchar *serialized);
/**
-* Return true of false depending on whether a geometry is an "empty"
+* Return true or false depending on whether a geometry has
+* a valid SRID set.
+*/
+extern int lwgeom_has_srid(const LWGEOM *geom);
+
+/**
+* Return true or false depending on whether a geometry is an "empty"
* geometry (no vertices members)
*/
extern int lwgeom_is_empty(const LWGEOM *geom);
if( geom == NULL )
return NULL;
sb = stringbuffer_create();
+ /* Extended mode starts with an "SRID=" section for geoms that have one */
+ if( (variant & WKT_EXTENDED) && lwgeom_has_srid(geom) )
+ {
+ stringbuffer_vasbappend(sb, "SRID=%d;", geom->SRID);
+ }
lwgeom_to_wkt_sb(geom, sb, precision, variant);
if( stringbuffer_getstring(sb) == NULL )
{