ソースを参照

Merge branch 'f-xiaogu' into dev

gushoubang 8 ヶ月 前
コミット
489501948f
15 ファイル変更91 行追加164 行削除
  1. 0 25
      onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/controller/analyse/DsmController.java
  2. 30 0
      onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/controller/analyse/RasterController.java
  3. 0 25
      onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/controller/analyse/SlopController.java
  4. 0 9
      onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/mapper/raster/DsmMapper.java
  5. 11 0
      onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/mapper/raster/RasterMapper.java
  6. 0 6
      onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/mapper/raster/SlopMapper.java
  7. 0 8
      onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/IDsmService.java
  8. 8 0
      onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/IRasterService.java
  9. 0 8
      onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/ISlopService.java
  10. 0 31
      onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/DsmServiceImpl.java
  11. 7 2
      onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/FzssServiceImpl.java
  12. 28 0
      onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/RasterServiceImpl.java
  13. 0 28
      onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/SlopServiceImpl.java
  14. 7 7
      onemap-modules/onemap-analyse/src/main/resources/mapper/oracle/raster/RasterMapper.xml
  15. 0 15
      onemap-modules/onemap-analyse/src/main/resources/mapper/oracle/raster/SlopMapper.xml

+ 0 - 25
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/controller/analyse/DsmController.java

@@ -1,25 +0,0 @@
-package com.onemap.analyse.controller.analyse;
-
-import com.onemap.analyse.service.IDsmService;
-import com.onemap.common.core.web.domain.RequestResult;
-import com.onemap.common.datasource.annotation.Slave;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-
-@RestController
-@RequestMapping("/dsm")
-public class DsmController {
-    @Resource
-    private IDsmService iDsmService;
-
-    @GetMapping("")
-    @Slave
-    public RequestResult getDsm(@RequestParam(value = "geom") String geom,
-                                @RequestParam(value = "type") String type) {
-        return RequestResult.success(iDsmService.getDsm(geom,type));
-    }
-}

+ 30 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/controller/analyse/RasterController.java

@@ -0,0 +1,30 @@
+package com.onemap.analyse.controller.analyse;
+
+import com.onemap.analyse.service.IRasterService;
+import com.onemap.common.core.web.domain.RequestResult;
+import com.onemap.common.datasource.annotation.Slave;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("/raster")
+public class RasterController {
+    @Resource
+    private IRasterService iRasterService;
+
+    @GetMapping("/dsm")
+    @Slave
+    public RequestResult getDsm(@RequestParam(value = "geom") String geom, @RequestParam(value = "type") String type) {
+        return RequestResult.success(iRasterService.getValue("raster.sy_dsm", geom, type));
+    }
+
+    @GetMapping("/slope")
+    @Slave
+    public RequestResult getSlope(@RequestParam(value = "geom") String geom, @RequestParam(value = "type") String type) {
+        return RequestResult.success(iRasterService.getValue("raster.sy_slop", geom, type));
+    }
+}

+ 0 - 25
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/controller/analyse/SlopController.java

@@ -1,25 +0,0 @@
-package com.onemap.analyse.controller.analyse;
-
-import com.onemap.analyse.service.ISlopService;
-import com.onemap.common.core.web.domain.RequestResult;
-import com.onemap.common.datasource.annotation.Slave;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-
-
-@RestController
-@RequestMapping("/slop")
-public class SlopController {
-    @Resource
-    private ISlopService iSlopService;
-
-    @GetMapping("/average")
-    @Slave
-    public RequestResult getAveSlop(@RequestParam(value = "geom") String geom) {
-        return RequestResult.success(iSlopService.getAveSlop(geom));
-    }
-}

+ 0 - 9
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/mapper/raster/DsmMapper.java

@@ -1,9 +0,0 @@
-package com.onemap.analyse.mapper.raster;
-
-public interface DsmMapper {
-    Double getMinDsm(String geomWkt);
-
-    Double getMaxDsm(String geomWkt);
-
-    Double getAveDsm(String geomWkt);
-}

+ 11 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/mapper/raster/RasterMapper.java

@@ -0,0 +1,11 @@
+package com.onemap.analyse.mapper.raster;
+
+import org.apache.ibatis.annotations.Param;
+
+public interface RasterMapper {
+    Double getMinValue(@Param("tableName") String tableName, @Param("geomWkt") String geomWkt);
+
+    Double getMaxValue(@Param("tableName") String tableName, @Param("geomWkt") String geomWkt);
+
+    Double getAveValue(@Param("tableName") String tableName, @Param("geomWkt") String geomWkt);
+}

+ 0 - 6
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/mapper/raster/SlopMapper.java

@@ -1,6 +0,0 @@
-package com.onemap.analyse.mapper.raster;
-
-public interface SlopMapper {
-
-    Double getAveSlop(String geomWkt);
-}

+ 0 - 8
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/IDsmService.java

@@ -1,8 +0,0 @@
-package com.onemap.analyse.service;
-
-/**
- * 高程分析
- */
-public interface IDsmService {
-    Double getDsm(String geomWkt, String type);
-}

+ 8 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/IRasterService.java

@@ -0,0 +1,8 @@
+package com.onemap.analyse.service;
+
+/**
+ * 单波段栅格数据服务
+ */
+public interface IRasterService {
+    Double getValue(String tableName, String geomWkt, String type);
+}

+ 0 - 8
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/ISlopService.java

@@ -1,8 +0,0 @@
-package com.onemap.analyse.service;
-
-/**
- * 坡度分析
- */
-public interface ISlopService {
-    double getAveSlop(String geomWkt);
-}

+ 0 - 31
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/DsmServiceImpl.java

@@ -1,31 +0,0 @@
-package com.onemap.analyse.service.impl;
-
-import com.onemap.analyse.mapper.raster.DsmMapper;
-import com.onemap.analyse.service.IDsmService;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-import javax.validation.Valid;
-import javax.validation.constraints.NotNull;
-
-/**
- * 高程分析服务
- */
-@Service
-public class DsmServiceImpl implements IDsmService {
-    @Resource
-    private DsmMapper dsmMapper;
-
-    @Override
-    public Double getDsm(@Valid @NotNull String geomWkt, @Valid @NotNull String type) {
-        Double dsm = (double) 0;
-        if (type.equals("min")) {
-            dsm = dsmMapper.getMinDsm(geomWkt);
-        } else if (type.equals("max")) {
-            dsm = dsmMapper.getMaxDsm(geomWkt);
-        } else if (type.equals("ave")) {
-            dsm = dsmMapper.getAveDsm(geomWkt);
-        }
-        return dsm;
-    }
-}

+ 7 - 2
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/FzssServiceImpl.java

@@ -354,7 +354,6 @@ public class FzssServiceImpl implements IFzssService {
                     }
                 }
             } else if (factorSpatialVo.getSpatialType().equals("contain")) {
-                // TODO 计算地块缓冲区可能有问题,但是现在包含没有缓冲区
                 // 1.先切割因子地块
                 String calculateEwkt = getFactorEwkt(factorUseDTO.getFactorBsm(), ewkt, factorSpatialVo.getDefaultValue(), 0);
                 if (factorSpatialVo.isClip()) {
@@ -419,8 +418,14 @@ public class FzssServiceImpl implements IFzssService {
                         }
                     }
                 }
-            }
+            } else if (factorSpatialVo.getDefaultType().equals("sy_dsm")) {
+                // 坡度计算
+                if (factorSpatialVo.getDefaultType().equals("lt") || factorSpatialVo.getDefaultType().equals("let")) {
+
+                } else {
 
+                }
+            }
             Integer tableCount = tableDateService.getTableCount(rawTable);
             if (tableCount == 0) {
                 iLogService.saveLog(taskId, "辅助选址", factorUseDTO.getFactorName() + "计算完成,未找到符合条件数据", "info");

+ 28 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/RasterServiceImpl.java

@@ -0,0 +1,28 @@
+package com.onemap.analyse.service.impl;
+
+import com.onemap.analyse.mapper.raster.RasterMapper;
+import com.onemap.analyse.service.IRasterService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * 高程分析服务
+ */
+@Service
+public class RasterServiceImpl implements IRasterService {
+    @Resource
+    private RasterMapper rasterMapper;
+    @Override
+    public Double getValue(String tableName, String geomWkt, String type) {
+        Double value = (double) 0;
+        if (type.equals("min")) {
+            value = rasterMapper.getMinValue(tableName, geomWkt);
+        } else if (type.equals("max")) {
+            value = rasterMapper.getMaxValue(tableName, geomWkt);
+        } else if (type.equals("ave")) {
+            value = rasterMapper.getAveValue(tableName, geomWkt);
+        }
+        return value;
+    }
+}

+ 0 - 28
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/SlopServiceImpl.java

@@ -1,28 +0,0 @@
-package com.onemap.analyse.service.impl;
-
-import com.onemap.analyse.mapper.raster.SlopMapper;
-import com.onemap.analyse.service.ISlopService;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-
-/**
- * 坡度分析服务
- */
-@Service
-public class SlopServiceImpl implements ISlopService {
-    @Resource
-    private SlopMapper slopMapper;
-
-    /**
-     * 根据给定区域获取平均坡度
-     *
-     * @param geomWkt
-     * @return
-     */
-    @Override
-    public double getAveSlop(String geomWkt) {
-        Double d = slopMapper.getAveSlop(geomWkt);
-        return d;
-    }
-}

+ 7 - 7
onemap-modules/onemap-analyse/src/main/resources/mapper/oracle/raster/DsmMapper.xml → onemap-modules/onemap-analyse/src/main/resources/mapper/oracle/raster/RasterMapper.xml

@@ -1,32 +1,32 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
-<mapper namespace="com.onemap.analyse.mapper.raster.DsmMapper">
-    <select id="getAveDsm" resultType="Double">
+<mapper namespace="com.onemap.analyse.mapper.raster.RasterMapper">
+    <select id="getAveValue" resultType="Double">
         WITH poly AS (SELECT public.st_geomfromtext(#{geomWkt}, 4326) AS geom)
         SELECT AVG((gv).val) AS avg_dsm
         FROM (SELECT public.st_clip(rast, 1, geom, false) AS clipped_rast
-              FROM raster.sy_dsm,
+              FROM ${tableName},
                    poly
               WHERE public.st_intersects(rast, geom)) AS clipped,
              LATERAL public.st_pixelaspoints(clipped_rast) AS gv
         WHERE (gv).val IS NOT NULL;
     </select>
-    <select id="getMaxDsm" resultType="Double">
+    <select id="getMaxValue" resultType="Double">
         WITH poly AS (SELECT public.st_geomfromtext(#{geomWkt}, 4326) AS geom)
         SELECT MAX((gv).val) AS max_dsm
         FROM (SELECT public.st_clip(rast, 1, geom, false) AS clipped_rast
-              FROM raster.sy_dsm,
+              FROM ${tableName},
                    poly
               WHERE public.st_intersects(rast, geom)) AS clipped,
              LATERAL public.st_pixelaspoints(clipped_rast) AS gv
         WHERE (gv).val IS NOT NULL;
     </select>
-    <select id="getMinDsm" resultType="Double">
+    <select id="getMinValue" resultType="Double">
         WITH poly AS (SELECT public.st_geomfromtext(#{geomWkt}, 4326) AS geom)
         SELECT MIN((gv).val) AS min_dsm
         FROM (SELECT public.st_clip(rast, 1, geom, false) AS clipped_rast
-              FROM raster.sy_dsm,
+              FROM ${tableName},
                    poly
               WHERE public.st_intersects(rast, geom)) AS clipped,
              LATERAL public.st_pixelaspoints(clipped_rast) AS gv

+ 0 - 15
onemap-modules/onemap-analyse/src/main/resources/mapper/oracle/raster/SlopMapper.xml

@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
-<mapper namespace="com.onemap.analyse.mapper.raster.SlopMapper">
-    <select id="getAveSlop" resultType="Double">
-        WITH poly AS (SELECT public.st_geomfromtext(#{geomWkt}, 4326) AS geom)
-        SELECT AVG((gv).val) AS avg_slope
-        FROM (SELECT public.st_clip(rast, 1, geom, false) AS clipped_rast
-              FROM raster.sy_slop,
-                   poly
-              WHERE public.st_intersects(rast, geom)) AS clipped,
-             LATERAL public.st_pixelaspoints(clipped_rast) AS gv
-        WHERE (gv).val IS NOT NULL;
-    </select>
-</mapper>