У меня есть приложение для Android с 500-1000 маркерами. Я использую ClusterManager из android-maps-utils, как показано here, чтобы сгруппировать эти маркеры.Google Map против менеджера кластеров: onCameraChangeListener устарел
В последнем обновлении Служебных услуг Google изменила модель слушателя Карты Google. Значение OnCameraChangeListener
отмечено как устаревшее. Вместо этого есть четыре новых слушателя (OnCameraIdleListener, OnCameraMoveListener, OnCameraMoveStartedListener
, OnCameraMoveCanceledListener
).
С тех пор мое приложение невероятно медленно. Он держится за перемещение/масштабирование карты, процесс кластеризации отстает и требует нескольких секунд.
Я думал, что это поведение, возможно, связано с изменениями в модели слушателя. Поэтому я попытался заменить функцию addOnCameraChangeListener(clustermanager)
новым addOnCameraIdleListener(clustermanager)
. К сожалению, это не работает, так как ClusterManager
не реализует необходимый интерфейс.
И вот здесь странно, потому что текущая версия (0.4.3) ClusterManager
на GitHub действительно реализует этот интерфейс. Так что это должно сработать.
Я импортировать ClusterManager с помощью Gradle:
compile 'com.google.maps.android:android-maps-utils:0.4.3
, но мой локальную версию ClusterManager
все еще, кажется, старый один, который реализует старый OnCameraChangeListener
.
Итак, что здесь не так? Является ли это неправильным поведением Gradle? Есть ли у кого-нибудь идея, как решить эту проблему? И есть ли кто-нибудь еще, чей Google Map/Clusterer медленный и отстающий со времени последнего обновления Служб Службы?
Я ценю любую помощь. Спасибо, парни.
Теперь он отлично работает в версии 4.4 для Android-карт-utils. Когда я разместил этот вопрос, только версия 4.3 была доступна через Gradle (4.4 был только на GitHub). Похоже, кто-то сделал это сейчас. Итак, спасибо Макс, и спасибо «кому-то». ;) – Manuel