calculating extent on basis of distance from a given point

Started by User Mapalmost 18 years ago2 messagesgeneral
Jump to latest
#1User Map
map.user@yahoo.com

hi,
i have OSGB36 data in postgre, srid 27700. what i want to do is to calculate the extent on basis of the distance from a given point. i have geom of type geometry in the table, from which to calculate extent. i have tried the funtions Distance(geom,geom)<50, but it is too slow, as it uses no index. i have calculated the point from the polygon by function Centroid(geom), but i think its not working properly, as i am also testing it with the mapserver map and map saclebar, they are not matching exactly.
the main isuue is of the time the distance query is taking.
is there any why to do this quickly.

#2Scott Marlowe
scott.marlowe@gmail.com
In reply to: User Map (#1)
Re: calculating extent on basis of distance from a given point

On Thu, May 15, 2008 at 5:34 AM, User Map <map.user@yahoo.com> wrote:

hi,
i have OSGB36 data in postgre, srid 27700. what i want to do is to calculate
the extent on basis of the distance from a given point. i have geom of type
geometry in the table, from which to calculate extent. i have tried the
funtions Distance(geom,geom)<50, but it is too slow, as it uses no index. i
have calculated the point from the polygon by function Centroid(geom), but i
think its not working properly, as i am also testing it with the mapserver
map and map saclebar, they are not matching exactly.
the main isuue is of the time the distance query is taking.
is there any why to do this quickly.

The usual method is to use a simple bounding box which can be indexed
to reduce the number of comparisons you need to make with the distance
function. I.e. if you've got a radius of 50 to searc withing, set up
a square 100 on a side centered on one of the points, and that with
the distance(x,y) and you should be able to get good performance.