Znajdź najbliższe punkty wzdłuż linestingu w określonym limicie odległości i kolejności

Mam taki problem i byłbym miły Gdyby ktoś mógł mi pomóc. Mam tabelę punktów z indeksem GIST. Te punkty nie zmieniają się w czasie.

Chciałbym pobrać punkty, które są w pobliżu danego linestingu. Przykład: Wyobraź sobie, że linesting to droga, a punkty są poi wzdłuż drogi. Chciałbym przynieść poi, które są w odległości 5 km od danej drogi. Chciałbym przynieść te poi we właściwej kolejności (porządek jazdy po drodze). Spójrz na zdjęcie:

Dla danej drogi z punktu 1 do 5 chciałbym pobrać POI, które są w odległości 5 km od drogi iw kolejności od punktu 1 do 5 wzdłuż drogi. Tak więc wynik powinien być:

POI_ID
1
5
6
8
9
10
12
13

To powinno mi powiedzieć, jakie POI mogę odwiedzić podczas podróży po drodze przy minimalnych kosztach.

Czy ktoś ma jakieś pomysły, jak to zrobić z postgres i postgis?