Здравствуйте Разработчики!
У меня есть задача: вывести 100 тысяч маркеров на карте в мобильном приложении.
Буду вам признателен, если поделитесь свои опытом со мной и подскажете, как сделать плавное отображение маркеров на карте.
вывод всех маркеров по запрошенному квадрату
Приложение высылает top_left и bottom_right видимой зоны карты, API возвращает все маркеры.
Этот подход печальный, потому что сервер отдает маркеры не так быстро, как хотелось, и объем передаваемых данных не маленький:
8307 маркеров
Time: 1737 ms
Size: 423.41 KB
Мобильное приложение группирует маркеры не так шустро, как хотелось бы. К тому же, не хотелось бы тратить ресурсы мобильного телефона на это.
Этот вариант был сразу отвергнут.
вывод сгруппированных маркеров по запрошенному квадрату
При таких же top_left и bottom_right сервер возвращает сгруппированные маркеры.
335 маркеров
Time: 197 ms
Size: 25.5 KB
После этого решил остановится на серверном варианте кластеризации.
На данный момент проблема в том, что приложение отсылает запрос на сервер, даже если карту сдвинуть карту на 1px. Это выглядит очень некрасиво.
Посмотрите, пожалуйста, запись:
https://youtu.be/UoFGL4MmSJE
Я предполагаю что надо запрашивать данные по квадрату в два раза больше видимой области карты и отправлять запрос тогда, когда видимая область выходит за рамки квадрата с маркерами.
Может быть, есть какие-то готовые библиотеки которые реализуют это?