Я понимаю, что могу использовать GoogleMap.OnMyLocationButtonClickListener, чтобы определить, когда пользователь нажал кнопку, чтобы заставить GoogleMap отслеживать свое местоположение на экране, но есть ли способ получить событие, когда пользователь больше не следит за устройством? Например, если пользователь переместил карту, это предотвращает привязку карты к местоположению пользователя.
Как узнать, следит за пользователем карта или нет?
Ответы (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
Звучит хорошо для большинства случаев использования, но может пропустить некоторые случаи, такие как трекбол / dpad / специальные возможности.
- person leorleor; 29.08.2013
@leorleor Хороший вопрос, хотя GM Android API v2 их тоже не поддерживает.
- person MaciejGórski; 29.08.2013