2015-06-09 3 views
0

У меня есть база данных, содержащая большое количество горячих точек, которые я хочу отобразить (~ 20 000, распространяется по одной стране). Очевидно, что добавление всех этих данных сразу вызывает огромную нагрузку на устройство, поэтому я пытаюсь найти альтернативные решения.Добавление горячих точек с одинаковыми длинными/длинными (с большим количеством горячих точек)

В настоящее время я использую прослушиватель onCameraChange для уведомления, когда пользователь переместил приложение, а затем загружает только горячие точки, которые находятся в видимой области экрана. Однако, если пользователь перемещает карту только на небольшую сумму, будут добавлены дублирующие горячие точки. Является ли Google Maps достаточно умным, чтобы не добавлять дублирующую точку доступа?

Чтобы избежать этого, я вызывал clear() на карте каждый раз, когда пользователь перемещался, а затем снова загружал горячие точки. Однако, если пользователь нажимает на точку доступа, чтобы просмотреть связанный заголовок, тогда карта сосредотачивается на ней, заставляя карту перемещаться и очищаться, а затем считывать горячую точку, которая мгновенно скрывает заголовок.

Каким будет оптимальное решение проблемы с этой проблемой? Спасибо

ответ

0

Я бы не «очистил» и «прочитал» маркеры, а просто спрячу их. Вместо добавления точек, просто установите его видимым, если находится внутри видимой области, установить его не видно иначе https://developers.google.com/android/reference/com/google/android/gms/maps/model/Marker#setVisible(boolean)

Я хотел бы предложить вам исследовать маркерные кластеры в этой библиотеке: https://github.com/googlemaps/android-maps-utils

+0

Проблема I «Я нахожу, что если я добавлю все из них заранее (поскольку я сделал бы их видимыми/не видимыми), я должен добавить 20 000 за один раз, что занимает много времени и не позволяет пользовательскому интерфейсу отвечать. Я надеялся уменьшить это, добавив только те, которые мне нужны. Я попытался использовать кластеры, но столкнулся с одной и той же проблемой (потребовалось много времени, чтобы сделать их изначально). – Michael

+0

Итак, вы можете использовать какую-то «разбивку на страницы», например, добавлять и показывать некоторые, и разрешать пользователю «загружать больше»? Я не думаю, что есть способ показать 20-килограммовую точку с нулевым запаздыванием ... –

Смежные вопросы