| | |
| | | |
| | | /** |
| | | * 统一吸附判断,命中阈值则更新吸附站点并显示提示。 |
| | | * @param options.deferShowToolTip 为 true 时不立即展示 tooltip,由调用方在合适的时机(如指针跳动动效结束后)自行调用 setShowToolTip(true)。 |
| | | */ |
| | | const tryAdsorb = (lat: number, lng: number, candidates: any[]) => { |
| | | const tryAdsorb = (lat: number, lng: number, candidates: any[], options?: { deferShowToolTip?: boolean }) => { |
| | | const threshold = adsorptionDistance || 1000; |
| | | const { targetMarker, minDistance } = findNearestMarker(lat, lng, candidates); |
| | | if (minDistance < threshold && targetMarker) { |
| | | setIsAdsorbed(true); |
| | | setCurrentSite(targetMarker); |
| | | setShowToolTip(true); |
| | | if (!options?.deferShowToolTip) { |
| | | setShowToolTip(true); |
| | | } |
| | | Taro.setStorageSync('startSite', targetMarker); |
| | | writeConfirmRideSiteSourceType('start', RECOMMENDED_CONFIRM_RIDE_SOURCE_TYPE); |
| | | return { adsorbed: true, marker: targetMarker }; |