我有一个显示地图的 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);
}
}
});
这个问题有很好的解决方案吗?