diff --git a/src/hooks/rain-earthquake/useAroundAnalysis.ts b/src/hooks/rain-earthquake/useAroundAnalysis.ts index f2d1870..1f92ca4 100644 --- a/src/hooks/rain-earthquake/useAroundAnalysis.ts +++ b/src/hooks/rain-earthquake/useAroundAnalysis.ts @@ -51,11 +51,22 @@ export const useAroundAnalysis = (): AroundAnalysisState => { const allPoints = loadAllPointData(RESOURCE_CONFIGS); const radiusMeters = radiusKm * 1000; - return allPoints.filter(point => { + const filteredPoints = allPoints.filter(point => { if (point.lon === undefined || point.lat === undefined) return false; const distance = calculateDistance(centerLon, centerLat, point.lon, point.lat); return distance <= radiusMeters && isCategoryVisible(point.category as PointResourceCategory, point.originalType); }); + + // 按坐标去重:相同经纬度的点只保留一个 + const coordMap = new Map(); + filteredPoints.forEach(point => { + const coordKey = `${point.lon},${point.lat}`; + if (!coordMap.has(coordKey)) { + coordMap.set(coordKey, point); + } + }); + + return Array.from(coordMap.values()); }; const refreshPulseEffect = () => {