shuhao пре 4 месеци
родитељ
комит
273bd85654

+ 0 - 48
src/api/modules/config.js

@@ -1,48 +0,0 @@
-const config = require("../config")
-
-const legend = [
-
-    //作物分布图例 0
-    [{"name":"荔枝", "color":"#005BE7"},{"name":"龙眼", "color":"#01A884"},{"name":"化橘红", "color":"#ED0911"},{"name":"三化李", "color":"#A7A700"},],
-    //作物分布图例 1
-    [{"name":"开花期", "color":"#98E500"},{"name":"生理落果期", "color":"#D9E714"},{"name":"果实发育期", "color":"#DEAC00"},{"name":"果实成熟期", "color":"#E34D00"}],
-    //土壤墒情 2
-    [{"name":"一级", "color":"#E84335"},{"name":"二级", "color":"#18E6F6"},{"name":"三级", "color":"#653AA7"},{"name":"四级", "color":"#1469F7"},{"name":"五级", "color":"#799A85"},],
-    //温度分布 3
-    [{"name":"> 30C°", "color":"#E52B31"},{"name":"20C°~30C°", "color":"#AE8100"},{"name":"10C°~20C°", "color":"#49B000"},{"name":"< 10C°", "color":"#666FF0"},],
-
-    //气象图例 4无风险、低风险,中风险,高风险,极高风险
-    [{"name":"无风险", "color":"#2892C6"},{"name":"低风险", "color":"#78BAA6"},{"name":"中风险", "color":"#F2F134"},{"name":"高风险", "color":"#EC6944"},{"name":"极高风险", "color":"#B40404"}],
-
-    //病虫害分布 5
-    [{"name":"无风险", "color":"#56556C"},{"name":"低风险", "color":"#8DB8A4"},{"name":"中风险", "color":"#D9E27F"},{"name":"高风险", "color":"#F5CF49"},{"name":"极高风险", "color":"#F87A2D"},{"name":"已病害", "color":"#E71413"}],
-
-    //荔枝品种分布图例 6
-    [{"name":"未知", "color":"point6.png"},{"name":"桂味", "color":"point1.png"},{"name":"槐枝", "color":"point2.png"},{"name":"井岗红糯", "color":"point3.png"},{"name":"糯米糍", "color":"point4.png"},{"name":"岭丰糯", "color":"point5.png"},],
-
-    //农事 7
-    [{"name":"已喷药", "color":"action_py.png"},{"name":"已施肥", "color":"action_sf.png"},
-        {"name":"待喷药", "color":"action_stay_py.png"},{"name":"待施肥", "color":"action_stay_sf.png"},],
-    //效益 8
-    [{"name":">80斤", "color":"xy8000.png"},{"name":"40~80斤", "color":"xy6000.png"},
-        {"name":"<40斤", "color":"xy4000.png"},],
-
-]
-
-
-function getLegend(id){
-    return legend[id];
-}
-
-
-module.exports = {
-    legend: {
-        url: "/legend",
-        type: "post",
-        mock: true,
-        response: (opt) => {
-            let body = config.getOptBody(opt);
-            return getLegend(body.id);
-        },
-    },
-}

+ 0 - 16
src/api/modules/dict.js

@@ -1,16 +0,0 @@
-const config = require("../config")
-
-
-
-
-module.exports = {
-    list: {
-        url: config.base_url + "dict/list",
-        type: "get",
-    },
-    save: {
-        url: config.base_url + "dict/save",
-        type: "post",
-    },
-
-}

+ 0 - 21
src/api/modules/dji_control.js

@@ -1,21 +0,0 @@
-const config = require("../config")
-const base = config.dji_cloud_base + "control/api/v1/devices/";
-const waylineBase = config.dji_cloud_base + "wayline/api/v1/workspaces/";
-
-
-
-module.exports = {
-    takeoffToPoint: {
-        url: base + "{sn}/jobs/takeoff-to-point",
-        type: "post",
-    },
-    createJob: {
-        url: waylineBase + "{workspaceId}/flight-tasks",
-        type: "post",
-    },
-    save: {
-        url: config.dji_cloud_base + "dict/save",
-        type: "post",
-    },
-
-}

+ 0 - 54
src/api/modules/lzxt.js

@@ -1,54 +0,0 @@
-const config = require("../config")
-
-module.exports = {
-    areaPartList:{
-        url: config.base_url + "lz_area_part/list",
-        type:"get"
-    },
-    lzAreaList: {
-        url: config.base_url + "lz_area/list",
-        type: "post",
-    },
-    lzAreaSave: {
-        url: config.base_url + "lz_area/save",
-        type: "post",
-    },
-    changePeriod: {
-        url: config.base_url + "lz_area/changePeriod",
-        type: "post",
-    },
-    lzGroupList: {
-        url: config.base_url + "lz_group/list",
-        type: "post",
-    },
-    lzGroupSave: {
-        url: config.base_url + "lz_group/save",
-        type: "post",
-    },
-    lzTreeList: {
-        url: config.base_url + "lz_tree/list",
-        type: "post",
-    },
-    lzTreeSave: {
-        url: config.base_url + "lz_tree/save",
-        type: "post",
-    },
-    lzTreeUpdate: {
-        url: config.base_url + "lz_tree/update",
-        type: "post",
-    },
-    uploadData: {
-        url: config.base_url + "lz_everyday/updateData",
-        type: "post",
-    },
-    //物候期列表
-    periodList: {
-        url: config.base_url + "lz_period/list",
-        type: "post",
-    },
-    airRoute: {
-        url: config.base_url + "lz_air_route/air_route",
-        type: "post",
-    }
-
-}

+ 0 - 40
src/api/modules/nsjy.js

@@ -1,40 +0,0 @@
-const config = require("../config")
-
-
-
-
-module.exports = {
-    nsTypeList: {
-        url: config.base_url + "ns_type/list",
-        type: "get",
-    },
-    userList:{
-        url: config.base_url + "user/user_list",
-        type: "post",
-    },
-    getNsRecord:{
-        url: config.base_url + "ns_record/get",
-        type: "get",
-    },
-    save:{
-        url: config.base_url + "ns_record/save",
-        type: "post",
-    },
-    updateStatus:{
-        url: config.base_url + "ns_record/updateStatus/{id}/{status}",
-        type: "get",
-    },
-    sendStayExecute:{
-        url: config.base_url + "ns_record/sendStayExecute",
-        type: "post",
-    },
-    page:{
-        url: config.base_url + "ns_record/page/{limit}/{page}",
-        type: "post",
-    },
-    remove:{
-        url: config.base_url + "ns_record/remove",
-        type: "get",
-    }
-
-}

+ 0 - 24
src/api/modules/organ.js

@@ -1,24 +0,0 @@
-const config = require("../config")
-
-
-
-
-module.exports = {
-    getOrganExplain: {
-        url: config.base_url + "sys_organ_explain/get",
-        type: "get",
-    },
-    listOrganExplain: {
-        url: config.base_url + "sys_organ_explain/list",
-        type: "get",
-    },
-    gardenData: {
-        url: config.base_url + "home/garden/list",
-        type: "get",
-    },
-    updateGarden: {
-        url: config.base_url + "home/garden/update/{gardenId}",
-        type: "get",
-    },
-
-}

+ 11 - 0
src/api/modules/sample.js

@@ -0,0 +1,11 @@
+//采样点接口
+const config = require("../config")
+
+
+
+module.exports = {
+    list: {
+        url: config.base_url + "lz_sample/list",
+        type: "post",
+    },
+}

+ 0 - 45
src/api/modules/tree.js

@@ -1,45 +0,0 @@
-const config = require("../config")
-
-
-
-module.exports = {
-    page:{
-        url: config.base_url + "lz_tree/page/{organId}/{areaId}",
-        type: "get",
-    },
-    treeList:{
-        url: config.base_url + "lz_tree/list",
-        type: "get",
-    },
-    treeListAndGrowData:{
-        url: config.base_url + "lz_tree/treeListAndGrowData/{organId}/{areaId}",
-        type: "post",
-    },
-    imgList: {
-        url: config.base_url + "lz_tree_image/list",
-        type: "get",
-    },
-    //生长数据列表
-    treeGrowData: {
-        url: config.base_url + "tree_grow_data/info",
-        // mock: false,
-        type: "post",
-        // response:(opt)=>{
-        //     return treeGrowData;
-        // }
-    },
-    //农事数据列表
-    siteList: {
-        url: config.base_url + "ns_record/page",
-        type: "post",
-        // mock:false,
-        // response:(opt)=>{
-        //     return rongShi;
-        // }
-    },
-    //农事类型
-    nongShiList:{
-        url: config.base_url + "ns_type/list",
-        type: "get",
-    }
-}

+ 0 - 47
src/api/modules/znxy.js

@@ -1,47 +0,0 @@
-/*
- * @Author: your name
- * @Date: 2021-02-07 13:40:50
- * @LastEditTime: 2021-12-02 15:59:52
- * @LastEditors: Please set LastEditors
- * @Description: In User Settings Edit
- * @FilePath: \vue3-element-admin\src\api\modules\system.js
- */
-// const Mock = require("mockjs"); //引入
-const config = require("../config")
-
-module.exports = {
-    baseInfo: {
-        url: config.base_url + "home/base-info/{gardenId}",
-        type: "get",
-    },
-    weatherWarning: {
-        url: config.base_url + "home/weather-warning/{gardenId}",
-        type: "get",
-    },
-    outputCalc: {
-        url: config.base_url + "home/output-calc/{gardenId}",
-        type: "get",
-    },
-    growAbnormal: {
-        url: config.base_url + "home/grow-abnormal/{gardenId}",
-        type: "get",
-    },
-    pestAbnormal: {
-        url: config.base_url + "home/pest-abnormal/{gardenId}",
-        type: "get",
-    },
-    pestStatistics: {
-        url: config.base_url + "home/pest-statistics/{gardenId}/{warningType}",
-        type: "get",
-    },
-    // 生长态势图例
-    szLegend: {
-        url: config.base_url + "lz_period_progress/list/{periodId}",
-        type: "get",
-    },
-    // 生长态势数据
-    szList: {
-        url: config.base_url + "home/grow-statistics/{gardenId}",
-        type: "get",
-    },
-};

+ 72 - 0
src/views/home/samplePointLayer.js

@@ -0,0 +1,72 @@
+import config from "@/api/config.js";
+import * as KMap from "@/utils/ol-map/KMap";
+import * as util from "@/common/ol_common.js";
+import Point from "ol/geom/Point.js";
+import Feature from "ol/Feature";
+import VectorLayer from "ol/layer/Vector.js";
+import WKT from "ol/format/WKT.js";
+import ScaleLine from "ol/control/ScaleLine";
+import { useRouter } from "vue-router";
+import {unByKey} from "ol/Observable";
+import Style from "ol/style/Style";
+import Icon from "ol/style/Icon";
+import {Cluster} from "ol/source";
+
+/**
+ * @description 地图层对象
+ */
+class SamplePointLayer {
+  constructor(map, farmId, regionId) {
+    let that = this;
+    this.farmId = farmId
+    this.regionId = regionId
+    let vectorStyle = new KMap.VectorStyle();
+    this.vectorStyle = vectorStyle;
+
+
+    const clusterSource = new Cluster({
+      distance: 15,
+      // minDistance: 60,
+      source: source,
+    });
+
+    this.treeClusterLayer = new KMap.VectorLayer("tree-cluster",999,{
+      minZoom:15,
+      source:clusterSource,
+      style:(feature)=> {
+        const size = feature.get('features').length;
+        // 只有一个数据,不需要聚合,直接使用第一项数据的图标
+        let style = null
+        if (size == 1) {
+          feature = feature.get('features')[0]
+            style = new Style({
+              image: new Icon({
+                src: feature.get('imgSrc'),
+                scale:1,
+              })
+            });
+          return style
+        }
+        return style;
+      }})
+    map.addLayer(this.treeClusterLayer.layer)
+    this.initData(this.farmId, this.regionId)
+  }
+
+  initData(farmId, regionId){
+    VE_API.sample.list({farmId,regionId}).then(({data})=>{
+
+    })
+  }
+
+  // 清除聚合图层,解除绑定
+  clearCluster() {
+    if (this.treeClusterLayer) {
+      this.treeClusterLayer.layer.getSource().getSource().clear()
+      this.treeClusterLayer = null
+      unByKey(this.listenKey)
+    }
+  }
+}
+
+export default SamplePointLayer;

Разлика између датотеке није приказан због своје велике величине
+ 195 - 428
yarn.lock


Неке датотеке нису приказане због велике количине промена