From 5c2d1b7ec1f8af8cf20b325fa815834fe6f5a952 Mon Sep 17 00:00:00 2001 From: mmc <1556375442@qq.com> Date: Thu, 12 Mar 2026 15:41:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8D=95=E7=82=B9=20?= =?UTF-8?q?=E5=BC=80=E5=A7=8B=E4=BD=9C=E4=B8=9A=E7=9A=84=E7=BB=98=E5=88=B6?= =?UTF-8?q?=20=EF=BC=8C=E4=BC=98=E5=8C=96=E4=B8=80=E4=BA=9B=E5=B0=8F?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../widgets/map/testmap_pages.dart | 54 ++++--------------- 1 file changed, 11 insertions(+), 43 deletions(-) diff --git a/lib/features/home/presentation/widgets/map/testmap_pages.dart b/lib/features/home/presentation/widgets/map/testmap_pages.dart index ccd359dc..2e264ece 100644 --- a/lib/features/home/presentation/widgets/map/testmap_pages.dart +++ b/lib/features/home/presentation/widgets/map/testmap_pages.dart @@ -762,6 +762,11 @@ class _MapPageEnterpriseState extends State { }); try { + if (_currentLatLng != null && _isValidLatLng(_currentLatLng!.latitude, _currentLatLng!.longitude)) { + _mapController.move(_currentLatLng!, 18); + } else { + _mapController.move(_currentLatLng!, 18); + } // 2. 重置所有页面状态(恢复初始值) setState(() { _traceManager.setMode(TPMode.LOCATION); @@ -815,21 +820,8 @@ class _MapPageEnterpriseState extends State { }); _clearLocalData(); - // 3. 重新初始化定位 - await _initLocationEnterprise(); - // 4. 重置轨迹管理器 _traceManager.reset(); - if (_currentLatLng != null && _isValidLatLng(_currentLatLng!.latitude, _currentLatLng!.longitude)) { - _mapController.move(_currentLatLng!, savedZoom); - } else { - // 使用兜底的有效坐标(确保在高德瓦片覆盖范围内) - final defaultCenter = _getDefaultValidCenter(); - _mapController.move(defaultCenter, 17.0); - _currentLatLng = null; - _currentWgsLatLng = null; - _mapCenter = defaultCenter; - } // 5. 重新加载作业记录(保持数据最新) // final userId = context.read().state.user?.userId ?? ""; @@ -837,7 +829,6 @@ class _MapPageEnterpriseState extends State { // await context.read().loadWorkRecords(userId); // } - _mapController.move(_getDefaultValidCenter(), savedZoom); // 刷新成功提示 if (mounted) { ToastUtils.showSuccess(context, '页面已刷新完成'); @@ -845,7 +836,6 @@ class _MapPageEnterpriseState extends State { } } catch (e) { // 错误处理 - debugPrint('刷新失败:$e'); if (mounted) { ToastUtils.showError(context, '刷新失败:${e.toString().substring(0, 50)}'); //ScaffoldMessenger.of( @@ -890,7 +880,6 @@ class _MapPageEnterpriseState extends State { }); _saveDataToLocal(); - debugPrint('完成障碍物绘制,当前障碍物组数:${_obstacleHoles.length}'); ToastUtils.showSuccess(context, '已添加第${_obstacleHoles.length}个障碍物区域'); } @@ -1048,15 +1037,12 @@ class _MapPageEnterpriseState extends State { } else { outerList = []; } - if (_currentWorkMode == WorkMode.bow) { + if (workMode == "弓字模式") { startWorkList = pathList; } else { startWorkList = outerList; } - // ========== 修复结束 ========== - debugPrint('解析后的路径数据: pathList=$pathList, 长度=${pathList.length}'); - debugPrint('解析后的外边界数据: outerList=$outerList, 长度=${outerList.length}'); List newPathPoints = []; List newOuterPoints = []; for (var item in pathList) { @@ -1489,13 +1475,7 @@ class _MapPageEnterpriseState extends State { /// 开始作业 void _startWork() async { - debugPrint('🔵 _startWork 方法被调用了!'); - - debugPrint('📊 startWorkList 类型:${startWorkList.runtimeType}'); - debugPrint('📊 startWorkList 长度:${startWorkList.length}'); - debugPrint('📊 startWorkList 内容:$startWorkList'); if (startWorkList.isEmpty) { - debugPrint('🚀 作业列表为空'); ToastUtils.showInfo(context, '作业列表为空,请重新选择路径'); return; } @@ -1516,21 +1496,12 @@ class _MapPageEnterpriseState extends State { //}).toList(); // 步骤2:将 List 转换为 Queue(队列) - debugPrint('⚙️ 开始类型转换...'); final List typedList = startWorkList.whereType>().map((item) { - return work_area_model.DeviceAddPathPointModel(latitude: (item['lat'] as num).toDouble(), longitude: (item['lon'] as num).toDouble()); + return work_area_model.DeviceAddPathPointModel(latitude: (item['lat'] as num).toDouble(), longitude: (item['lon'] ?? item["lng"] as num).toDouble()); }).toList(); - debugPrint("===打印发送开始作业的路径开始 "); - for (var i = 0; i < typedList.length; i++) { - debugPrint(typedList[i].toString()); - } - debugPrint("===打印发送开始作业的路径结束"); final Queue pathQueue = Queue.from(typedList); - debugPrint('🚀 开始作业:${_selectedPlot?.plotName ?? "未命名"},路径点数量:${pathQueue.length}'); - debugPrint('第一个点 WGS84: ${pathQueue.first.latitude}, ${pathQueue.first.longitude}'); - // 步骤 3:调用 Cubit 方法(类型匹配) await context.read().startRoutePlanning(pathQueue); context.read().updateAppState(AppState.routePlanning); @@ -1547,7 +1518,6 @@ class _MapPageEnterpriseState extends State { }); context.read().updateAppState(AppState.none); await context.read().pauseRoutePlanning(); - debugPrint('暂停作业:${_selectedPlot!.plotName}'); } void _stopWork() async { @@ -1557,10 +1527,9 @@ class _MapPageEnterpriseState extends State { _showHeadingWarn = false; _showControlModeWarn = false; }); + _traceManager.setMode(TPMode.LOCATION); context.read().updateAppState(AppState.none); await context.read().stopRoutePlanning(); - //修改App的状态 - debugPrint('停止作业:${_selectedPlot!.plotName}'); ToastUtils.showError(context, '作业已停止'); } @@ -1590,7 +1559,6 @@ class _MapPageEnterpriseState extends State { Widget _buildWorkPanel() { return BlocBuilder( builder: (context, state) { - // 无选中地块或无路径数据时返回空 if (_selectedPlot == null || state.pathData == null) { return const SizedBox.shrink(); } @@ -2002,7 +1970,6 @@ class _MapPageEnterpriseState extends State { // 4. 处理生成结果(原有逻辑不变) final cubitState = context.read().state; - print('${cubitState.generatedPath},路径生成结果'); if (cubitState.errorMessage != null) { if (showTips) { @@ -2052,14 +2019,12 @@ class _MapPageEnterpriseState extends State { _videoStreamUrl = "webrtc://${TCPConsts.TCP_IP}/live/livestream/$deviceId?token=${userState.user!.token}"; } else { _videoStreamUrl = ''; - print("设备未选中或用户未登录,无法生成视频流地址"); } return BlocBuilder( builder: (context, state) { final devicesState = context.watch().state; // 2. 读取 isFinishWork 数据(修正拼写,设置默认值) bool isFinishWork = devicesState.isFinshWork ?? false; - print("$isFinishWork 完成信号"); // 初始化默认值 String yaw = '--'; String satelliteCnt = '--'; @@ -2071,6 +2036,9 @@ class _MapPageEnterpriseState extends State { DeviceStatusUpdated? updatedState; if (isFinishWork) { _workStatus = WorkStatus.idle; + ToastUtils.showError(context, '作业已停止'); + isStartWork = false; + _traceManager.setMode(TPMode.LOCATION); } if (state is DeviceStatusUpdated) {