first commit
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
from fastapi import APIRouter, Query
|
||||
|
||||
from app.models.common import SurfaceKind
|
||||
from app.models.terrain import (
|
||||
ElevationResponse,
|
||||
LosRequest,
|
||||
LosResponse,
|
||||
TerrainProfileRequest,
|
||||
TerrainProfileResponse,
|
||||
)
|
||||
from app.routers.errors import as_501
|
||||
from app.services import terrain as terrain_service
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.get("/elevation", response_model=ElevationResponse)
|
||||
def elevation(
|
||||
lat: float = Query(ge=-90, le=90),
|
||||
lon: float = Query(ge=-180, le=180),
|
||||
surface: SurfaceKind = "dtm",
|
||||
) -> ElevationResponse:
|
||||
return as_501(lambda: terrain_service.elevation_at(lat, lon, surface))
|
||||
|
||||
|
||||
@router.post("/profile", response_model=TerrainProfileResponse)
|
||||
def profile(request: TerrainProfileRequest) -> TerrainProfileResponse:
|
||||
return terrain_service.terrain_profile(request)
|
||||
|
||||
|
||||
@router.post("/los", response_model=LosResponse)
|
||||
def los(request: LosRequest) -> LosResponse:
|
||||
return terrain_service.los(request)
|
||||
Reference in New Issue
Block a user