Files
TJWaterServerBinary/app/api/v1/endpoints/network/geometry.py
2026-01-21 18:19:48 +08:00

45 lines
1.6 KiB
Python

from fastapi import APIRouter, Request
from typing import Any, List, Dict, Union
from app.services.tjnetwork import *
router = APIRouter()
############################################################
# coord 24.[COORDINATES]
############################################################
@router.get("/getcoordschema/")
async def fastapi_get_coord_schema(network: str) -> dict[str, dict[str, Any]]:
return get_coord_schema(network)
@router.get("/getcoord/")
async def fastapi_get_coord(network: str, node: str) -> dict[str, Any]:
return get_coord(network, node)
# example: set_coord(p, ChangeSet({'node': 'j1', 'x': 1.0, 'y': 2.0}))
@router.post("/setcoord/", response_model=None)
async def fastapi_set_coord(network: str, req: Request) -> ChangeSet:
props = await req.json()
return set_coord(network, ChangeSet(props))
# Additional geometry queries found in main.py logic (implicit or explicit)
@router.get("/getnetworkinextent/")
async def fastapi_get_network_in_extent(
network: str, x1: float, y1: float, x2: float, y2: float
) -> dict[str, Any]:
return get_network_in_extent(network, x1, y1, x2, y2)
@router.get("/getmajornodecoords/")
async def fastapi_get_majornode_coords(network: str) -> list[Any]:
return get_majornode_coords(network)
@router.get("/getallcoords/")
async def fastapi_get_all_coords(network: str) -> list[Any]:
return get_all_coords(network)
@router.get("/projectcoordinates/")
async def fastapi_project_coordinates(
network: str, from_epsg: int, to_epsg: int
) -> ChangeSet:
return project_coordinates(network, from_epsg, to_epsg)