1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import json
- from fastapi import FastAPI, APIRouter
- from qwen_agent.tools.tools import async_db
- from qwen_agent.tools.gis.spatial_analysis.geo_analysis import intersect_kfq, intersect_gyyd
- router = APIRouter()
- @router.get("/kgQuery")
- async def kgQuery(id: str):
- sql = f'select id, xzqmc, xzqdm, dymc, yddm, ydxz, ydmj, rjlsx, rjlxx, jzmdsx, jzmdxx, jzgdsx, jzgdxx, ldlsx, ldlxx, pfwh, pfsj, st_area(shape::geography) as pfmarea,st_astext(shape) as geom, st_astext(st_centroid(shape)) as center_wkt from sde.kzxxxgh where id in ({id})'
- res_tuples = await async_db.run(sql)
- result, success = res_tuples
- return json.loads(result)
- @router.get("/klyzyQuery")
- async def klyzyQuery(id: str):
- sql = f'select *, st_astext(shape) as geom, st_astext(st_centroid(shape)) as center_wkt from sde.ecgap_klyzy where id in ({id})'
- res_tuples = await async_db.run(sql)
- result, success = res_tuples
- return json.loads(result)
- @router.get("/yjjbntQuery")
- async def yjjbntQuery(id: str):
- sql = f'select *,st_astext(shape) as geom from ddd.gcs330000g2001_yjjbnt_gx_xsb where objectid in ({id})'
- res_tuples = await async_db.run(sql)
- result, success = res_tuples
- return json.loads(result)
- @router.get("/populationQuery")
- async def populationQuery(name: str):
- sql = f"select pop_age_o as 老年人口, pop_age_m as 中青年人口,pop_sex_m as 男性人口,pop_sex_f as 女性人口,pop as 人口总量 from sde.layer_poi_population where name = '{name}'"
- res_tuples = await async_db.run(sql)
- result, success = res_tuples
- return json.loads(result)
- @router.get("/kfqintersect")
- async def kfqintersect(wkt: str):
- result = await intersect_kfq(
- wkt)
- return result
- @router.get("/gyydintersect")
- async def gyydintersect(wkt: str):
- result = await intersect_gyyd(wkt)
- return result
|