我有一个Android应用程序,能够显示地图。该地图默认以用户的位置为中心,并根据位置更新来调整中心位置。
但是,我希望用户能够使用手势浏览地图。当用户开始导航时,我希望“跟随”功能停止,并显示一个按钮,以便用户可以重新开始。
如何知道用户何时移动了地图中心? 在GoogleMap.OnCameraChangeListener中,我不知道更改是由于位置更改还是用户交互而引起的。 我有一种工作解决方案,使用OnCameraChangeListener,但这有点“粗糙”,我觉得它不太好:
map.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() {
@Override
public void onCameraChange(CameraPosition position) {
// gpsPosition contains the last position obtained
if(isFollowing && gpsPosition!=null && (Math.abs(position.target.latitude - gpsPosition.latitude)>0.000001 || Math.abs(position.target.longitude - gpsPosition.longitude)>0.000001) ){
isFollowing = false;
map.getUiSettings().setMyLocationButtonEnabled(true);
}
}
});
有没有一个好的解决方案来解决这个问题?