Kaynağa Gözat

生成缓冲区

gushoubang 9 ay önce
ebeveyn
işleme
f642ab98d1

+ 1 - 1
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/controller/analyse/AnalyseUtilsDBController.java

@@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.RestController;
 import java.util.List;
 
 /**
- * 基于pgsql里的POSTGIS做的分析组件
+ * 基于pgsql里的POSTGIS做的分析数据组件
  */
 @RestController
 @RequestMapping("/analyse/db")

+ 18 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/controller/analyse/CreateUtilsDBController.java

@@ -0,0 +1,18 @@
+package com.onemap.analyse.controller.analyse;
+
+import com.onemap.analyse.service.AnalyseUtilsDBService;
+import com.onemap.analyse.service.CreateUtilsDBService;
+import com.onemap.common.core.web.controller.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 基于pgsql里的POST做的生成数据组件
+ */
+@RestController
+@RequestMapping("/create/db")
+public class CreateUtilsDBController extends BaseController {
+    @Autowired
+    private CreateUtilsDBService createUtilsDBService;
+}

+ 12 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/mapper/CreateUtilsDBMapper.java

@@ -0,0 +1,12 @@
+package com.onemap.analyse.mapper;
+
+public interface CreateUtilsDBMapper {
+    /**
+     * 计算tableName 空间数据的缓冲区,并存储成新的表
+     *
+     * @param tableName
+     * @param radius
+     * @return
+     */
+    void bufferTable(String tableName, float radius,String newTableName);
+}

+ 17 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/CreateUtilsDBService.java

@@ -0,0 +1,17 @@
+package com.onemap.analyse.service;
+
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ * 基于pgsql里的POST做的生成数据组件
+ */
+public interface CreateUtilsDBService {
+    /**
+     * table中与wkt数据是否有交集
+     *
+     * @param tableName 表名称
+     * @param radius    缓冲区半径
+     * @return
+     */
+    String bufferTable(@RequestParam(value = "tableName") String tableName, float radius);
+}

+ 20 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/CreateUtilsDBServiceImpl.java

@@ -0,0 +1,20 @@
+package com.onemap.analyse.service.impl;
+
+import com.onemap.analyse.mapper.CreateUtilsDBMapper;
+import com.onemap.analyse.service.CreateUtilsDBService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+@Service
+public class CreateUtilsDBServiceImpl implements CreateUtilsDBService {
+    @Resource
+    private CreateUtilsDBMapper createUtilsDBMapper;
+
+    @Override
+    public String bufferTable(String tableName, float radius) {
+        String newBufferName = tableName + "_buffer" + radius;
+        createUtilsDBMapper.bufferTable(tableName, radius, newBufferName);
+        return newBufferName;
+    }
+}

+ 0 - 0
onemap-modules/onemap-analyse/src/main/resources/mapper/oracle/fzss/AnalyseUtilsDBMapper.xml → onemap-modules/onemap-analyse/src/main/resources/mapper/oracle/raster/AnalyseUtilsDBMapper.xml


+ 14 - 0
onemap-modules/onemap-analyse/src/main/resources/mapper/oracle/raster/CreateUtilsDBMapper.xml

@@ -0,0 +1,14 @@
+<?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.CreateUtilsDBMapper">
+    <update id="bufferTable">
+        <![CDATA[
+        CREATE TABLE ${newTableName} AS
+        SELECT ST_Buffer(geom, #{radius}) AS buffered_geom
+        FROM ${tableName}
+        WHERE geom IS NOT NULL
+        ]]>
+    </update>
+</mapper>