Jaakko Salli wrote: > Sean Gillies wrote: >> Jaakko Salli wrote: >>> [EMAIL PROTECTED] wrote: >>>>> Jaakko Salli wrote: >>>>>> Brent Pedersen wrote: >>>>>>> On Wed, Jun 25, 2008 at 8:52 AM, Jaakko Salli <[EMAIL PROTECTED]> >>>>>>> wrote: >>>>>>>> Hi all, >>>>>>>> >>>>>>>> I have encountered strange problem with Polygon.contains(Point). It >>>>>>>> seems it stops functioning correctly after being called 21 times. At >>>>>>>> that point, instead of checking if point is inside the polygon, it >>>>>>>> just >>>>>>>> check if it is inside polygon's bounding box. >>>>>>>> >>>>>>>> Here is code to reproduce the issue (I have tried it with Python 2.5.2 >>>>>>>> and Shapely SVN trunk): >>>>>>>> >>>>>>>> from shapely.geometry import Point, Polygon >>>>>>>> >>>>>>>> # Form a 'L' shaped polygon >>>>>>>> points = [(0.0, 0.0), >>>>>>>> (1.0, 0.0), >>>>>>>> (1.0, 1.0), >>>>>>>> (2.0, 1.0), >>>>>>>> (2.0, 2.0), >>>>>>>> (0.0, 2.0), >>>>>>>> (0.0, 0.0)] >>>>>>>> >>>>>>>> poly = Polygon(points) >>>>>>>> >>>>>>>> # Create point that should be outside polygon, but >>>>>>>> # inside its bounding box >>>>>>>> pt_outside_but_inside_bbox = Point(1.5, 0.5) >>>>>>>> >>>>>>>> # Create point that should be outside polygon, >>>>>>>> # even outside its bounding box >>>>>>>> pt_outside_even_bbox = Point(2.5, 0.5) >>>>>>>> >>>>>>>> # At iteration number 22, poly.contains effectively becomes >>>>>>>> # poly_bounding_box.contains >>>>>>>> for i in range(1,100): >>>>>>>> res1 = poly.contains(pt_outside_but_inside_bbox) >>>>>>>> res2 = poly.contains(pt_outside_even_bbox) >>>>>>>> print '#%i: poly.contains(pt_outside_but_inside_bbox) = %s'%(i, >>>>>>>> res1) >>>>>>>> print ' poly.contains(pt_outside_even_bbox) = %s'%(res2) >>>>>>>> if res1 != False: >>>>>>>> print "poly.contains failed at try #%i!"%(i) >>>>>>>> break >>>>>>>> >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Jaakko Salli >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Community mailing list >>>>>>>> [email protected] >>>>>>>> http://lists.gispython.org/mailman/listinfo/community >>>>>>>> >>>>>>> thankfully, i dont see this with r1117. that scared me. >>>>>>> even upped the range to 100K and no problems. >>>>>>> fwiw, i'm using geos 3.0.0, not an rc... >>>>>> I'm using the geos DLL provided with the Windows installer >>>>>> (also using Windows XP SP2, if that matters). >>>>> I have now built geos 3.0.0 DLL with msys+MingW32. Seems to have fixed >>>>> the issue. >>>>> >>>>> Sorry for bothering :) >>>>> >>>>> Thanks, >>>>> Jaakko >>>> Jaakko, would you be willing to put that DLL online so I can download and >>>> compare it to the one I am distributing? >>> Here you go: >>> >>> http://personal.inet.fi/private/jmsalli/geos_dlls.zip >>> >>> I didn't use any configure options, but did run 'strip -d' after make was >>> done. >>> >>> Jaakko >> Jaakko, >> >> I'm back in my office, trying to reproduce the problem, and have run >> into something that disturbs me ... >> >> Save the attached doctest file and run it like >> >> >>> import doctest >> >>> doctest.testfile('ops-repeat.txt') >> >> On Linux (w/ Python 2.5, GEOS 3.0) the test passes. The test also passes >> when I use your new DLLs. I can confirm that if I use the geos.dll I >> have been distributing, the test fails on the 22nd interation. I have no >> idea WTF is going on in that case :( >> >> I'm not a Windows platform expert at all ... will your DLLs work on all >> Win32 systems? I'm testing on Windows 2000 here. >> >> Cheers, >> Sean > Sorry, I can only test with XP, but since it works on your Windows 2000 > I can't think of any reason why low-level stuff like this would not work > on all modern NT-based versions of Windows (ie. Win2K and later). > Win95-based ones are another matter, although I still think that it will > work. > > One thing however: On Windows, Python 2.5 extensions are supposed to be > built with Visual C++ 7, but your included makefile failed for me. So, I > tried mingw, and was surprised that the resulting DLLs worked. Mingw > links with the same CRT as VC7, so that probably helped. > > Jaakko
Jaakko, I'd like to use your DLLs for future Shapely windows installers. Can the size of the second be reduced at all? Sean _______________________________________________ Community mailing list [email protected] http://lists.gispython.org/mailman/listinfo/community
