Return type from getnetworkcoord

This commit is contained in:
DingZQ
2024-12-18 22:41:35 +08:00
parent f8ac46d80d
commit 70afb19184
4 changed files with 21 additions and 7 deletions

View File

@@ -29,7 +29,7 @@ from .s0_base import is_node, is_junction, is_reservoir, is_tank
from .s0_base import is_link, is_pipe, is_pump, is_valve from .s0_base import is_link, is_pipe, is_pump, is_valve
from .s0_base import is_curve from .s0_base import is_curve
from .s0_base import is_pattern from .s0_base import is_pattern
from .s0_base import get_nodes, get_links, get_curves, get_patterns from .s0_base import get_nodes, get_junctions, get_reservoirs, get_tanks, get_links, get_pipes, get_pumps, get_valves, get_curves, get_patterns
from .s0_base import get_node_links, get_link_nodes from .s0_base import get_node_links, get_link_nodes
from .s1_title import get_title_schema, get_title, set_title from .s1_title import get_title_schema, get_title, set_title

View File

@@ -103,18 +103,17 @@ def get_junctions(name: str) -> list[str]:
return _get_nodes_by_type(name, JUNCTION) return _get_nodes_by_type(name, JUNCTION)
# DingZQ # DingZQ
def get_reservoir(name: str) -> list[str]: def get_reservoirs(name: str) -> list[str]:
return _get_nodes_by_type(name, RESERVOIR) return _get_nodes_by_type(name, RESERVOIR)
# DingZQ # DingZQ
def get_tank(name: str) -> list[str]: def get_tanks(name: str) -> list[str]:
return _get_nodes_by_type(name, TANK) return _get_nodes_by_type(name, TANK)
# DingZQ # DingZQ
def get_links(name: str) -> list[str]: def get_links(name: str) -> list[str]:
return _get_all(name, _LINK) return _get_all(name, _LINK)
# DingZQ # DingZQ
def _get_links_by_type(name: str, type: str) -> list[str]: def _get_links_by_type(name: str, type: str) -> list[str]:
ids : list[str] = [] ids : list[str] = []

View File

@@ -1393,12 +1393,14 @@ async def fastapi_get_node_coord(network: str, node: str) -> dict[str, float] |
return get_node_coord(network, node) return get_node_coord(network, node)
# DingZQ, 2024-12-08, get all node coord # DingZQ, 2024-12-08, get all node coord
# id:type:x:y
# type: junction, reservoir, tank
@app.get("/getnetworkcoords/") @app.get("/getnetworkcoords/")
async def fastapi_get_network_coords(network: str) -> list[str] | None: async def fastapi_get_network_coords(network: str) -> list[str] | None:
coords = get_network_coords(network) coords = get_network_coords(network)
result = [] result = []
for node_id, coord in coords.items(): for node_id, coord in coords.items():
result.append(f"{node_id}:{coord['x']}:{coord['y']}") result.append(f"{node_id}:{coord['type']}:{coord['x']}:{coord['y']}")
return result return result
# DingZQ, 2024-12-08, get all links' start and end node # DingZQ, 2024-12-08, get all links' start and end node

View File

@@ -831,12 +831,25 @@ def get_node_coord(name: str, node_id: str) -> dict[str, float]:
return api.get_node_coord(name, node_id) return api.get_node_coord(name, node_id)
# DingZQ, 2024-12-08, get all node coord # DingZQ, 2024-12-08, get all node coord
# id, x, y # id, x, y, type
def get_network_coords(name: str) -> dict[str, dict[str, float]]: def get_network_coords(name: str) -> dict[str, dict[str, float]]:
node_ids = api.get_nodes(name) node_ids = api.get_nodes(name)
junctions = api.get_junctions(name)
reservoirs = api.get_reservoirs(name)
tanks = api.get_tanks(name)
result = {} result = {}
for node_id in node_ids: for node_id in node_ids:
result[node_id] = api.get_node_coord(name, node_id) #result[node_id] = api.get_node_coord(name, node_id)
coord = api.get_node_coord(name, node_id)
if node_id in junctions:
coord['type'] = 'junction'
elif node_id in reservoirs:
coord['type'] = 'reservoir'
elif node_id in tanks:
coord['type'] = 'tank'
else:
coord['type'] = 'node'
result[node_id] = coord
return result return result
# DingZQ, 2024-12-08, get all links' start and end node # DingZQ, 2024-12-08, get all links' start and end node