Лучшие практики при кластеризации большого количества маркеров в Google Maps Android V2

Я хотел бы показать большое количество маркеров (50k +) на карте Google. Как оказалось, при кластеризации маркеров выбрана библиотека Utility для Android Maps https://github.com/googlemaps/android-maps-utils .

Мне было интересно, существуют ли какие-либо рекомендации, чтобы повысить производительность работы пользователя карты, показывая такое огромное количество маркеров.

пример

В качестве примера я использовал диспетчер кластеров для добавления около 20 000 маркеров в диспетчер кластеров, что привело к не очень приятному взаимодействию с картой при масштабировании и панорамировании карты.

То, что я использовал:

GridBasedAlgorithm<MyClusterItem> gridAlgorithm = new GridBasedAlgorithm<MyClusterItem>(); mClusterManager.setAlgorithm(new PreCachingAlgorithmDecorator<MyClusterItem>(gridAlgorithm)); 

Мои стратегии :

1) Удалите все маркеры из кластера при событии смены камеры, затем добавьте только те, которые находятся в пределах видимости. Отлично работает на высоком уровне масштабирования, когда уровень масштабирования снижается, есть много меток для удаления и добавления, добавляя накладные расходы для всего процесса кластеризации

2) Добавление всех маркеров в первую очередь.

  • 100 маркеров => отлично работает
  • 1000 Markers => Работает, но уже проявляет медлительность в процессе кластеризации, когда происходит уменьшение
  • 10000 Markers => Уже очень медленное поведение, долгое время для повторной кластеризации маркеров, а масштабирование – не гладкое
  • 20000 Markers => Re кластеризация занимает очень много времени (> 20 секунд), карта не реагирует

Solutions Collecting From Web of "Лучшие практики при кластеризации большого количества маркеров в Google Maps Android V2"