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

Reply via email to