[postgis-tickets] [PostGIS] #2422: geography regression difference ST_DWithin

PostGIS trac at osgeo.org
Fri Jan 31 20:22:24 PST 2014


#2422: geography regression difference ST_DWithin
---------------------+------------------------------------------------------
 Reporter:  robe     |       Owner:  pramsey      
     Type:  defect   |      Status:  new          
 Priority:  high     |   Milestone:  PostGIS 2.1.2
Component:  postgis  |     Version:  2.1.x        
 Keywords:           |  
---------------------+------------------------------------------------------

Comment(by robe):

 Hey I think this might be the same issue I am having here:  This is a
 really sweet short example this guy provided to reproduce:

 http://lists.osgeo.org/pipermail/postgis-users/2014-January/038619.html

 email message added below.  I was able to reproduce issue on my windows 7
 64-bit running POSTGIS="2.2.0dev r12204" GEOS="3.4.2-CAPI-1.8.2 r3924"
 PROJ="Rel. 4.8.0, 6 March 2012" GDAL="GDAL 1.10.0, released 2013/04/24"
 LIBXML="2.7.8" LIBJSON="UNKNOWN" RASTER
 {{{
 Hello,

 I am using Ubuntu 12.04 with the official PostgreSQL apt repo (via
 https://wiki.postgresql.org/wiki/Apt).  I am running into an easily
 reproducible issue, and was hoping for some help to solve this.

 When using ST_Intersects() not all rows that intersect are returned.  This
 was not the case in previous versions that we have upgraded from.

 These are the steps to reproduce on a fresh install of Ubuntu 12.04 with
 all packages updated and PostGIS/PostgreSQL 9.3 installed:

 test=# CREATE TABLE test (id serial, condition_geo geography);
 CREATE TABLE
 test=# INSERT INTO test (condition_geo) VALUES
 (ST_Buffer(ST_GeogFromWKB(ST_MakePoint(20.0,30.0)),10.0));
 INSERT 0 1
 test=# SELECT id FROM test WHERE ST_Intersects("condition_geo",
 ST_Buffer(ST_GeogFromText('POINT(20.0 30.0)'), 20.0)) IS TRUE;
  id
 ----
   1
 (1 row)

 test=# INSERT INTO test (condition_geo) VALUES
 (ST_Buffer(ST_GeogFromWKB(ST_MakePoint(20.0,30.0)),10.0));
 INSERT 0 1
 test=# SELECT id FROM test WHERE ST_Intersects("condition_geo",
 ST_Buffer(ST_GeogFromText('POINT(20.0 30.0)'), 20.0)) IS TRUE;
  id
 ----
   1
 (1 row)

 test=# SELECT id FROM test WHERE ST_Intersects("condition_geo",
 ST_Buffer(ST_GeogFromText('POINT(20.0 30.0)'), 20.0)) IS TRUE AND id = 2;
  id
 ----
   2
 (1 row)

 Note that the SELECT should return both rows 1 and 2 in the first SELECT.

 Any thoughts?
 }}}

-- 
Ticket URL: <http://trac.osgeo.org/postgis/ticket/2422#comment:28>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.


More information about the postgis-tickets mailing list