[postgis-users] ST_contains() throws an error

Martin Davis mbdavis at refractions.net
Wed Jan 2 08:44:09 PST 2008


Can you supply the WKT or WKB for the geometries which cause the error?

James DeMichele wrote:
> Yeah, I thought of the same thing as well, but got the same error.
>
> -Jamie
>
> -----Original Message-----
> From: postgis-users-bounces at postgis.refractions.net
> [mailto:postgis-users-bounces at postgis.refractions.net] On Behalf Of
> Martin Davis
> Sent: Monday, December 31, 2007 2:19 PM
> To: PostGIS Users Discussion
> Subject: Re: [postgis-users] ST_contains() throws an error
>
> It seems to me that you can't rely on the query engine either evaluating
>
> the where conditions in the order you specify them or using 
> short-circuit evaluation. Perhaps try rewriting the query:
>
> select count(*) from
> (select * from temp_places buffer
> where st_isvalid(new_poly) = true and st_isvalid(redfin_poly) = true)
> )
> where not st_contains(t1.new_poly, t1.redfin_poly)
>
> James DeMichele wrote:
>   
>> Hi,
>>
>> I have a table with 27000 records and each record has 2 geometry 
>> columns. The first column has an original MULTIPOLYGON (named 
>> original_poly), and the second column has some tweaks (buffer and 
>> simplification) applied to the original data, and is also stored as a 
>> MULTIPOLYGON (named new_poly).
>>
>> I want to get the list of these rows where the new_poly does NOT 
>> contain the original_poly. The first time I ran it, I got this: 
>> "ERROR: GEOS contains() threw an error!"
>>
>> So, then I thought that maybe some of the polygons were not valid. 
>> There were 6 invalid polygons, so then I tried running this query:
>>
>> select count(*)
>>
>> from temp_places_buffer
>>
>> where(st_isvalid(new_poly) = true and st_isvalid(redfin_poly) = true)
>>
>> and not st_contains(t1.new_poly, t1.redfin_poly);
>>
>> Unfortunately, I still get this error:
>>
>> ERROR: GEOS contains() threw an error!
>>
>> What are possible reasons that this would still be throwing an error, 
>> other than invalid polygons, since the query should now only be 
>> calculating st_contains on valid polygons?
>>
>> I am running this version:
>>
>> postgis_version
>>
>> ---------------------------------------
>>
>> 1.3 USE_GEOS=1 USE_PROJ=1 USE_STATS=1
>>
>> Thanks.
>>
>> -James
>>
>>
>>     
> ------------------------------------------------------------------------
>   
>> _______________________________________________
>> postgis-users mailing list
>> postgis-users at postgis.refractions.net
>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>>   
>>     
>
>   

-- 
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022




More information about the postgis-users mailing list