Преглед изворни кода

坡度高程生成表数据调用

gushoubang пре 1 година
родитељ
комит
6d53792b55

+ 5 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/domain/vo/FactorSpatialVo.java

@@ -4,6 +4,9 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * 计算中用到的因子
  */
@@ -18,5 +21,7 @@ public class FactorSpatialVo {
     private Boolean hasValue;
     @JsonProperty("defaultValue")
     private Integer defaultValue;
+    @JsonProperty("defaultValues")
+    private List<Integer> defaultValues = new ArrayList<>();
     private boolean clip = false;
 }

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

@@ -84,4 +84,14 @@ public interface CreateUtilsDBMapper {
                             @Param("tableIdsA") List<String> tableIdsA,
                             @Param("tableNameB") String tableNameB,
                             @Param("newTableName") String newTableName);
+
+    @Slave
+    void delGtBandValue(@Param("tableNameA") String tableNameA,
+                        @Param("tableNameB") String tableNameB,
+                        @Param("newTableName") String newTableName);
+
+    @Slave
+    void delLtBandValue(@Param("tableNameA") String tableNameA,
+                        @Param("tableNameB") String tableNameB,
+                        @Param("newTableName") String newTableName);
 }

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

@@ -72,4 +72,16 @@ public interface CreateUtilsDBService {
      * @return
      */
     String intersectionTables(String tableNameA, List<String> tableIdsA, String tableNameB);
+
+    /**
+     * 生成新表,删除表tableNameA空间数据波段值大于value的数据
+     *
+     * @param tableNameA
+     * @param tableNameB
+     * @param value
+     * @return
+     */
+    String delGtBandValue(String tableNameA, String tableNameB, Double value);
+
+    String delLtBandValue(String tableNameA, String tableNameB, Double value);
 }

+ 19 - 33
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/CreateUtilsDBServiceImpl.java

@@ -18,10 +18,6 @@ public class CreateUtilsDBServiceImpl implements CreateUtilsDBService {
 
     @Override
     public String bufferTable(String tableName, float radius) {
-        long timestamp = System.currentTimeMillis();
-        String[] tableNames = Strings.split(tableName, '_');
-
-        // String newTableName = TEMPORARY + "_" + timestamp + "_buffer_" + tableNames[tableNames.length - 1];
         String newTableName = StringUtils.getTemporaryTableName();
         createUtilsDBMapper.bufferTable(tableName, radius, newTableName);
         return newTableName;
@@ -29,11 +25,6 @@ public class CreateUtilsDBServiceImpl implements CreateUtilsDBService {
 
     @Override
     public String bufferTable(String tableName, String column) {
-        long timestamp = System.currentTimeMillis();
-        String[] tableNames = Strings.split(tableName, '_');
-
-        // String newTableName = TEMPORARY + "_" + timestamp + "_buffer_" + tableNames[tableNames.length - 1];
-
         String newTableName = StringUtils.getTemporaryTableName();
         createUtilsDBMapper.bufferColumnTable(tableName, column, newTableName);
         return newTableName;
@@ -41,20 +32,16 @@ public class CreateUtilsDBServiceImpl implements CreateUtilsDBService {
 
     @Override
     public String bufferEekt(String ewkt, float radius) {
-        ewkt=  createUtilsDBMapper.bufferEwkt(ewkt, radius);
+        ewkt = createUtilsDBMapper.bufferEwkt(ewkt, radius);
         return ewkt;
     }
 
     @Override
     public String differenceTableWkt(String tableName, List<String> tableIds, String ewkt) {
         // TODO
-       if(ewkt.equals("")){
-           return tableName;
-       }
-        long timestamp = System.currentTimeMillis();
-        String[] tableNames = Strings.split(tableName, '_');
-
-        // String newTableName = TEMPORARY + "_" + timestamp + "_diff_wkt_" + tableNames[tableNames.length - 1];
+        if (ewkt.equals("")) {
+            return tableName;
+        }
         String newTableName = StringUtils.getTemporaryTableName();
         createUtilsDBMapper.differenceTableWkt(tableName, tableIds, ewkt, newTableName);
         return newTableName;
@@ -63,14 +50,8 @@ public class CreateUtilsDBServiceImpl implements CreateUtilsDBService {
     @Override
     public String differenceTables(String tableNameA, List<String> tableIdsA, String tableNameB) {
         long timestamp = System.currentTimeMillis();
-        String[] tableNamesA = Strings.split(tableNameA, '_');
-        String[] tableNamesB = Strings.split(tableNameB, '_');
-
-        // String newTableName = TEMPORARY + "_" + timestamp + "_" + tableNamesA[tableNamesA.length - 1] + "_diff_" + tableNamesB[tableNamesB.length - 1];
         String newTableName = StringUtils.getTemporaryTableName();
 
-
-
         String temporaryTable = "temporaryTable_" + timestamp;
         createUtilsDBMapper.differenceTables(tableNameA, tableIdsA, tableNameB, newTableName, temporaryTable);
         return newTableName;
@@ -80,13 +61,9 @@ public class CreateUtilsDBServiceImpl implements CreateUtilsDBService {
     @Override
     public String intersectionTableWkt(String tableName, List<String> tableIds, String ewkt) {
         // TODO
-        if(ewkt.equals("")){
+        if (ewkt.equals("")) {
             return tableName;
         }
-        long timestamp = System.currentTimeMillis();
-        String[] tableNames = Strings.split(tableName, '_');
-
-        // String newTableName = TEMPORARY + "_" + timestamp + "_inter_wkt_" + tableNames[tableNames.length - 1];
         String newTableName = StringUtils.getTemporaryTableName();
 
         createUtilsDBMapper.intersectionTableWkt(tableName, tableIds, ewkt, newTableName);
@@ -95,13 +72,22 @@ public class CreateUtilsDBServiceImpl implements CreateUtilsDBService {
 
     @Override
     public String intersectionTables(String tableNameA, List<String> tableIdsA, String tableNameB) {
-        long timestamp = System.currentTimeMillis();
-        String[] tableNamesA = Strings.split(tableNameA, '_');
-        String[] tableNamesB = Strings.split(tableNameB, '_');
-
-        // String newTableName = TEMPORARY + "_" + timestamp + "_" + tableNamesA[tableNamesA.length - 1] + "_inter_table_" + tableNamesB[tableNamesB.length - 1];
         String newTableName = StringUtils.getTemporaryTableName();
         createUtilsDBMapper.intersectionTables(tableNameA, tableIdsA, tableNameB, newTableName);
         return newTableName;
     }
+
+    @Override
+    public String delGtBandValue(String tableNameA, String tableNameB, Double value) {
+        String newTableName = StringUtils.getTemporaryTableName();
+        createUtilsDBMapper.delGtBandValue(tableNameA, tableNameB, newTableName);
+        return newTableName;
+    }
+
+    @Override
+    public String delLtBandValue(String tableNameA, String tableNameB, Double value) {
+        String newTableName = StringUtils.getTemporaryTableName();
+        createUtilsDBMapper.delLtBandValue(tableNameA, tableNameB, newTableName);
+        return newTableName;
+    }
 }

+ 5 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/FzssServiceImpl.java

@@ -421,8 +421,13 @@ public class FzssServiceImpl implements IFzssService {
             } else if (factorSpatialVo.getDefaultType().equals("sy_dsm")) {
                 // 坡度计算
                 if (factorSpatialVo.getDefaultType().equals("lt") || factorSpatialVo.getDefaultType().equals("let")) {
+                    // 小于等于
+
+                } else if (factorSpatialVo.getDefaultType().equals("gt") || factorSpatialVo.getDefaultType().equals("get")) {
+                    // 大于等于
 
                 } else {
+                    // 介于
 
                 }
             }

+ 25 - 0
onemap-modules/onemap-analyse/src/main/resources/mapper/oracle/vector/CreateUtilsDBMapper.xml

@@ -95,4 +95,29 @@
         </if>
         ;
     </insert>
+
+    <insert id="delGtBandValue">
+        CREATE TABLE "${newTableName}" AS
+        SELECT ta.id,
+               ta.geom
+        FROM "${tableNameA}" ta,
+             "${tableNameB}" tb,
+             LATERAL (
+                      SELECT ST_SummaryStats(ST_Clip(tb.rast, ta.geom)) AS stats
+                 ) AS summary
+        WHERE ST_Intersects(tb.rast, ta.geom)
+          AND (stats).mean &gt; #{value};
+    </insert>
+    <insert id="delLtBandValue">
+        CREATE TABLE "${newTableName}" AS
+        SELECT ta.id,
+               ta.geom
+        FROM "${tableNameA}" ta,
+             "${tableNameB}" tb,
+             LATERAL (
+                      SELECT ST_SummaryStats(ST_Clip(tb.rast, ta.geom)) AS stats
+                 ) AS summary
+        WHERE ST_Intersects(tb.rast, ta.geom)
+          AND (stats).mean &lt; #{value};
+    </insert>
 </mapper>