Hi,

I am having some troubles using DWithin when the passed-in distance is 0. My
query should return all geometries that are within or within a given
distance of a rectangle. DWithin works fine as long as the distance not
equals 0. If so, no geometries are returned. If I choose a very small
distance it works somehow.

select AsText(the_geom) from points where ST_DWithin(the_geom,
ST_GeomFromText('POLYGON((-180 -90, 180 -90, 180 90, -180 90, -180 -90))',
4326), 0);
 astext
--------
(0 rows)

select AsText(the_geom) from points where ST_DWithin(the_geom,
ST_GeomFromText('POLYGON((-180 -90, 180 -90, 180 90, -180 90, -180 -90))',
4326), 0.000000000000000000000000000000000000000000000000000001);
            astext
-------------------------------
 POINT(56.25 32.34375)
 POINT(-45 47.8125)
 POINT(-26.71875 -54.140625)
 POINT(116.3671875 61.171875)
 POINT(131.8359375 -21.796875)
(5 rows)


I am using version 1.3.3, so according to the manual [1] and this workshop
[2], ST_DWithin is just translated into a combination of ST_Expand, && and
ST_Distance. But if I make a query that looks like the definition of
ST_DWithin, the points are returned.

select AsText(the_geom) from points
where
  the_geom && ST_Expand(GeomFromText('POLYGON((-180 -90, 180 -90, 180 90,
-180 90, -180 -90))', 4326), 0)
AND
  GeomFromText('POLYGON((-180 -90, 180 -90, 180 90, -180 90, -180 -90))',
4326) && ST_Expand(the_geom, 0)
AND
  ST_Distance(the_geom, GeomFromText('POLYGON((-180 -90, 180 -90, 180 90,
-180 90, -180 -90))', 4326)) <= 0;
            astext
-------------------------------
 POINT(56.25 32.34375)
 POINT(-45 47.8125)
 POINT(-26.71875 -54.140625)
 POINT(116.3671875 61.171875)
 POINT(131.8359375 -21.796875)
(5 rows)


Is this behaviour intented?

Thank you,
Tobias


[1]: http://www.postgis.org/documentation/manual-1.5/ST_DWithin.html
[2]: http://workshops.opengeo.org/postgis-spatialdbtips/click-analyze.html
_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to