删除撤回
This commit is contained in:
@@ -33,9 +33,13 @@ class _MapPageEnterpriseState extends State<MapPageEnterprise> {
|
||||
WorkMode? _currentWorkMode = WorkMode.bow; // 当前作业模式
|
||||
|
||||
// ========== 核心新增状态 ==========
|
||||
List<LatLng> _markedPoints = []; // 存储所有打点坐标
|
||||
final List<LatLng> _markedPoints = []; // 存储所有打点坐标
|
||||
LatLng get _mapCenter => _mapController.center; // 实时获取地图中心坐标
|
||||
double _headingAngle = 0.0; // 航向角(单位:度)
|
||||
final double _headingAngle = 0.0; // 当前机器航向角(单位:度)
|
||||
|
||||
//打点
|
||||
double _workDistance = 0.0; // 作业行距(单位:米)
|
||||
double _angle = 0.0; // 航线方向角(单位:度)
|
||||
// =================================
|
||||
|
||||
@override
|
||||
@@ -50,6 +54,40 @@ class _MapPageEnterpriseState extends State<MapPageEnterprise> {
|
||||
});
|
||||
}
|
||||
|
||||
void _undoLastPoint() {
|
||||
if (_markedPoints.isNotEmpty) {
|
||||
setState(() {
|
||||
_markedPoints.removeLast(); // 删除最后一个打点
|
||||
});
|
||||
debugPrint('撤回成功,剩余打点数量:${_markedPoints.length}');
|
||||
} else {
|
||||
debugPrint('无打点可撤回');
|
||||
// 可选:提示用户
|
||||
ScaffoldMessenger.of(
|
||||
context,
|
||||
).showSnackBar(const SnackBar(content: Text('暂无打点可撤回')));
|
||||
}
|
||||
}
|
||||
|
||||
// ========== 核心:清空所有打点和轨迹 ==========
|
||||
void _deleteAllPoints() {
|
||||
if (_markedPoints.isNotEmpty) {
|
||||
setState(() {
|
||||
_markedPoints.clear(); // 清空所有打点
|
||||
});
|
||||
debugPrint('删除成功,已清空所有打点和轨迹');
|
||||
// 可选:提示用户
|
||||
ScaffoldMessenger.of(
|
||||
context,
|
||||
).showSnackBar(const SnackBar(content: Text('已清空所有打点和轨迹')));
|
||||
} else {
|
||||
debugPrint('无打点可删除');
|
||||
ScaffoldMessenger.of(
|
||||
context,
|
||||
).showSnackBar(const SnackBar(content: Text('暂无打点可删除')));
|
||||
}
|
||||
}
|
||||
|
||||
/// ===============================
|
||||
/// 企业级定位初始化(已修复坐标系)
|
||||
/// ===============================
|
||||
@@ -288,6 +326,8 @@ class _MapPageEnterpriseState extends State<MapPageEnterprise> {
|
||||
onComplete: () {
|
||||
setState(() => _isPanelOpen = false);
|
||||
},
|
||||
onUndoTap: _undoLastPoint,
|
||||
onDeleteTap: _deleteAllPoints,
|
||||
onRobotModeChanged: (mode) {
|
||||
setState(() => _currentRobotMode = mode);
|
||||
debugPrint('外部收到机器人模式:$mode');
|
||||
@@ -301,6 +341,12 @@ class _MapPageEnterpriseState extends State<MapPageEnterprise> {
|
||||
_addMarkedPoint(); // 点击加号打点
|
||||
debugPrint('外部处理加号按钮点击,已添加打点');
|
||||
},
|
||||
onDistanceTap: (distance) {
|
||||
_workDistance = distance; // 更新距离状态
|
||||
debugPrint(
|
||||
'外部处理作业行距距离设置,当前距离:${distance.toStringAsFixed(1)}米',
|
||||
);
|
||||
},
|
||||
onSettingTap: () {
|
||||
setState(() {
|
||||
_directionBoxOpen = true;
|
||||
@@ -329,6 +375,10 @@ class _MapPageEnterpriseState extends State<MapPageEnterprise> {
|
||||
debugPrint(
|
||||
'最优航向:${result['optimalHeading']},角度:${result['direction']}',
|
||||
);
|
||||
_angle = result['optimalHeading'] == true
|
||||
? -1
|
||||
: result['direction']; // 更新航线方向角状态
|
||||
debugPrint('外部处理航线方向设置,当前角度:${_angle}');
|
||||
setState(() => _directionBoxOpen = false);
|
||||
},
|
||||
onCancel: () {
|
||||
|
||||
Reference in New Issue
Block a user