[postgis-users] Empty GeometryCollection and AsSVG
strk at refractions.net
strk at refractions.net
Wed Oct 27 04:43:47 PDT 2004
On Wed, Oct 27, 2004 at 01:40:22PM +0200, Olivier Courtin wrote:
> Hi,
>
> Still playing with AsSVG function, and i met a little problem, with
> query like :
>
> SELECT AsSVG(simplify(the_geom, 1000), 1, 0) FROM my_table;
>
> With some data and with a quite high simplify tolerance parameter, the
> simplify output could be empty. And become a GeometryCollection type...
> And this even if the original type was a Polygon or anything else...
>
> And as AsSVG not handle rightly GeometryCollection type, output
> could be like that :
>
> Row 1) M 572119 -1720173 l 1162 4085 -4360 -567 3198 -3518
> Row 2) GEOMETRYCOLLECTION not yet supported
> Row 3) M 572119 -1720173 l -3198 3518 4360 567 -1162 -4085
> ...
>
>
> I provide below a partial patch for AsSvg who return an empty string if
> GeometryCollection is Empty.
>
> So result will be :
>
> Row 1) M 572119 -1720173 l 1162 4085 -4360 -567 3198 -3518
> Row 2)
> Row 3) M 572119 -1720173 l -3198 3518 4360 567 -1162 -4085
> ...
>
>
> Any better idea ?
What about a NULL ?
--strk;
>
>
>
> diff -u against current cvs head :
>
> --- lwgeom_svg.c 2004-10-27 13:13:12.000000000 +0200
> +++ patched_lwgeom_svg.c 2004-10-27 13:27:13.000000000 +0200
> @@ -92,8 +92,17 @@
>
> if (lwgeom_getType(geometry->type) == COLLECTIONTYPE)
> {
> - result = (char *)palloc(64);
> - sprintf(result, "GEOMETRYCOLLECTION not yet supported");
> + inspected = lwgeom_inspect(SERIALIZED_FORM(geometry));
> +
> + result = (char *)palloc(64);
> +
> + if(inspected->ngeometries == 0){
> + sprintf(result, "%s", "");
> + } else {
> + sprintf(result,
> + "GEOMETRYCOLLECTION not yet supported");
> + }
> +
> return result;
> }
>
>
>
> HTH :)
>
> --
> Ol
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
More information about the postgis-users
mailing list