Как да разбера кога потребителят е следван от картата или не?

Разбирам, че мога да използвам 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