浏览代码

Merge branch 'f-xiaogu' into dev

gushoubang 9 月之前
父节点
当前提交
393a4e7db5

+ 8 - 4
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/controller/analyse/RasterController.java

@@ -17,14 +17,18 @@ public class RasterController {
 
     @GetMapping("/dsm")
     @Slave
-    public RequestResult getDsm(@RequestParam(value = "geom") String geom, @RequestParam(value = "type") String type) {
-        return RequestResult.success(iRasterService.getValue("vector.\"RASTER_DEM_BP\"", geom, type));
+    public RequestResult getDsm(@RequestParam(value = "geom") String geom,
+                                @RequestParam(value = "type") String type,
+                                @RequestParam(value = "buffer", required = false) Float buffer) {
+        return RequestResult.success(iRasterService.getValue("vector.\"RASTER_DEM_BP\"", geom, type, buffer));
     }
 
     @GetMapping("/slope")
     @Slave
-    public RequestResult getSlope(@RequestParam(value = "geom") String geom, @RequestParam(value = "type") String type) {
-        return RequestResult.success(iRasterService.getValue("vector.\"RASTER_SLOP_BP\"", geom, type));
+    public RequestResult getSlope(@RequestParam(value = "geom") String geom,
+                                  @RequestParam(value = "type") String type,
+                                  @RequestParam(value = "buffer", required = false) Float buffer) {
+        return RequestResult.success(iRasterService.getValue("vector.\"RASTER_SLOP_BP\"", geom, type, buffer));
     }
 
     @PostMapping("/cutFill")

+ 1 - 2
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/IRasterService.java

@@ -8,8 +8,7 @@ import java.util.Map;
  * 单波段栅格数据服务
  */
 public interface IRasterService {
-    Map<String, Double>
-    getValue(String tableName, String geomWkt, String type);
+    Map<String, Double> getValue(String tableName, String geomWkt, String type, Float buffer);
 
     Map<String, Object> getCutFill(CutFillVo cutFillVo, String tableName);
 }

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

@@ -25,11 +25,16 @@ public class RasterServiceImpl implements IRasterService {
     private CreateUtilsDBMapper createUtilsDBMapper;
 
     @Override
-    public Map<String, Double> getValue(String tableName, String geomWkt, String type) {
+    public Map<String, Double> getValue(String tableName, String geomWkt, String type, Float buffer) {
         if (!geomWkt.contains(";")) {
             geomWkt = "SRID=4326;" + geomWkt;
         }
 
+        // 缓冲区距离,单位米,目的是为了和周边高度缓和
+        if (buffer != null) {
+            geomWkt = createUtilsDBMapper.bufferEwkt(geomWkt, buffer);
+        }
+
         Map<String, Double> mapRes = new HashMap<>();
         if (type.equals("min")) {
             Double min = rasterMapper.getMinValue(tableName, geomWkt);
@@ -98,7 +103,7 @@ public class RasterServiceImpl implements IRasterService {
         }
 
         // 返回划定范围内的矢量数据
-        midGeom=analyseUtilsDBMapper.intersectionEwkt(bottomGeom, midGeom);
+        midGeom = analyseUtilsDBMapper.intersectionEwkt(bottomGeom, midGeom);
 
         bottomGeom = analyseUtilsDBMapper.differenceWkt(bottomGeom, midGeom);
         resMap.put("midGeom", midGeom);