zjk
2026-07-29 429208957f30ab9eedc5533a81aaa284048d09f5
src/robotaxi/pages/begin-route/hooks/use-android-overlays.ts
@@ -9,7 +9,6 @@
  mapScale: number;
  /** 修改目的地预览态下隐藏车辆气泡。 */
  isModifyDestinationReviewVisible: boolean;
  routeSummaryLocation: { latitude: number; longitude: number } | null;
  startSite: any;
  endSite: any;
  vehicleLocation: { latitude: number; longitude: number } | null;
@@ -38,9 +37,6 @@
  // 到达气泡样式与显示状态
  const [arriveCalloutStyle, setArriveCalloutStyle] = useState<any>({});
  const [arriveCalloutVisible, setArriveCalloutVisible] = useState(false);
  // 路线摘要气泡样式与显示状态
  const [routeSummaryCalloutStyle, setRouteSummaryCalloutStyle] = useState<any>({});
  const [routeSummaryCalloutVisible, setRouteSummaryCalloutVisible] = useState(false);
  const mapRectRef = useRef<any>(null);
  // 读取地图投影上下文,供路线点批量转换屏幕坐标使用。
@@ -181,25 +177,6 @@
    setArriveCalloutVisible(true);
  };
  // 更新路线摘要气泡位置
  const updateRouteSummaryCalloutPosition = async () => {
    if (!deps.isAndroid || !deps.routeSummaryLocation) {
      setRouteSummaryCalloutVisible(false);
      return;
    }
    const rect = await ensureMapRect();
    const pos = await computeScreenPosition(deps.routeSummaryLocation, rect, 0);
    if (!pos) {
      setRouteSummaryCalloutVisible(false);
      return;
    }
    setRouteSummaryCalloutStyle(buildTransformOverlayStyle({
      x: pos.x,
      y: pos.y
    }, ''));
    setRouteSummaryCalloutVisible(true);
  };
  // 地图区域变化时同步覆盖物显隐与重算
  // 注意:这里把「begin 隐藏」与「end 重算」解耦,避免历史上的两类问题:
  // 1) 若 begin 对所有区域变化都隐藏,则 fitRouteIntoView/includePoints 等程序化视口调整会
@@ -219,7 +196,6 @@
        setWaitingRadarVisible(false);
        setCarCalloutVisible(false);
        setArriveCalloutVisible(false);
        setRouteSummaryCalloutVisible(false);
      }
      return;
    }
@@ -230,7 +206,6 @@
      updateWaitingRadarPosition();
      updateCarCalloutPosition();
      updateArriveCalloutPosition();
      updateRouteSummaryCalloutPosition();
    }
  };
@@ -256,10 +231,6 @@
  }, [deps.isAndroid, deps.tripStatus, deps.endSite?.latitude, deps.endSite?.longitude]);
  useEffect(() => {
    updateRouteSummaryCalloutPosition();
  }, [deps.isAndroid, deps.routeSummaryLocation?.latitude, deps.routeSummaryLocation?.longitude, deps.mapScale, deps.tripStatus]);
  useEffect(() => {
    if (!deps.isAndroid || deps.tripStatus !== TripStatus.ArrivedDestination) return;
    if (deps.mapScale < 20) return;
    const timer = setTimeout(() => {
@@ -275,12 +246,9 @@
    carCalloutVisible,
    arriveCalloutStyle,
    arriveCalloutVisible,
    routeSummaryCalloutStyle,
    routeSummaryCalloutVisible,
    updateWaitingRadarPosition,
    updateCarCalloutPosition,
    updateArriveCalloutPosition,
    updateRouteSummaryCalloutPosition,
    handleRegionChange
  };
}