xuanzhi_query.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import json
  2. from fastapi import FastAPI, APIRouter
  3. from qwen_agent.tools.tools import async_db
  4. from qwen_agent.tools.gis.spatial_analysis.geo_analysis import intersect_kfq, intersect_gyyd
  5. router = APIRouter()
  6. @router.get("/kgQuery")
  7. async def kgQuery(id: str):
  8. 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})'
  9. res_tuples = await async_db.run(sql)
  10. result, success = res_tuples
  11. return json.loads(result)
  12. @router.get("/klyzyQuery")
  13. async def klyzyQuery(id: str):
  14. sql = f'select *, st_astext(shape) as geom, st_astext(st_centroid(shape)) as center_wkt from sde.ecgap_klyzy where id in ({id})'
  15. res_tuples = await async_db.run(sql)
  16. result, success = res_tuples
  17. return json.loads(result)
  18. @router.get("/yjjbntQuery")
  19. async def yjjbntQuery(id: str):
  20. sql = f'select *,st_astext(shape) as geom from ddd.gcs330000g2001_yjjbnt_gx_xsb where objectid in ({id})'
  21. res_tuples = await async_db.run(sql)
  22. result, success = res_tuples
  23. return json.loads(result)
  24. @router.get("/kfqintersect")
  25. async def kfqintersect(wkt: str):
  26. result = await intersect_kfq(
  27. wkt)
  28. return result
  29. @router.get("/gyydintersect")
  30. async def gyydintersect(wkt: str):
  31. result = await intersect_gyyd(wkt)
  32. return result