|
@@ -72,5 +72,48 @@ async def mine(request: Request,body = Depends(remove_xss_json),db: Session = De
|
|
|
}
|
|
|
except Exception as e:
|
|
|
db.rollback()
|
|
|
+ traceback.print_exc()
|
|
|
+ raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|
|
|
+
|
|
|
+@router.get('/get_mms_area_info')
|
|
|
+async def mine(request: Request,body = Depends(remove_xss_json),db: Session = Depends(get_db)):
|
|
|
+ try:
|
|
|
+ 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 Exception as e:
|
|
|
traceback.print_exc()
|
|
|
raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|