Обсуждение: calculating extent on basis of distance from a given point

Поиск
Список
Период
Сортировка

calculating extent on basis of distance from a given point

От
User Map
Дата:
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.

Re: calculating extent on basis of distance from a given point

От
"Scott Marlowe"
Дата:
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.