Найти ближайшие точки вдоль строки в указанном порядке и пределе расстояния

У меня есть такая проблема, и я был бы рад, если бы кто-нибудь мог мне помочь. У меня есть таблица баллов с индексом GIST. Эти точки не меняются во времени.

Я хотел бы получить точки, которые находятся рядом с некоторой заданной строкой. Пример :Представьте, что линия — это дорога, а точки — точки вдоль дороги. Я хотел бы получить пои, которые находятся на расстоянии 5 км от данной дороги. Я хотел бы получить эти пои в правильном порядке (в порядке движения по дороге ). Посмотрите на изображение:

image

Для заданной дороги от точки 1 до точки 5 я хотел бы получить POI, которые находятся на расстоянии не более 5 км от дороги и в порядке от точки 1 до точки 5 вдоль дороги. Таким образом, результат должен быть:

POI_ID
1
5
6
8
9
10
12
13

Это должно сказать мне, какие POI я могу посетить во время путешествия по дороге с минимальными затратами.

У кого-нибудь есть идеи, как это сделать с помощью postgres и postgis?

9
задан Marcin Kapusta 24 April 2012 в 06:41
поделиться