hejianhao
2026-03-23 9325bc99a6437aa9e090ae837d5d81cf68db1e32
fix: 修复地图默认坐标和温度数据解析问题

- 在地图定位成功回调中增加兜底校验,当获取到系统默认坐标(如天安门)或无效坐标时忽略,防止地图未真正初始化用户位置就更新数据
- 修正温度查询接口的数据解析逻辑,直接使用返回的数值而非嵌套对象
- 在行程状态为6时关闭公告弹窗,避免状态冲突
- 整理车辆位置更新代码的缩进格式
3个文件已修改
37 ■■■■■ 已修改文件
src/pages/robotaxi/home/index.tsx 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/pages/begin-route/components/calling-car.tsx 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/pages/begin-route/index.tsx 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/robotaxi/home/index.tsx
@@ -821,6 +821,12 @@
        success: async (res) => {
          const { latitude: lat, longitude: lng } = res;
          // 兜底校验:如果获取到的是系统默认坐标(如天安门)或无效坐标,说明地图尚未真正初始化用户位置,直接忽略
          if (!lat || !lng || (Math.abs(lat - DEFAULT_LATITUDE) < 0.0001 && Math.abs(lng - DEFAULT_LONGITUDE) < 0.0001)) {
            setBounce(false);
            return;
          }
          try {
            // 更新地图数据
            const { newMarkers, sites } = await updateMapData(lat, lng);
src/robotaxi/pages/begin-route/components/calling-car.tsx
@@ -183,7 +183,7 @@
                // setTempStatus(26);
                // lastConfirmedTempRef.current = 26;
                queryTemperatureByOrderId({ orderId: targetOrderId }).then((res: any) => {
                    const currentTemperature = Number(res?.currentTemperature ?? res?.temperature);
                    const currentTemperature = Number(res);
                    if (!Number.isNaN(currentTemperature)) {
                        setTempStatus(currentTemperature);
                        lastConfirmedTempRef.current = currentTemperature;
src/robotaxi/pages/begin-route/index.tsx
@@ -843,6 +843,9 @@
          })
          .catch(() => { });
      }
      if (mappedTripStatus === 6) {
        setShowAnnouncementsPopup(false);
      }
      if (mappedTripStatus === 5) {
        setRoutePoints([]);
        setPolyline([]);
@@ -1370,20 +1373,20 @@
    if (!vehicleLocation) return;
    const mapCtx = Taro.createMapContext('map');
    // Taro.nextTick(() => {
      mapCtx.translateMarker({
        markerId: vehicleMarkerId,
        destination: {
          latitude: vehicleLocation.latitude,
          longitude: vehicleLocation.longitude,
        },
        autoRotate: false,
        rotate: typeof vehicleDirection === 'number' ? vehicleDirection : 0,
        duration: 100,
        fail: (err) => {
          console.log(err);
    mapCtx.translateMarker({
      markerId: vehicleMarkerId,
      destination: {
        latitude: vehicleLocation.latitude,
        longitude: vehicleLocation.longitude,
      },
      autoRotate: false,
      rotate: typeof vehicleDirection === 'number' ? vehicleDirection : 0,
      duration: 100,
      fail: (err) => {
        console.log(err);
        },
      });
      },
    });
    // });
  }, [tripStatus, vehicleLocation, vehicleDirection, vehicleMarkerId]);