Ver código fonte

241106-1代码。

baoyubo 8 meses atrás
pai
commit
41f85291a8
1 arquivos alterados com 43 adições e 0 exclusões
  1. 43 0
      routers/api/spatialAnalysis/__init__.py

+ 43 - 0
routers/api/spatialAnalysis/__init__.py

@@ -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)}")