[postgis-users] Re: two different geometries with the same Astext

strk at refractions.net strk at refractions.net
Tue Jul 19 07:18:01 PDT 2005


Would you try within(dropbbox(g1), dropbbox(g2)) ?
You would be skipping a bbox-based short-circuit test in postgis,
which is the only thing comes to my mind in your latest dump/reload
example.

--strk;

On Tue, Jul 19, 2005 at 10:35:36AM -0300, Miguel de la Fuente wrote:
> Thanks to everybory for your answers.
> 
> I'll try to make a better description of the problem an what I made
> related to your answer.
> 
> To simplify the problem for you to analize it, I first extracted an
> example from the source tables to a new table with a SELECT command:
> 
> select 
> a.the_geom as g1,
> b.the_geom as g2
> into pru
> from p107_fm_co a, p107_mz_co b 
> where a.gid=618 and b.gid=2
> 
> and the I ran the following
> 
> select astext(g1),astext(g2),
> within(geometryfromtext(astext(g1)),geometryfromtext(astext(g2)))as w1,
> within(g1,g2) as w2
> from pru
> 
> and I got
> 
> --"MULTILINESTRING((5256301.4 6014697.56,5256369.25
> 6014741.46))";"MULTILINESTRING((5256369.25 6014741.46,5256456.23
> 6014607.03,5256388.39 6014563.13,5256301.4 6014697.56,5256369.25
> 6014741.46))";t;f
> 
> as you could see the first within return TRUE and the second return
> FALSE and that is what I can't understand

> 
> But, the worst thing of all is that when I made a backup of the table
> to attach it this message I got this:
> 
> CREATE TABLE pru (g1 geometry, g2 geometry);
> ALTER TABLE public.pru OWNER TO postgres;
> INSERT INTO pru (g1, g2) VALUES
> ('0105000000010000000102000000020000009A9999591B0D54413D0AD763BAF15641000000502C0D5441D7A3705DC5F15641',
> '010500000001000000010200000005000000000000502C0D5441D7A3705DC5F15641EC51B80E420D54411F85EBC1A3F156418FC2F518310D544185EB51C898F156419A9999591B0D54413D0AD763BAF15641000000502C0D5441D7A3705DC5F15641');
> 
> I dropped the table made with the SELECT command described above and
> re-created the table running this script.
> And the I run:
> 
> select astext(g1),astext(g2),
> within(geometryfromtext(astext(g1)),geometryfromtext(astext(g2)))as w1,
> within(g1,g2) as w2
> from pru
> 
> again and I got
> 
> --"MULTILINESTRING((5256301.4 6014697.56,5256369.25
> 6014741.46))";"MULTILINESTRING((5256369.25 6014741.46,5256456.23
> 6014607.03,5256388.39 6014563.13,5256301.4 6014697.56,5256369.25
> 6014741.46))";t;t
> 
> with both withins returning TRUE !!!!!
> 
> I'm really LOST!
> _______________________________________________
> 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