Преглед на файлове

补充时空算子库前四个接口

DESKTOP-6LTVLN7\Liumouren преди 1 месец
родител
ревизия
c8a2a34c0d
променени са 2 файла, в които са добавени 194 реда и са изтрити 16 реда
  1. 193 15
      src/components/wgn/controlPanel.vue
  2. 1 1
      src/views/Wgn.vue

+ 193 - 15
src/components/wgn/controlPanel.vue

@@ -308,10 +308,6 @@ export default {
               value: "1.5.2.10",
               label: "区域高程统计",
             },
-            {
-              value: "1.5.4.5",
-              label: "缓冲区计算",
-            },
           ],
         },
         {
@@ -376,6 +372,10 @@ export default {
               value: "1.5.6.1",
               label: "单点的坐标转换接口",
             },
+            {
+              value: "1.5.6.2",
+              label: "geojson坐标转换接口",
+            },
           ],
         },
         {
@@ -392,6 +392,37 @@ export default {
             },
           ],
         },
+        // 时空算子库
+        {
+          value: "1.2.5",
+          label: "1.2.5时空算子库",
+          children: [
+            {
+              value: "1.2.5.1",
+              label: "墨卡托计算距离面积",
+            },
+            {
+              value: "1.2.5.2",
+              label: "设置障碍的路径计算",
+            },
+            {
+              value: "1.2.5.3",
+              label: "判断点线面体的相互状态(待测试)",
+            },
+            {
+              value: "1.2.5.4",
+              label: "缓冲区计算",
+            },
+            // {
+            //   value: "1.2.5.5",
+            //   label: "线面体分割",
+            // },
+            // {
+            //   value: "1.2.5.6",
+            //   label: "时空差异分析",
+            // },
+          ],
+        },
       ],
       // 场景规则
       SceneRule: {
@@ -685,17 +716,6 @@ export default {
           // 后台接口路径
           apiUrl: "/relationAnalys/parting",
         },
-        "1.5.4.5": {
-          // 功能描述
-          functionalDefinition:
-            "以一个核心要素(点、线、面)为中心,按自定义半径(如 500 米、1 千米)划定范围,查询范围内所有目标要素(如设施、地块、道路),核心用于 “资源覆盖范围” 场景。由于不是我负责,暂时为缓冲区计算功能。​",
-          // 元素类型
-          elementTypes: ["point", "polyline", "polygon", "EPSILON"],
-          // 元素个数
-          numberOf: 2,
-          // 后台接口路径
-          apiUrl: "/relationAnalys/neighbor",
-        },
         "1.5.5.1": {
           // 功能描述
           functionalDefinition:
@@ -726,6 +746,10 @@ export default {
               value: "UTM",
               label: "UTM",
             },
+            {
+              value: "WEB_Mercator",
+              label: "WEB_Mercator",
+            },
           ],
           outPrj: [
             {
@@ -740,12 +764,63 @@ export default {
               value: "UTM",
               label: "UTM",
             },
+            {
+              value: "WEB_Mercator",
+              label: "WEB_Mercator",
+            },
           ],
           // 元素个数
           numberOf: 0,
           // 后台接口路径
           apiUrl: "/coordinateSystemTransformation/pointTransformation",
         },
+        "1.5.6.2": {
+          // 功能描述
+          functionalDefinition:
+            "传入geoJsonPolygons(geojson)并解析成JSONArray,然后转坐标并返回geojson",
+          // 元素类型
+          elementTypes: ["point", "polyline", "polygon", "inPrj", "outPrj"],
+          inPrj: [
+            {
+              value: "WGS84",
+              label: "WGS84",
+            },
+            {
+              value: "SH2000",
+              label: "SH2000",
+            },
+            {
+              value: "UTM",
+              label: "UTM",
+            },
+            {
+              value: "WEB_Mercator",
+              label: "WEB_Mercator",
+            },
+          ],
+          outPrj: [
+            {
+              value: "WGS84",
+              label: "WGS84",
+            },
+            {
+              value: "SH2000",
+              label: "SH2000",
+            },
+            {
+              value: "UTM",
+              label: "UTM",
+            },
+            {
+              value: "WEB_Mercator",
+              label: "WEB_Mercator",
+            },
+          ],
+          // 元素个数
+          numberOf: 1,
+          // 后台接口路径
+          apiUrl: "/coordinateSystemTransformation/transformation",
+        },
         "1.5.7.1": {
           // 功能描述
           functionalDefinition:
@@ -785,6 +860,91 @@ export default {
           // 后台接口路径
           apiUrl: "/spatiotemporal_data_format_conversion/downloadFile",
         },
+        // 这就都是时空算子库了
+        "1.2.5.1": {
+          // 功能描述
+          functionalDefinition:
+            "墨卡托投影是一种等角正圆柱投影,经纬线相互垂直,纬线间隔随纬度升高而增大 。计算距离时,利用投影后的坐标,根据勾股定理计算两点间的直线距离,再通过特定的比例尺换算公式,将投影距离转换为实际地面距离。计算面积时,先将多边形分割成多个三角形,利用三角形面积公式计算各三角形面积,再求和得到多边形面积,过程中同样要考虑投影带来的变形和比例尺差异。",
+          // 元素类型
+          elementTypes: ["polyline", "polygon", "unit", "inPrj"],
+          // 单位
+          unit: [
+            {
+              value: "METER",
+              label: "米",
+            },
+            {
+              value: "KILOMETER",
+              label: "千米",
+            },
+          ],
+          inPrj: [
+            {
+              value: "WGS84",
+              label: "WGS84",
+            },
+            {
+              value: "SH2000",
+              label: "SH2000",
+            },
+            {
+              value: "UTM",
+              label: "UTM",
+            },
+            {
+              value: "WEB_Mercator",
+              label: "WEB_Mercator",
+            },
+          ],
+          // 元素个数
+          numberOf: 1,
+          // 后台接口路径
+          apiUrl: "/spaceTimeOperatorLibrary/adjacent",
+        },
+
+        "1.2.5.2": {
+          // 功能描述:(必须要有两个点和一个障碍面?)
+          functionalDefinition:
+            "基于图论的思想,将地图抽象为一个图,其中节点表示位置,边表示可通行路径,设置障碍的区域则视为不可通行的边或节点。通过搜索算法,如 Dijkstra 算法、A * 算法等,在考虑障碍的情况下,寻找从起点到终点的最优路径。这些算法会根据节点间的距离、代价等因素,不断探索和评估路径,直到找到满足条件的最佳路径。",
+          // 元素类型
+          elementTypes: ["point", "point", "polygon"],
+          // 元素个数
+          numberOf: 3,
+          // 后台接口路径
+          apiUrl: "/spaceTimeOperatorLibrary/pathCalculation",
+        },
+        "1.2.5.3": {
+          // 功能描述:(由于使用了jts的工具,这个工具类必须要有高程数据,暂时测试不了)
+          functionalDefinition:
+            "对于点与线的关系,通过计算点到线的垂直距离,若距离为 0,则点在线上;对于点与面的关系,可通过射线法,从点出发作一条射线,统计射线与多边形边界的交点个数,若为奇数则点在面内,偶数则在面外。线与线的关系可通过判断两条线段是否相交来确定;线与面的关系则是判断线与面的边界是否相交以及交点个数等。对于体与点、线、面的关系,类似地通过计算几何的方法,判断点是否在体内,线是否贯穿体,面是否与体相交等。",
+          // 元素类型
+          elementTypes: ["pointZ", "polylineZ", "polygonZ"],
+          // 元素个数
+          numberOf: 2,
+          // 后台接口路径
+          apiUrl: "/spaceTimeOperatorLibrary/topologyPlus",
+        },
+        "1.2.5.4": {
+          // 功能描述
+          functionalDefinition:
+            "以点、线、面等几何对象为基础,按照给定的距离生成围绕这些对象的缓冲区。对于点,缓冲区是一个以点为圆心,给定距离为半径的圆;对于线,缓冲区是沿着线的两侧扩展一定距离形成的带状区域;对于面,缓冲区是在面的边界向外或向内扩展一定距离得到的新面。计算过程中需要考虑几何对象的形状、方向以及缓冲区的平滑度等因素。",
+          // 元素类型
+          elementTypes: ["point", "polyline", "polygon", "EPSILON"],
+          // 元素个数
+          numberOf: 2,
+          // 后台接口路径
+          apiUrl: "/relationAnalys/neighbor",
+        },
+        // children: [
+        //   {
+        //     value: "1.2.5.5",
+        //     label: "线面体分割",
+        //   },
+        //   {
+        //     value: "1.2.5.6",
+        //     label: "时空差异分析(两个面计算不相交的面)",
+        //   },
+        // ],
       },
       currentTool: null,
       drawingMode: null,
@@ -1445,6 +1605,24 @@ export default {
       ) {
         requestData.EPSILON = this.params.EPSILON;
       }
+      if (
+        this.SceneValue &&
+        this.SceneRule[this.SceneValue] &&
+        this.SceneRule[this.SceneValue].elementTypes &&
+        this.SceneRule[this.SceneValue].elementTypes.includes("inPrj") &&
+        this.params.inPrj
+      ) {
+        requestData.inPrj = this.params.inPrj;
+      }
+      if (
+        this.SceneValue &&
+        this.SceneRule[this.SceneValue] &&
+        this.SceneRule[this.SceneValue].elementTypes &&
+        this.SceneRule[this.SceneValue].elementTypes.includes("outPrj") &&
+        this.params.outPrj
+      ) {
+        requestData.outPrj = this.params.outPrj;
+      }
       this.jsonData = requestData;
       return requestData;
     },

+ 1 - 1
src/views/Wgn.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="wgn_box">
-    <el-backtop target="#scrollbar" :right="20" :bottom="70" />
+    <el-backtop target=".wgn_box" :right="20" :bottom="70" />
     <div class="server_title">
       <el-image
         style="width: 824px; height: calc(100vh - 70px)"