我在Android APP中使用 maps v2
我的地图会每隔几秒自动更新一次,以在地图上显示一些新点。 每次刷新时,自动执行以下事件:调用“setOnCameraChangeListener”。
用户可以通过移动相机或进行缩放来与地图进行交互。我需要在地图上截取用户的手势,例如“缩放”,“拖动”,“捏开”或“捏闭”。
所以我不能使用“OnCameraChangeListener”,因为这在应用程序自动更新数据时已自动完成,我无法理解事件发生时自动更新地图或何时通过用户交互
如何捕获这些用户手势?
答案 0 :(得分:5)
自动执行以下事件:调用“setOnCameraChangeListener”。
没有任何事情自动完成。
每隔几秒更新一次,以在地图上显示一些新点。
和
然后重新调整缩放以适应地图上的实际标记。
这似乎是一种非常糟糕的用户体验:当用户只想滑动到非洲时,强迫用户查看您的标记。
无论如何,如果您在代码中进行GoogleMap.animateCamera
调用,则可以使用CancelableCallback
参数来帮助您区分导致onCameraChange
的用户活动和代码调用。 See this comment on gmaps-api-issues了解如何实现这一目标。
答案 1 :(得分:0)
尝试在处理自动更新的代码块中调用自动更新后执行的操作,而不是OnCameraChangeListener
。然后使用OnCameraChangeListener
执行仅在相机实际移动时执行的操作(无论是由用户还是由代码引起)。