#!/usr/bin/env python3 # -*- coding: utf-8 -*- from fastapi import APIRouter, Request, Depends, Query, HTTPException, status from common.security import valid_access_token from sqlalchemy.orm import Session from sqlalchemy.sql import func from common.auth_user import * from sqlalchemy import text from pydantic import BaseModel from common.BigDataCenterAPI import * from database import get_db from typing import List from models import * from utils import * from utils.spatial import * import json import traceback from common import RLTApi from exceptions import AppException router = APIRouter() # 行政区划人流量查询接口 @router.get('/listPopulationNumberByRegion') async def listPopulationNumberByRegion(request: Request,body = Depends(remove_xss_json),db: Session = Depends(get_db)): try: data = RLTApi.listPopulationNumberByRegion() print('data ====>>>', data) with open('/home/python3/xh_twapi01/routers/api/spatialAnalysis/茂名市.json','r', encoding='utf-8') as f: data = json.load(f) features = data['features'] result = [{'name': '高','color': '#ff2f3c',"points":[]}, {'name': '较高', 'color': '#ffaf00',"points":[]}, {'name': '较低', 'color': '#ffd800',"points":[]}, {'name': '低', 'color': '#40c75f',"points":[]},] adcode_dit = {'高':['440902','440983'],"较高":['440904'],"较低":['440981'],"低":['440982']} # "440902":{'name': '高','color': '#ff2f3c'}, # "440904": {'name': '较高', 'color': '#ffaf00'}, # "440981": {'name': '较低', 'color': '#ffd800'}, # "440982": {'name': '低', 'color': '#40c75f'}, # "440983": {'name': '高', 'color': '#ff2f3c'}, # } area_data = {} for feature in features: properties = feature['properties'] area_code = properties['adcode'] geometry = feature['geometry'] coordinates = geometry['coordinates'] area_data[str(area_code)]=[] for i in coordinates: area_data[str(area_code)] += i # result.append({"name":adcode_dit[str(area_code)]['name'], # "color":adcode_dit[str(area_code)]['color'], # "area_name":area_name, # "area_code":area_code, # "points":i}) for i in result: for x in adcode_dit[i['name']]: i['points']+=area_data[x] return { "code": 200, "msg": "成功", "data": result} except AppException as e: return { "code": 500, "msg": e.msg } except Exception as e: traceback.print_exc() raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}") # 行政区划人口热力查询接口 @router.get('/listPopulationHeatByRegion') async def listPopulationHeatByRegion(request: Request,body = Depends(remove_xss_json),db: Session = Depends(get_db)): try: data = RLTApi.listPopulationHeatByRegion() print('data ====>>>', data) with open('/home/python3/xh_twapi01/routers/api/spatialAnalysis/茂名市.json','r', encoding='utf-8') as f: data = json.load(f) features = data['features'] result = [{'name': '高','color': '#ff2f3c',"points":[]}, {'name': '较高', 'color': '#ffaf00',"points":[]}, {'name': '较低', 'color': '#ffd800',"points":[]}, {'name': '低', 'color': '#40c75f',"points":[]},] adcode_dit = {'高':['440902','440983'],"较高":['440904'],"较低":['440981'],"低":['440982']} # "440902":{'name': '高','color': '#ff2f3c'}, # "440904": {'name': '较高', 'color': '#ffaf00'}, # "440981": {'name': '较低', 'color': '#ffd800'}, # "440982": {'name': '低', 'color': '#40c75f'}, # "440983": {'name': '高', 'color': '#ff2f3c'}, # } area_data = {} for feature in features: properties = feature['properties'] area_code = properties['adcode'] geometry = feature['geometry'] coordinates = geometry['coordinates'] area_data[str(area_code)]=[] for i in coordinates: area_data[str(area_code)] += i # result.append({"name":adcode_dit[str(area_code)]['name'], # "color":adcode_dit[str(area_code)]['color'], # "area_name":area_name, # "area_code":area_code, # "points":i}) for i in result: for x in adcode_dit[i['name']]: i['points']+=area_data[x] return { "code": 200, "msg": "成功", "data": result} except AppException as e: return { "code": 500, "msg": e.msg } except Exception as e: traceback.print_exc() raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")