Как узнать, следит за пользователем карта или нет?

Я понимаю, что могу использовать GoogleMap.OnMyLocationButtonClickListener, чтобы определить, когда пользователь нажал кнопку, чтобы заставить GoogleMap отслеживать свое местоположение на экране, но есть ли способ получить событие, когда пользователь больше не следит за устройством? Например, если пользователь переместил карту, это предотвращает привязку карты к местоположению пользователя.


person Ogre    schedule 28.08.2013    source источник


Ответы (2)


Вы можете добавить OnCameraChangeListener, он будет вызываться при перетаскивании карты. В onCameraChange сравните CameraPosition#target LatLng с MyLocation.

Вот смена камеры и прослушиватели моего местоположения в одном и том же API:
https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/GoogleMap.OnCameraChangeListener
https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationChangeListener

person leorleor    schedule 28.08.2013

Я предлагаю использовать View, перекрывающее MapFragment, и переопределить его onTouchEvent, проверяя событие DOWN, чтобы остановить отслеживание позиции. Это когда пользователь начинает любое взаимодействие с картой.

person MaciejGórski    schedule 28.08.2013
comment
Звучит хорошо для большинства случаев использования, но может пропустить некоторые случаи, такие как трекбол / dpad / специальные возможности. - person leorleor; 29.08.2013
comment
@leorleor Хороший вопрос, хотя GM Android API v2 их тоже не поддерживает. - person MaciejGórski; 29.08.2013