andreich
@andreich

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

Здравствуйте!
Есть необходимость добавить на карту большое колличесво маркеров(больше 3000).
Как я видел решение проблемы:
1) Разбить список на равные части, например по 300 элементов, и для каждой части вести поиск тех, которые входят в область видимости в AsynkTask и отображать их. Я проверил этот способ, он оказался медленным, т.к. добавление одного элемента занимает много времени, а т.к. это происходит еще и в UI потоке, то получаются тормоза.
2) Добавить все элементы сразу на карту, но сделать их невидимыми, хранить список добавленных маркеров, и уже работать только над установкой видимости нужных элементов. Тут оказалась другая проблема: момент добавления происходит также в основном потоке, поэтому жаже если и показывать прогресс, то он получается рывками. И при скроле карты так же происходят рывки, так как работа с маркерами происходит в UI потоке.
Все действие происходит с участием Google Maps API v2.

Может у кого-то была схожая задача или есть идеи, как сделать? Поделитесь опытом.
  • Вопрос задан
  • 2994 просмотра
Решения вопроса 1
andreich
@andreich Автор вопроса
Кластеризация - это не мой случай, так как при определенном зуме я просто не отображаю элементы.
Проблемы с лагами решила библиотека Android Maps Extensions.
Видимо так оптимизировано отображение маркеров.
В связке с бибилиотекой я использую второй вариант действий из своего вопроса.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
iskros
@iskros
Руководитель проектов
Фильтровать маркеры было бы хорошей идеей
Ответ написан
Комментировать
erakitin
@erakitin
В таких случаях следует использовать кластеризацию.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы