Spaces:
Build error
Build error
| from fastapi import APIRouter, HTTPException | |
| from pydantic import BaseModel | |
| import math | |
| router = APIRouter() | |
| class DistanceRequest(BaseModel): | |
| lat1: float | |
| lon1: float | |
| lat2: float | |
| lon2: float | |
| class DistanceResponse(BaseModel): | |
| distance: float # Distance in kilometers | |
| async def calculate_distance(request: DistanceRequest): | |
| """Calculate the distance between two coordinates using the Haversine formula.""" | |
| try: | |
| # Haversine formula | |
| R = 6371.0 # Earth radius in kilometers | |
| lat1_rad = math.radians(request.lat1) | |
| lon1_rad = math.radians(request.lon1) | |
| lat2_rad = math.radians(request.lat2) | |
| lon2_rad = math.radians(request.lon2) | |
| dlat = lat2_rad - lat1_rad | |
| dlon = lon2_rad - lon1_rad | |
| a = math.sin(dlat / 2)**2 + math.cos(lat1_rad) * math.cos(lat2_rad) * math.sin(dlon / 2)**2 | |
| c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a)) | |
| distance = R * c # Distance in kilometers | |
| return DistanceResponse(distance=distance) | |
| except Exception as e: | |
| raise HTTPException(status_code=500, detail=str(e)) |