4

У меня есть приложение для 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 медленный и отстающий со времени последнего обновления Служб Службы?

Я ценю любую помощь. Спасибо, парни.

ответ

20

Вам необходимо использовать gooleMap.setOnCameraIdleListener (mClusterManager); вместо googleMap.setOnCameraMoveListener (mClusterManager);

Вы можете найти исходный код ClusterManager, и вы увидите, что ClusterManager реализует новый OnCameraIdleListener.

Кроме того, необходимо обновить новый андроид-карт-утилиты: 0.4.4 (компиляцию «com.google.maps.android:android-maps-utils:0.4.4»)

удачи и голосование up ... ;-)

+0

Теперь он отлично работает в версии 4.4 для Android-карт-utils. Когда я разместил этот вопрос, только версия 4.3 была доступна через Gradle (4.4 был только на GitHub). Похоже, кто-то сделал это сейчас. Итак, спасибо Макс, и спасибо «кому-то». ;) – Manuel