"""좌표 거리 — 공용 한 벌.""" import math EARTH_RADIUS_M = 6_371_000.0 def haversine_m(lat1: float, lng1: float, lat2: float, lng2: float) -> float: """두 좌표(위도, 경도) 사이의 거리(m).""" p1, p2 = math.radians(lat1), math.radians(lat2) dp, dl = math.radians(lat2 - lat1), math.radians(lng2 - lng1) a = math.sin(dp / 2) ** 2 + math.cos(p1) * math.cos(p2) * math.sin(dl / 2) ** 2 return 2 * EARTH_RADIUS_M * math.asin(math.sqrt(a)) def haversine_km(lat1: float, lng1: float, lat2: float, lng2: float) -> float: return haversine_m(lat1, lng1, lat2, lng2) / 1000.0