Paul & Ben J.
I found a quick solution for this "Contains" problem. These 3 lines below should be deleted to fix this bug. source/geom/Geomtry.cpp bool Geometry::contains(const Geometry *g) const { . . . if (isRectangle()) { return predicate::RectangleContains::contains((Polygon&)*this, *g); } // Delete from here if (g->isRectangle()) { return predicate::RectangleContains::contains((const Polygon&)*g, *this); } // Delete until here . . } The reason why I thought of deleting these 3 lines was: The 1st argument should be passed as the 2nd argument, and the 2nd argument should be passed as the 1st argument, because it should varify if *this contains *g. Not the other way around. BUT, predicate::RectangleContains::contains method accepts the 1st argument only being a rectangle. So, passing *this as the 1st argument is not acceptable since *this is not guaranteed as a rectangle; it is just a geometry. I will put this info to the below site, too. http://trac.osgeo.org/geos/ What do you think about the solution? I need your feedbacks. Good Day, KXK 2008/1/18, KXK <[EMAIL PROTECTED]>: > Paul > > > Thanx for a quick reply. > > At http://trac.osgeo.org/geos, I issued a ticket whose number is #171. > > > KXK > > 2008/1/18, Paul Ramsey <[EMAIL PROTECTED]>: > > I think this must be arising in the "I'm a box so I can short-circuit > > full computation" code. The error displays with different combinations > > of square and non-square arguments. > > > > On Jan 17, 2008, at 7:55 PM, Paul Ramsey wrote: > > > > > I just confirmed this behavior. true/true on geos 2.2 true/false on > > > geos 3.0. > > > Please file this at http://trac.osgeo.org/geos, it's real, and it's > > > not right. > > > > > > P > > > > > > On Jan 17, 2008, at 7:35 PM, KXK wrote: > > > > > >> SELECT > > >> ST_Contains( > > >> GeomFromText('POLYGON((0 0,0 10,10 10,10 0,0 0))', -1), > > >> GeomFromText('POLYGON((5 5,5 6,6 6,6 5,5 5))', -1) ); > > >> > > >> returns TRUE > > >> > > >> > > >> But, > > >> > > >> SELECT > > >> ST_Contains( > > >> GeomFromText('POLYGON((0 0,0 11,11 10,10 0,0 0))', -1), > > >> GeomFromText('POLYGON((5 5,5 6,6 6,6 5,5 5))', -1) ); > > >> > > >> returns FALSE > > >> > > >> I thought the above would also return TRUE. > > >> > > >> > > >> Is this behavior of ST_Contains correct? > > >> > > >> [VERSION INFORMATION] > > >> OS: fc6 > > >> PostgreSQL: 8.2.4 > > >> PostGIS: 1.2 > > >> GEOS: 3.0.0 > > >> _______________________________________________ > > >> postgis-users mailing list > > >> [EMAIL PROTECTED] > > >> http://postgis.refractions.net/mailman/listinfo/postgis-users > > > > > > _______________________________________________ > > > geos-devel mailing list > > > geos-devel@lists.osgeo.org > > > http://lists.osgeo.org/mailman/listinfo/geos-devel > > > > _______________________________________________ > > geos-devel mailing list > > geos-devel@lists.osgeo.org > > http://lists.osgeo.org/mailman/listinfo/geos-devel > > > _______________________________________________ geos-devel mailing list geos-devel@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/geos-devel