fix: 修复地图默认坐标和温度数据解析问题
- 在地图定位成功回调中增加兜底校验,当获取到系统默认坐标(如天安门)或无效坐标时忽略,防止地图未真正初始化用户位置就更新数据
- 修正温度查询接口的数据解析逻辑,直接使用返回的数值而非嵌套对象
- 在行程状态为6时关闭公告弹窗,避免状态冲突
- 整理车辆位置更新代码的缩进格式
| | |
| | | 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); |
| | |
| | | // 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; |
| | |
| | | }) |
| | | .catch(() => { }); |
| | | } |
| | | if (mappedTripStatus === 6) { |
| | | setShowAnnouncementsPopup(false); |
| | | } |
| | | if (mappedTripStatus === 5) { |
| | | setRoutePoints([]); |
| | | setPolyline([]); |
| | |
| | | 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]); |
| | | |