소스 검색

Merge branch 'Malaysia' of http://www.sysuimars.cn:3000/feiniao/agriculture-one-map into Malaysia

lxf 2 주 전
부모
커밋
d45374bd5b
3개의 변경된 파일33개의 추가작업 그리고 25개의 파일을 삭제
  1. 3 3
      src/api/modules/warning.js
  2. 8 22
      src/views/warningHome/index.vue
  3. 22 0
      src/views/warningHome/map/waterLayer.js

+ 3 - 3
src/api/modules/warning.js

@@ -14,9 +14,9 @@ export default {
         url: "/ws/geocoder/v1",
         type: "get"
     },
-    // 获取作物种植面积占比
-    fetchStatSpeciesAreaYield: {
-        url: config.one_map_url + "agri_land_crop/stat_species_area_yield",
+    // 查询所有水渠数据
+    fetchLandCanalList: {
+        url: config.one_map_url + "land_canal/list",
         type: "get",
     },
     //统计指定物种在下级区划中的面积占比

+ 8 - 22
src/views/warningHome/index.vue

@@ -81,10 +81,12 @@ const handleBaseTabClick = (tab) => {
     staticMapLayers.hideAll()
     // 水利图层隐藏
     waterLayer && waterLayer.toggleLayer(false)
+    waterLayer && waterLayer.toggleCanalLayer(false)
     if (tab === "资源") {
         staticMapPointLayers.showPoint()
     }else if (tab === "灌渠与泵站") {
         showPoint.value = true
+        waterLayer && waterLayer.toggleCanalLayer(true)
     }else if (tab === "长势等级") {
         staticMapLayers.showSingle("Dongguan长势", false);
     }else if (tab === "物候期分布") {
@@ -125,6 +127,7 @@ onMounted(async () => {
     await getSpeciesListData();
 
     getWaterData();
+    getWaterCanalData();
 
     getDistributionData();
 
@@ -140,8 +143,7 @@ onMounted(async () => {
 
     eventBus.emit("warningMap:init", warningMap.kmap);
 
-    staticMapLayers.initStaticMapLayers(warningMap.kmap);
-    staticMapLayers.showSingle("Dongguan物候期", false);
+    handleBaseTabClick("物候期分布")
 
     // 图例数据
     eventBus.on("alarmList:warningLayers", (data) => {
@@ -236,26 +238,10 @@ const getWaterData = async () => {
     waterLayer.initRiver(riverData);
 };
 
-// 时间轴
-eventBus.on("weatherTime:changeTime", ({ index, year, quarter }) => {
-    handleTimeChange(index, year, quarter);
-});
-
-const handleTimeChange = (index, year, quarter) => {
-    // 更新当前选中的年份和季度
-    currentYear.value = year;
-    currentQuarter.value = quarter;
-
-    // 如果当前在作物分布或物候期分布tab,需要重新加载地图数据
-    if (activeBaseTab.value === "作物分布" || activeBaseTab.value === "物候期分布") {
-        // 重新获取当前选中的节点数据
-        if (treeRef.value) {
-            const checkedNodes = treeRef.value.getCheckedNodes(false, true);
-            if (checkedNodes && checkedNodes.length > 0) {
-                getTreeChecks(checkedNodes[0], { checkedNodes });
-            }
-        }
-    }
+// 获取水渠数据
+const getWaterCanalData = async () => {
+    const { data } = await VE_API.warning.fetchLandCanalList();
+    waterLayer.initCanal(data);
 };
 
 sessionStorage.removeItem("farmId");

+ 22 - 0
src/views/warningHome/map/waterLayer.js

@@ -31,8 +31,15 @@ class WaterLayer {
             }
         });
 
+        this.canalLayer = new KMap.VectorLayer("canalLayer", 99, {
+            style: (f) => {
+                return that.vectorStyle.getPolygonStyle("#00000010", "#42b884cc", 3)
+            }
+        });
+
         map.addLayer(this.waterLayer.layer);
         map.addLayer(this.riverLayer.layer);
+        map.addLayer(this.canalLayer.layer);
         this.toggleLayer(false)
         this.kmap = map
 
@@ -69,6 +76,17 @@ class WaterLayer {
             }
         }
     }
+    initCanal(arr) {
+        if (this.canalLayer) {
+            this.canalLayer.source.clear();
+        }
+        if (arr.length > 0) {
+            for (let item of arr) {
+                let feature = newAreaFeature(item);
+                this.canalLayer.addFeature(feature);
+            }
+        }
+    }
 
     fitView() {
         const source = this.waterLayer.layer.getSource();
@@ -84,6 +102,10 @@ class WaterLayer {
         this.waterLayer.layer.setVisible(val)
         this.riverLayer.layer.setVisible(val)
     }
+
+    toggleCanalLayer(val) {
+        this.canalLayer.layer.setVisible(val)
+    }
 }
 
 export default WaterLayer;