PostGIS  2.4.9dev-r@@SVN_REVISION@@

◆ test_lwgeom_locate_along()

static void test_lwgeom_locate_along ( void  )
static

Definition at line 502 of file cu_measures.c.

References LW_PARSER_CHECK_NONE, lwfree(), lwgeom_free(), lwgeom_from_wkt(), lwgeom_locate_along(), lwgeom_to_wkt(), and WKT_ISO.

Referenced by measures_suite_setup().

503 {
504  LWGEOM *geom = NULL;
505  LWGEOM *out = NULL;
506  double measure = 105.0;
507  char *str;
508 
509  /* ST_Locatealong(ST_GeomFromText('MULTILINESTRING M ((1 2 3, 5 4 5), (50 50 1, 60 60 200))'), 105) */
510  geom = lwgeom_from_wkt("MULTILINESTRING M ((1 2 3, 5 4 5), (50 50 1, 60 60 200))", LW_PARSER_CHECK_NONE);
511  out = lwgeom_locate_along(geom, measure, 0.0);
512  str = lwgeom_to_wkt(out, WKT_ISO, 8, NULL);
513  lwgeom_free(geom);
514  lwgeom_free(out);
515  CU_ASSERT_STRING_EQUAL("MULTIPOINT M (55.226131 55.226131 105)", str);
516  lwfree(str);
517 
518  /* ST_Locatealong(ST_GeomFromText('MULTILINESTRING M ((1 2 3, 5 4 5), (50 50 1, 60 60 200))'), 105) */
519  geom = lwgeom_from_wkt("MULTILINESTRING M ((1 2 3, 3 4 2, 9 4 3), (1 2 3, 5 4 5), (50 50 1, 60 60 200))", LW_PARSER_CHECK_NONE);
520  out = lwgeom_locate_along(geom, measure, 0.0);
521  str = lwgeom_to_wkt(out, WKT_ISO, 8, NULL);
522  lwgeom_free(geom);
523  lwgeom_free(out);
524  CU_ASSERT_STRING_EQUAL("MULTIPOINT M (55.226131 55.226131 105)", str);
525  lwfree(str);
526 }
char * lwgeom_to_wkt(const LWGEOM *geom, uint8_t variant, int precision, size_t *size_out)
WKT emitter function.
Definition: lwout_wkt.c:669
void lwfree(void *mem)
Definition: lwutil.c:244
void lwgeom_free(LWGEOM *geom)
Definition: lwgeom.c:1099
LWGEOM * lwgeom_from_wkt(const char *wkt, const char check)
Definition: lwin_wkt.c:904
#define LW_PARSER_CHECK_NONE
Definition: liblwgeom.h:2013
#define WKT_ISO
Definition: liblwgeom.h:2083
LWGEOM * lwgeom_locate_along(const LWGEOM *lwin, double m, double offset)
Determine the location(s) along a measured line where m occurs and return as a multipoint.
Here is the call graph for this function:
Here is the caller graph for this function: