Как лучше организовать построение карт с более 1000 точек?

Делаю сайт, в котором будут использоваться карты, на которых количество точек(маркеров) будет доходить до тысячи и более. Каждый раз делать выборку из БД и строить карту - наверное можно будет повесится. Думаю сделать генерацию по крону XML-файла и уже из него строить карту. Но может есть более элегантные способы уменшить нагрузку на сайт и красиво справиться с данной задачей? Посоветуйте, пожалуйста.
  • Вопрос задан
  • 471 просмотр
Пригласить эксперта
Ответы на вопрос 5
Arris
@Arris
Сапиенсы учатся, играя.
Разницы между "брать из файла" и "брать и базы" по скорости не будет. Из базы может быть даже будет быстрее.

Но на самом деле вам нужна Редиска.
Ответ написан
@summon7300
Backend-разработчик
Редис и какой-то заготовленный xml это лишнее, вот несколько советов:
1. Сделать что-то вроде небольшого api, которое будет возвращать json-массив точек для карты (естественно не все сразу, а с какой-нибудь пагинацией) в ответ на ajax-запрос, и корректно его закешировать.
2. При использовании карты нужно учесть большое кол-во точек (как минимум можно использовать кластеризацию).
3. В яндекс.картах есть специальный менеджер объектов, который поддерживает большое кол-во точек (в одном из проектов я выводил 7000-10000 точек без заметных тормозов на клиенте), в гугл.картах скорее всего тоже есть подобные механизмы.
4. Если точек очень много, то дополнительно можно выводить только те которые попадают в область видимости.
Ответ написан
Комментировать
@kuftachev
На счет xml - это 100% проигрышное решение, так как xml каждый раз нужно парсить. Xml хорош для передачи данных между системами, особенно когда формат сложный.
Важный момент, на сколько часто меняются данные? От этого будет зависеть, как именно из хранить.
На счет того, как отдавать данные, правильный вариант уже сказали, json порциями.
Ответ написан
Комментировать
gadfi
@gadfi
https://gamega.org
а чем запрос для взятия 1000 точек отличается от любого другого запроса ?
Ответ написан
Комментировать
XXXXPro
@XXXXPro
Fullstack Web developer
Использовать БД, которая поддерживает spatial-типы данных (например, PostgresSQL), сделать по ним индексы и подгружать AJAXом только те точки, которые находятся в текущей области видимости.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы