import '../../../flutter_map.dart';
import '../../entity/camera_change.dart';
import '../../entity/latlng_bounds.dart';

/// 地图操作相关接口
abstract class MapHandleInterface {
  //移动地图
  void moveCamera(CameraPosition cameraPosition);

  //移动地图到指定界限
  void moveCameraToBounds(LatLngBounds bounds, {MapPadding? mapPadding});

  //动态移动地图
  void animateCamera(CameraPosition cameraPosition);

  //清除地图所有标记
  void clear();

  //移动至多个点的位置，并提供设置padding距离
  moveToSuitableLocation(List<LatLng> points, {MapPadding? mapPadding});

  //禁用或启用地图交互
  void setMapInteractionEnabled(bool enabled);

  //显示或隐藏地图logo
  void setMapLogoVisible(bool visible);

  //设置地图移动监听
  void setOnCameraChangeListener(OnCameraChangeListener listener);
}
