Есть стандартный поисковый запрос SELECT SQL_CALC_FOUND_ROWS, возвращающий, разумеется, число найденных объектов и по лимиту (постранично) сами эти результаты.
При этом на карте хочется визуализировать в виде кластеров сразу все результаты поиска.
Вопрос: как правильно организовать логику работу кластеризатора геобъектов и запрашивать данные на бэкенде.
Уточняю:
Стандартный запрос с limit возвращает первые 10-15 элементов. Для построения же кластеров нужно выбирать координаты всех объектов удовлетворяющих критериям поиска (либо показывать вообще 1 метку кластера с числом результатов на всю карту, что не правильно).
После отбора всех координат мы уже кластеризуем метки в дистанции, к примеру, 1 км, далее 300 метров, далее 50 метров, далее по 1 адресу. По аякс-запросу отдаём содержимое кластеров — новые кластеры либо отдельные метки, с этим проблем нет.
Вопрос именно в получении первичного набора данных.
Каков оптимальный выход? Всегда делать отдельный запрос для геометок? Дорого. Фактически это такой же запрос, как для ленты объектов со всеми joinами, только без лимита и с меньшим набором данных (1 поле). Боюсь что альтернативы в общем-то и нет и придётся делать отдельный запрос. (Отредактировано автором: 30 Июня, 2014 - 16:41:14)
|