Избавиться от колонок широта и долгота и воспользоваться пространственным расширением для вашей БД. А дальше строите буферы вокруг маршрута и получаете те точки которые в него попали.
На Гислабе полно статей по PostGIS, тема не простая, с наскока можно не осилить
gis-lab.info/docs/postgis/manual/ch06.html
Индекс строят не H3 - это больше для точечных объектов, а GIST
А запросы получаются примерно таких планов, достать дома вдоль дороги не далее 50 "псевдометров":
SELECT hw.highway, hw.name, bld."addr:housenumber", bld.building, hw.way, bld.way FROM planet_osm_line AS hw
INNER JOIN planet_osm_polygon AS bld ON ST_Intersects(ST_Buffer(hw.way, 50), bld.way)
WHERE hw.highway IS NOT NULL AND bld."addr:housenumber" IS NOT NULL
LIMIT 30;