Hi,

I found the bug !

It wasn't the ST_Dump, but was in the definition of MultiLineString ...

See-ing  the WKT I notice the MultiLineStrings was all like this:

MULTILINESTRING(
        (1678894.55 4826636.25,1678897.55 4826640.38),
        (1678897.55 4826640.38,1678898.8 4826643.69),
        (1678898.8 4826643.69,1678899.51 4826647.72),
        (1678899.51 4826647.72,1678899.42 4826653.53),
        (1678899.42 4826653.53,1678898.82 4826658.83),
        (1678898.82 4826658.83,1678897.59 4826663.34),
        (1678897.59 4826663.34,1678895.56 4826668.36)
)

So when I use the ST_Dump it produce this results:

LINESTRING(1678894.55 4826636.25,1678897.55 4826640.38)
LINESTRING(1678897.55 4826640.38,1678898.8 4826643.69)
LINESTRING(1678898.8 4826643.69,1678899.51 4826647.72)
LINESTRING(1678899.51 4826647.72,1678899.42 4826653.53)
LINESTRING(1678899.42 4826653.53,1678898.82 4826658.83
LINESTRING(1678898.82 4826658.83,1678897.59 4826663.34)
LINESTRING(1678897.59 4826663.34,1678895.56 4826668.36)

So I realized the bug was before...

Because I gave the MultiLineString from a command

ST_Multi(ST_Intersection(ST_Boundary(geom1),ST_Boundary(geom2)))
(where the geoms are polygons.)

See-ing the WKT of this result I notice all the results are MultiLines
Like this:

MULTILINESTRING(
        (1678894.55 4826636.25,1678897.55 4826640.38),
        (1678897.55 4826640.38,1678898.8 4826643.69),
        (1678898.8 4826643.69,1678899.51 4826647.72),
        (1678899.51 4826647.72,1678899.42 4826653.53),
        (1678899.42 4826653.53,1678898.82 4826658.83),
        (1678898.82 4826658.83,1678897.59 4826663.34),
        (1678897.59 4826663.34,1678895.56 4826668.36)
)

But are always multilines of always segments with 2 only vertex !

So to resolve the problem I add an ST_LineMerge

ST_Multi(ST_LineMerge(ST_Intersection(ST_Boundary(a.geom),ST_Boundary(b.geom))))

Now the WKT is:

MULTILINESTRING(
        (
                1678894.55 4826636.25,
                1678897.55 4826640.38,
                1678898.8 4826643.69,
                1678899.51 4826647.72,
                1678899.42 4826653.53,
                1678898.82 4826658.83,
                1678897.59 4826663.34,
                1678895.56 4826668.36
        )
)

And doing the ST_Dump the result of the ST_Dump was:

LINESTRING(
        1678894.55 4826636.25,
        1678897.55 4826640.38,
        1678898.8 4826643.69,
        1678899.51 4826647.72,
        1678899.42 4826653.53,
        1678898.82 4826658.83,
        1678897.59 4826663.34,
        1678895.56 4826668.36
)


Thx for the suggestions ..

Andrea.

/ (ST_Dump(geom)).geom
/>>/ But unfortunately it give me again all segments with only 2 vertex :(
/>>/ />>/ So from 1 MultiLineString with 2 parts each with 20+ vertex give me many
/>>/ LineStrings with only 2 vertex each :(
/
Could we have the example ?


_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to