张世豪
6 天以前 9d171a3c3a57ea54454d7e9d64dec213aa885a2c
src/zhuye/Shouye.java
@@ -320,7 +320,7 @@
      }
      // 关闭模式时不需要做任何操作,用户已经可以自由移动地图
      
      // 更新工具提示
      // 更新图标显示(重绘以切换图标)
      if (visualizationPanel != null) {
         visualizationPanel.repaint();
      }
@@ -564,14 +564,16 @@
      // 可视化区域 - 使用MapRenderer进行绘制
      visualizationPanel = new JPanel() {
         private ImageIcon gecaojiIcon = null;
         private ImageIcon gecaojiIcon1 = null;  // 默认图标
         private ImageIcon gecaojiIcon2 = null;  // 以割草机为中心模式图标
         private static final int GECAOJI_ICON_X = 37;
         private static final int GECAOJI_ICON_Y = 10;
         private static final int GECAOJI_ICON_SIZE = 20;
         
         {
            // 加载割草机图标,大小20x20像素
            gecaojiIcon = loadScaledIcon("image/gecaoji.png", GECAOJI_ICON_SIZE, GECAOJI_ICON_SIZE);
            gecaojiIcon1 = loadScaledIcon("image/gecaojishijiao1.png", GECAOJI_ICON_SIZE, GECAOJI_ICON_SIZE);
            gecaojiIcon2 = loadScaledIcon("image/gecaojishijiao2.png", GECAOJI_ICON_SIZE, GECAOJI_ICON_SIZE);
         }
         
         /**
@@ -607,11 +609,15 @@
            if (isMowerOutsideBoundary && warningIconVisible) {
               // 绘制红色三角形警告图标(带叹号)
               drawWarningIcon(g, GECAOJI_ICON_X, GECAOJI_ICON_Y, GECAOJI_ICON_SIZE);
            } else if (gecaojiIcon != null) {
               // 绘制正常的割草机图标
               // 水平方向与速度指示器对齐(x=37)
               // 垂直方向与卫星状态图标对齐(y=10,速度指示器面板顶部边距10像素,使图标中心对齐)
               g.drawImage(gecaojiIcon.getImage(), GECAOJI_ICON_X, GECAOJI_ICON_Y, null);
            } else {
               // 根据模式选择不同的图标
               ImageIcon iconToDraw = centerOnMowerMode ? gecaojiIcon2 : gecaojiIcon1;
               if (iconToDraw != null) {
                  // 绘制割草机图标
                  // 水平方向与速度指示器对齐(x=37)
                  // 垂直方向与卫星状态图标对齐(y=10,速度指示器面板顶部边距10像素,使图标中心对齐)
                  g.drawImage(iconToDraw.getImage(), GECAOJI_ICON_X, GECAOJI_ICON_Y, null);
               }
            }
         }
         
@@ -3504,7 +3510,11 @@
         String obstacles,
         String plannedPath,
         Runnable returnAction) {
      if (mapRenderer == null || !isMeaningfulValue(plannedPath)) {
      if (mapRenderer == null) {
         return false;
      }
      // 允许没有路径的预览(例如障碍物预览),只要有返回回调即可
      if (!isMeaningfulValue(plannedPath) && returnAction == null) {
         return false;
      }
@@ -3531,10 +3541,17 @@
      mapRenderer.setCurrentBoundary(boundary, landNumber, landName);
      mapRenderer.setCurrentObstacles(obstacles, landNumber);
      mapRenderer.setCurrentPlannedPath(plannedPath);
      // 只有在有路径时才设置路径
      if (isMeaningfulValue(plannedPath)) {
         mapRenderer.setCurrentPlannedPath(plannedPath);
      } else {
         mapRenderer.setCurrentPlannedPath(null);
      }
      mapRenderer.clearHandheldBoundaryPreview();
      mapRenderer.setBoundaryPointSizeScale(1.0d);
      mapRenderer.setBoundaryPointsVisible(isMeaningfulValue(boundary));
      // 启用障碍物边界点显示
      mapRenderer.setObstaclePointsVisible(isMeaningfulValue(obstacles));
      String displayName = isMeaningfulValue(landName) ? landName : landNumber;
      updateCurrentAreaName(displayName);