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

Miguel de la Fuente mjdelafuente at gmail.com
Wed Jul 20 11:27:13 PDT 2005


Well, the thing is that using dropbbox it works well. Thank you for
your suggestion.
So, what was the problem? why it fail using bounding boxes? and why
when I reload from the backup works?
I'm asking all this questions because I've got to make many queries of
this kind, and in this case I saw it because a query gave me a result
that had no sense, now I don't know if I'll have to use always
dropbbox() or hardly check the result


On 7/19/05, strk at refractions.net <strk at refractions.net> wrote:
> 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
> _______________________________________________
> 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