import '../../flutter_map.dart';

typedef MapLocationListener = void Function(MapLocation location);

class MapConstants {
  MapConstants._();

  //定位持续流通道名称 唯一
  static const String mapLocationEventChannel =
      'atmob_map_location_event_channel';

  //地图SDK通道名称 唯一
  static const String mapMethodChannel = 'atmob_map_method_channel';

  //地图widget通道 可多个
  static const String mapViewChannelName = "com.atmob.flutter_map/map_view_";

  //地图widget_viewType名称
  static const String mapWidgetViewType = "com.atmob.flutter.map";

  //地图移动监听持续流通道名称 可多个
  static const String mapCameraChangeEventChannel =
      'com.atmob.flutter_map/camera_change_event';

  /// *********************************************************************************************************************
  //SDK方法名称
  static const String init = 'init';
  static const String getPlatformMapName = 'getPlatformMapName';
  static const String startLocation = "startLocation";

  //地图相关方法名称
  static const String methodMapMoveCamera = "map#moveCamera";
  static const String methodMapAnimateCamera = "map#animateCamera";
  static const String methodMapClear = "map#clear";
  static const String methodMoveToSuitableLocation =
      "map#moveToSuitableLocation";
  static const String methodInteractionEnabled = "map#interactionEnabled";
  static const String methodMapLogoVisible = "map#logoVisible";
  static const String methodSetCameraChangeEventChannel =
      "map#setCameraChangeEventChannel";
  static const String methodMoveCameraToBounds = "map#moveCameraToBounds";

  //标记物相关方法名称
  static const String methodUpdateOrAddMarkers = "marker#updateOrAddMarkers";
  static const String methodReplaceAllMarkers = "marker#replaceAllMarkers";
  static const String methodMarkerOnTap = "marker#onTap";
  static const String methodMarkerRemoveMarker = "marker#removeMarker";

  //////地图sdk相关功能//////
  //轨迹纠偏
  static const String methodQueryProcessedTrace = "trace#queryProcessedTrace";
  static const String methodPaginatePoiSearch = "poi#paginatePoiSearch";

  //polyline
  static const String methodAddPolyline = "polyline#addPolyline";
  static const String methodRemovePolyline = "polyline#removePolyline";
  static const String methodClearAllPolylines = "polyline#clearAllPolylines";

  //面
  static const String methodUpdateOrAddCircle = "face#updateOrAddCircle";
}
