115{
118 GEOSGeometry *g1;
119 GEOSGeometry *g2;
121 int retcode;
122
123 geom1 = PG_GETARG_GSERIALIZED_P(0);
124 geom2 = PG_GETARG_GSERIALIZED_P(1);
125
127 PG_RETURN_NULL();
128
130
132 if (!g1)
134
136 if (!g2)
137 {
138 GEOSGeom_destroy(g1);
140 }
141
142 retcode = GEOSHausdorffDistance(g1, g2, &
result);
143 GEOSGeom_destroy(g1);
144 GEOSGeom_destroy(g2);
145
147
148 PG_FREE_IF_COPY(geom1, 0);
149 PG_FREE_IF_COPY(geom2, 1);
150
152}
char result[OUT_DOUBLE_BUFFER_SIZE]
int gserialized_is_empty(const GSERIALIZED *g)
Check if a GSERIALIZED is empty without deserializing first.
void lwgeom_geos_error(const char *fmt,...)
GEOSGeometry * POSTGIS2GEOS(const GSERIALIZED *pglwgeom)
#define HANDLE_GEOS_ERROR(label)